Puppet是一个开源配置管理工具和服务器自动化框架。Puppet可以在类Unix操作系统上运行,也可以在Microsoft Windows系统上运行。它允许您从一个主服务器管理和执行管理任务以及数百个系统的配置。
先决条件
- 2台CentOS 7服务器
- 192.168.31.185 master.hakase.io 2GB内存
- 192.168.31.186 agent.hakase.io
第1步 - Puppet预安装
在此步骤中,我们将执行一些任务,包括服务器puppet master和puppet agent上的安装和配置。我们将配置主机的文件,使用NTP服务器同步时间,禁用SELinux,并将puppet存储库添加到系统。
配置主机
使用root用户连接到puppet master和agent。
# ssh [email protected]
# ssh [email protected]
修改主机名
# hostnamectl set-hostname master.hakase.io
# hostnamectl set-hostname agent.hakase.io
现在使用vim编辑器编辑主机 。
vim /etc/hosts
#将以下配置添加到行尾。
192.168.31.185 master.hakase.io
192.168.31.186 agent.hakase.io
保存并退出。
现在使用ping命令进行测试。
# ping master.hakase.io
# ping agent.hakase.io
配置NTP服务器
保持主服务器和代理服务器之间的时间同步非常重要。
使用yum命令在两台服务器上安装NTP软件包。
# yum -y install ntp ntpdate
安装完成后,通过运行以下命令选择NTP池。
# ntpdate 0.centos.pool.ntp.org
或
# ntpdate time1.aliyun.com
现在启动NTP服务并使其在系统引导时每次启动。
sudo systemctl start ntpd
sudo systemctl enable ntpd
NTP安装和配置已完成。
禁用SELinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo setenforce 0
添加Puppet Repository
现在使用下面的rpm命令将puppet存储库添加到系统中。
sudo rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
完成后,重启两台服务器。
reboot
第2步 - 安装和配置Puppetserver
在此步骤中,我们将在master.hakase.io服务器上安装puppetserver。使用下面的yum命令安装puppetserver。
sudo yum -y install puppetserver
安装完成后,我们需要配置puppetserver的内存分配。我们将puppetserver的最大内存分配设置为1GB。
使用vim编辑'puppetserver'配置。
vim /etc/sysconfig/puppetserver
#现在更改如下所示的行。
JAVA_ARGS =“ - Xms1g -Xmx1g ......”
#保存并退出。
接下来,转到puppet配置目录并编辑'puppet.conf'文件。
cd /etc/puppetlabs/puppet
vim puppet.conf
#添加以下配置。
[master]
dns_alt_names = master.hakase.io,puppet
[main]
certname = master.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
#保存并退出。
现在启动puppetserver并使其在启动时每次启动。
systemctl start puppetserver
systemctl enable puppetserver
Puppetserver安装和配置已成功完成。
如果您在系统上使用firewalld,请使用下面的firewall-cmd命令将puppetserver端口添加到列表中。
firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload
或
systemctl stop firewalld.service
systemctl disable firewalld.service
第3步 - 安装和配置Puppet代理
我们将在agent.hakase.io服务器上安装puppet代理。
使用下面的yum命令安装puppet代理。
yum install -y puppet-agent
安装完成后,转到puppet配置目录并编辑puppet.conf文件。
cd /etc/puppetlabs/puppet
vim puppet.conf
#粘贴以下配置。
[main]
certname = agent.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
#保存并退出。
接下来,我们将木偶代理注册到木偶大师。
在puppet agent shell上运行以下命令。
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
木偶代理现在正在服务器上运行,它正在尝试将自己注册到木偶大师。
现在回到puppet master shell并运行下面的命令。
/opt/puppetlabs/bin/puppet cert list
您将从puppet代理服务器'agent.hakase.io'获得待处理的证书签名请求(CSR)。
使用以下命令对证书进行签名。
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
结果应类似于以下内容:
木偶代理现在在系统上运行,代理的证书已由木偶主人签名。
第4步 - 验证Puppet代理配置
在puppet master为代理签署证书文件后,在puppet agent上运行以下命令以验证配置。
/opt/puppetlabs/bin/puppet agent --test
您将得到如下所示的结果:
Puppet代理从puppet master中提取配置并应用于服务器而没有任何错误。
第5步 - 创建第一个清单
木偶主人和代理人的安装和配置已经完成。对于此步骤,我们将创建一个简单的测试清单。
我们将为Apache httpd Web服务器安装创建清单。
在puppet主服务器上,转到'/ etc / puppetlabs / code /'目录并使用vim创建新的清单文件'site.pp'。
cd /etc/puppetlabs/code/environments/production/manifests
#创建新的清单文件。
vim site.pp
#粘贴以下配置。
node'agent.hakase.io'{
package {'httpd':
ensure =>“installed”,
}
service {'httpd':
ensure => running,
enable => true
}
}
#保存并退出。
现在打开puppet agent服务器shell并运行以下命令。
/opt/puppetlabs/bin/puppet agent --test
该命令将从puppet master中检索新的清单配置文件,然后将其应用于代理服务器。
以下是结果:打开Web浏览器并键入puppet代理的IP地址
http://192.168.31.186/
您将获得默认的HTTP页面,如下所示