Puppet--自动化管理postfix

简介:

创建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,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
运维 监控 安全
「译文」软件自动化发布管理的三个步骤
「译文」软件自动化发布管理的三个步骤
|
26天前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
49 3
|
30天前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
48 4
|
29天前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
58 2
|
2月前
|
运维 Linux 网络安全
自动化运维的利器:Ansible、Puppet和Chef详解
自动化运维的利器:Ansible、Puppet和Chef详解
87 5
|
4月前
|
监控 数据挖掘 BI
ERP系统中的工作流管理与自动化
【7月更文挑战第25天】 ERP系统中的工作流管理与自动化
160 2
ERP系统中的工作流管理与自动化
|
3月前
|
运维 Linux Apache
【一键变身超人!】Puppet 自动化运维神器 —— 让你的服务器听话如婴儿,轻松管理资源不是梦!
【8月更文挑战第9天】随着云计算与容器化技术的发展,自动化运维已成为现代IT基础设施的核心部分。Puppet是一款强大的自动化工具,用于配置管理,确保系统保持预期状态。通过易于理解的配置文件定义资源及其依赖关系,Puppet实现了“基础设施即代码”的理念。本文简要介绍了Puppet的安装配置方法及示例,包括Puppet Agent与Master的安装、基本配置步骤和一个简单的Apache HTTP Server管理示例,展示了Puppet在实际应用中的强大功能与灵活性。
54 9
|
3月前
|
运维 监控 持续交付
"揭秘Puppet:自动化运维的超级英雄,一键驾驭复杂IT环境,让运维繁琐瞬间灰飞烟灭,引领未来运维新纪元!"
【8月更文挑战第9天】Puppet作为自动化运维的杰出代表,凭借其强大的配置管理和高度可定制性,助力IT运维实现自动化与智能化转型。通过定义资源模型与使用声明式语言描述系统状态,Puppet能自动调整系统至期望状态,实现标准化运维流程。其工作流程包括定义-应用-报告三步,支持从服务器配置到复杂网络、数据库管理等多种场景。示例代码展示了如何自动化部署Apache服务器,体现了Puppet在实际操作中的高效与便捷。随着技术演进与社区壮大,Puppet将持续推动运维领域的创新发展。
71 6
|
4月前
|
机器学习/深度学习 人工智能 运维
智能化运维的崛起:自动化与人工智能在IT管理中的融合
本文深入探讨了智能化运维在现代企业中的重要性,并分析了自动化技术和人工智能(AI)如何共同推动IT运维管理的革新。文章首先概述了传统运维面临的挑战,然后详细介绍了智能化运维的核心概念和实施步骤,最后通过具体案例展示了智能化运维在实际工作中的应用效果和潜在价值。
128 0
|
6月前
|
存储 弹性计算 运维
自动化合同管理与执行
【4月更文挑战第30天】
27 2
下一篇
无影云桌面