公司项目要接触100-200台服务器,设计环境、配置………… 开始学习puppet,写一写遇到步骤: ------------------- 说明: 系统:redhat7 puppet server端:192.168.0.100 hostname:redhat-server puppet client端:192.168.0.200 hostname:redhat-client 一、puppet原理 度娘 二、安装 puppet分为server/client模式。server相当于母虫,client为子虫。子虫定期向母虫“奶”一口。 redhat安装puppet,安装前需要更新下puppet的yum源。server/client端都要更新yum源。 A:redhat6.5/centos rpm -ivh https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs-release-6-10.noarch.rpm B:redhat7/centos rpm -ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs-release-7-10.noarch.rpm *注意:redhat默认的yum源一般会要注册,建议换成centos的yum源。更新方法参考另一篇文章《更新redhat的yum源为centos源》* 别忘记 yum makecache,下面就开始安装server端与服务器端 1、puppet的server端安装 安装: yum install puppet-server 配置: a:设置开机自启==》 systemctl enable puppetmaster.service b:启动服务 ==》 systemctl start puppetmaster.service 【redhat 7已经改成这种启动方式】 c:防火墙 ==》不建议关闭,设置后注意配置开机子启动 (1)CentOS/redhat 6系列==》vim /etc/sysconfig/iptables 在 OUTPUT ACCEPT 小节里添加: -A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT 重新启动iptables==》/etc/init.d/iptables restart(2)Centos/redhat 7系列==》 firewall-cmd --permanent --zone=public --add-port=8140/tcp firewall-cmd --reload 设置开机启动:systemctl enable firewalld.service 2、puppet的client端安装 安装: yum install puppet 设置开机自启动:systemctl enable puppet.service 三、server/client证书颁发验证 server/client是通过ssl证书通信,server端要给client端颁发证书。安装好puppet后,如果有dns则用DNS解析,否则修改主机名。参考下面步骤验证通信 1、修改server/client的hostname,然后再修改hosts vim /etc/hostname:修改主机名,自定义。 vim /etc/hosts:修改hosts server端 client端 2、server端 vim /etc/puppet/puppet.conf中的agent,事先定义好server端的主机名 3、client端 客户端的puppet默认会查找名为"puppet"的server端,但一般都会修改主机名。vim /etc/sysconfig/puppet,告诉client端,puppet server端的主机名。同时定义端口和通信间隔时间 PUPPET_SERVER=redhat-server PUPPET_PORT=8140 PUPPET_LOG=/var/log/puppet/puppet.log PUPPET_EXTRA_OPTS=--waitforcert=500 同时也要事先在/etc/puppet/puppet.conf中的agent添加puppet server端的主机名 启动puppet ==》 systemctl start puppet.service client端发送证书请求 ==》puppet agent --test 然后回到server端,响应请求==》puppet cert list ,正常会看到client端的证书信息 好啦————到这一步还没结束,server端只是收到client端的证书请求,还没有同意。server端同意请求 puppet cert sign redhat-client 注意这里的redhat-client,其实就是client端设置的主机名,前面/etc/hostname设置的。 查看server端的所有证书==》puppet cert --list --all 会显示包括server端自己的所有证书信息 4、实际项目中面对几百台的证书请求,一台台操作??怎么破??? server端:vim /etc/puppet/puppet.conf ,在【main】节点中增加"autosign = true",让server端自动响应证书请求 记得重启puppet服务:systemctl restart puppetmaster.service client端:puppet agent --test 发送证书请求,server端配置了autosign=true,会自动响应。 5、client端是每隔30分钟去server端,看能不能“奶”一口!!如果觉得时间太长,就修改配置吧!! vim /etc/puppet/puppet.conf,在【agent】节点中添加“runinternal = 60”,表示每隔60秒去要“奶”一口。 遇到的问题: 1、防火墙的状态,关闭?打开?注意打开要把server端的8140端口写进去; 2、client端的证书请求,如果要删除重新生成证书。执行puppet cert --clean 、rm -rf /var/lib/puppet/ssl; 3、puppetmaster.service 、puppet.service、firewalld.service一定要设置开机自启动,否则重启后,服务不会启动,特别是防火墙的配置,8140端口不通,会影响server/client的通信; 今天到此为止,后面再举例测试