博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Puppet--自动化管理postfix
阅读量:5813 次
发布时间:2019-06-18

本文共 3374 字,大约阅读时间需要 11 分钟。

创建postfix模块对应的文件和目录

 
  1. [root@master ~]# mkdir -p /etc/puppet/modules/postfix/{files,manifests,templates} 
  2.  
  3. [root@master ~]# touch /etc/puppet/modules/postfix/manifests/{init.pp,install.pp,config.pp,service.pp} 
  4.  
  5. [root@master ~]# touch /etc/puppet/modules/postfix/files/master.cf 
  6.  
  7. [root@master ~]# touch /etc/puppet/modules/postfix/templates/main.cf.erb 

       配置install.pp

 
  1. [root@master ~]# vim /etc/puppet/modules/postfix/manifests/install.pp 
  2.  
  3.   
  4.  
  5.    class postfix::install { 
  6.  
  7.        package{["postfix","mailx"]: 
  8.  
  9.            ensure=>present, 
  10.  
  11.        } 
  12.  
  13.    } 

配置config.pp

 
  1. [root@master ~]# vim /etc/puppet/modules/postfix/manifests/config.pp 
  2.  
  3.    class postfix::config{ 
  4.  
  5.        File{ 
  6.  
  7.            owner=>"postfix"
  8.  
  9.            group=>"postfix"
  10.  
  11.            mode=>0644
  12.  
  13.        }   
  14.  
  15.        file{
    "/etc/postfix/master.cf"
  16.  
  17.            ensure=>present, 
  18.  
  19.            source=>"puppet://$puppetserver/modules/postfix/master.cf"
  20.  
  21.           require=>Class["postfix::install"], 
  22.  
  23.           notify=>Class["postfix::service"], 
  24.  
  25.       }  
  26.  
  27.       file{
    "/etc/postfix/main.cf"
  28.  
  29.           ensure=>present, 
  30.  
  31.           content=>template("postfix/main.cf.erb"), 
  32.  
  33.           require=>Class["postfix::install"], 
  34.  
  35.           notify=>Class["postfix::service"], 
  36.  
  37.       } 
  38.  
  39.   } 

  配置postfix模板文件

 
  1. [root@master ~]# vim /etc/puppet/modules/postfix/templates/main.cf.erb   
  2.  
  3.    soft_bounce = no 
  4.  
  5.    command_directory = /usr/sbin 
  6.  
  7.    daemon_directory = /usr/libexec/postfix 
  8.  
  9.    mail_owner = postfix 
  10.  
  11.    myhostname = <%= hostname %> 
  12.  
  13.    mydomain = <%= domain %> 
  14.  
  15.    myorigin = $mydomain 
  16.  
  17.    mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
  18.  
  19.   unknown_local_recipient_reject_code = 550 
  20.  
  21.   relay_domains = $mydestination 
  22.  
  23.   smtpd_reject_unlisted_recipient = yes 
  24.  
  25.   unverified_recipient_reject_code = 550 
  26.  
  27.   smtpd_banner = $myhostname ESMTP 
  28.  
  29.  setgid_group = postdrop 

   配置service.pp文件

 
  1. [root@master ~]# vim /etc/puppet/modules/postfix/manifests/service.pp 
  2.  
  3.    class postfix::service{ 
  4.  
  5.        service {
    "postfix"
  6.  
  7.            ensure=>running, 
  8.  
  9.            hasstatus=>true, 
  10.  
  11.            hasrestart=>true, 
  12.  
  13.            enable=>true, 
  14.  
  15.            require=>Class["postfix::config"], 
  16.  
  17.        } 
  18.  
  19.    } 

   最后编辑init.pp

 
  1. [root@master ~]# vim /etc/puppet/modules/postfix/manifests/init.pp   
  2.  
  3.    class postfix{ 
  4.  
  5.        include postfix::install,postfix::config,postfix::service 
  6.  
  7.    } 

   Postfix的模板配置完成,接下来需要将该模板应用到节点

 
  1. [root@master ~]# vim /etc/puppet/manifests/nodes.pp  
  2.  
  3.   class base { 
  4.  
  5.        include sudo,ssh 
  6.  
  7.    } 
  8.  
  9.    
  10.  
  11.    node 'client1.centos' { 
  12.  
  13.        include base 
  14.  
  15.        include postfix 
  16.  
  17.    } 

   到节点上检查模块的配置是否生效

 
  1. [root@client1 ~]# puppetd   --server  master.puppet --test 
  2.  
  3. info: FileBucket adding {md5}49b648101b0e361231a977aa89e0dd60 
  4.  
  5. info: /Stage[main]/Postfix::Config/File[/etc/postfix/main.cf]: Filebucketed /etc/postfix/main.cf to puppet with sum 49b648101b0e361231a977aa89e0dd60 
  6.  
  7. notice: /Stage[main]/Postfix::Config/File[/etc/postfix/main.cf]/content: content changed '{md5}49b648101b0e361231a977aa89e0dd60' to '{md5}e952770fbd49dcac604e41b689a9f871' 
  8.  
  9. notice: /Stage[main]/Postfix::Config/File[/etc/postfix/main.cf]/owner: owner changed 'root' to 'postfix' 
  10.  
  11. notice: /Stage[main]/Postfix::Config/File[/etc/postfix/main.cf]/group: group changed 'root' to 'postfix' 
  12.  
  13. info: /Stage[main]/Postfix::Config/File[/etc/postfix/main.cf]: Scheduling refresh of Service[postfix] 
  14.  
  15. info: /Stage[main]/Postfix::Config/File[/etc/postfix/main.cf]: Scheduling refresh of Service[postfix] 
  16.  
  17. info: /Stage[main]/Postfix::Config/File[/etc/postfix/main.cf]: Scheduling refresh of Service[postfix] 
  18.  
  19. notice: /Stage[main]/Postfix::Service/Service[postfix]: Triggered 'refresh' from 6 events 
  20.  
  21. notice: Finished catalog run in 2.70 seconds 

  查看postfix服务状态

 
  1. [root@client1 ~]# service postfix status 
  2.  
  3. master (pid  30794) 正在运行... 
本文转自 waydee 51CTO博客,原文链接:http://blog.51cto.com/waydee/847137,如需转载请自行联系原作者
你可能感兴趣的文章
设计模式-Composite Pattern
查看>>
彻底明白IP地址——计算相关地址
查看>>
Vmware Workstation 安装Oracle Solaris 10
查看>>
《统一沟通-微软-实战》-7-配置-1-电话拨入式会议
查看>>
MySQL 5.7.17 Group Replication搭建
查看>>
手把手教你跑Larave框架实战笔记系列之二
查看>>
Keepalived双主模型实现nginx负载均衡
查看>>
15.Java集合类
查看>>
javascript基础-3
查看>>
Centos7 squid传统代理
查看>>
IO流内容整理
查看>>
只和你认为可以永远共事的人一起工作
查看>>
Oracle数据库分组查询
查看>>
JAVA编程语言的基础知识(1)
查看>>
企业文档管理系统 SeedDMS安装配置推荐使用
查看>>
Bash各类扩展详解
查看>>
win7下avr单片机开发环境的搭建
查看>>
python3.3中数据库的处理
查看>>
Android studio Failed to resolve
查看>>
log file parallel write事件
查看>>