puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置客户端。配置完成以后,puppet客户端可以反馈给服务器端一个消息。如果出错,也会给服务器端反馈一个消息。
本篇为您提供puppet在centos下的部署方案,需要注意的是:Puppet 要求所有机器有完整的域名(FQDN),如果没有 DNS 服务器提供域名的话,可以在两台机器上设置主机名(注意要先设置主机名再安装 Puppet,因为安装 Puppet 时会把主机名写入证书,客户端和服务端通信需要这个证书)。
环境准备
1、关闭selinux
[root@master ~]# vi /etc/selinux/config
SELINUX=disabled
[root@master ~]# setenforce 0
2、停止iptables
[root@node1 ~]# chkconfig ip6tables off
[root@node1 ~]# chkconfig iptables off
[root@node1 ~]# service ip6tables stop
[root@node1 ~]# service iptables stop
3、修改puppet服务器端主机名为puppet-server
[root@master ~]# vi /etc/hostname
puppet-server
修改puppet客户端主机名为puppet-agent
[root@master ~]# vi /etc/hostname
puppet-agent
4、修改puppet客户端添加hosts记录
[root@node1 ~]# vi /etc/hosts
</master.ip> puppet-server
安装NTP时间同步服务器
1、puppet-server端
[root@master ~]# yum install chrony
[root@master ~]# vi /etc/chrony/chrony.conf
server </network-ntp-server> iburst
[root@master ~]# service chronyd restart
2、puppet-agent
[root@master ~]# yum install chrony
[root@master ~]# vi /etc/chrony/chrony.conf
server <puppet-server> iburst
[root@master ~]# service chronyd restart
服务器端安装puppetmaster软件
在 master上安装和启用 puppet 服务:
[root@master ~]# yum install puppet-server
[root@master ~]# chkconfig puppet on
[root@master ~]# service puppetmaster start
客户端安装puppet软件
在 agent上安装和启用 puppet 服务:
[root@node1 ~]# yum install puppet
[root@node1 ~]# chkconfig puppet on
[root@node1 ~]# service puppet start
配置puppet客户端
修改/etc/puppet/puppet.conf,指定master服务器
[root@node1 ~]# vi /etc/puppet/puppet.conf
[agent]
server = puppet-server
重启puppet服务
[root@node1 ~]# service puppet restart
客户端连接测试
[root@node1 ~]# puppet agent –test
然后我们会发现连接呗拒绝了,应该服务器端还没有认证。
服务器端认证
1、 [root@node1 ~]#puppet cert list –all
我们发现多了一台puppet-agent
2、[root@node1 ~]#puppet cert sign puppet-agent
八
客户端重新连接
[root@node1 ~]# puppet agent –test
Info: Retrieving pluginfacts Info: Retrieving plugin
Info: Caching catalog for agent1.localdomain
Info: Applying configuration version '1479087051'
Notice: ensure: defined content as '{md5}ed076287532e86365e841e92bfc50d8c'
Notice: Finished catalog run in0.02 seconds
我们发现客户端已经成功连上服务端。
最后,附上一个测试的配置文件,你可以通过它测试文件同步是否完成。
[root@node1 ~]#cat /etc/puppet/manifests/site.pp
node default {
file { "/tmp/helloworld.txt" :
content =>"Hello World!",
}
}
签到有大礼,0元购买云主机http://www.eflycloud.com/index.php