如何在CentOS 7上安装Puppet Master和Agent
Puppet是一个开源配置管理工具和服务器自动化框架。 Puppet可以在类Unix操作系统上运行,也可以在Microsoft Windows系统上运行。 它允许您管理和执行管理任务以及从一台主服务器配置数百个系统。
在本教程中,我将向您介绍如何在CentOS 7上安装Puppet。我将安装CentOS 7服务器并将其配置为puppet'master',另一个作为'agent'。
先决条件
- 2个CentOS 7服务器
- 10.0.15.10 master.hakase.io 2GB内存
- 10.0.15.11 agent.hakase.io
- 根特权
我们将要做什么:
- Puppet预安装
- 安装并配置Puppet服务器
- 安装并配置Puppet代理
- 验证Puppet代理配置
- 创建第一个Puppet清单
第1步 - Puppet预安装
在这一步中,我们将执行一些任务,包括在puppet master和puppet agent上的安装和配置。 我们将配置主机的文件,使用NTP服务器同步时间,禁用SELinux并将puppet存储库添加到系统。
- 配置主机
使用root用户连接到Puppet大师和代理。
ssh root@10.0.15.10
ssh root@10.0.15.11
现在使用vim编辑器编辑主机。
vim /etc/hosts
将以下配置添加到行的末尾。
10.0.15.10 master.hakase.io
10.0.15.11 agent.hakase.io
保存并退出。
现在使用ping命令进行测试。
ping master.hakase.io
ping agent.hakase.io
并确保您获得服务器IP地址10.0.15.10和10.0.15.11。
- 配置NTP服务器
主服务器和代理服务器之间的时间保持同步非常重要。
使用yum命令在两台服务器上安装NTP软件包。
yum -y install ntp ntpdate
安装完成后,通过运行下面的命令,选择所需的NTP池。
sudo ntpdate 0.centos.pool.ntp.org
现在启动NTP服务并使其每次在系统启动时启动。
sudo systemctl start ntpd
sudo systemctl enable ntpd
NTP安装和配置已完成。
- 禁用SELinux
使用vim编辑SELinux配置。
vim /etc/sysconfig/selinux
将SELINUX值更改为“禁用”。
SELINUX=disabled
保存并退出。
- 添加Puppet存储库
现在使用下面的rpm命令将puppet存储库添加到系统中。
rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
完成后,重启两台服务器。
reboot
现在我们准备好了Puppet安装和配置。
第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
第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代理注册给Puppet master。
在puppet agent shell上运行以下命令。
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
Puppet代理人现在正在服务器上运行,并试图向Puppet大师注册自己。
现在回到puppet master shell并运行下面的命令。
/opt/puppetlabs/bin/puppet cert list
您将从puppet代理服务器'agent.hakase.io'中获得待定的证书签名请求(CSR)。
使用下面的命令签署证书。
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
结果应该类似于以下内容:
Puppet代理人现在正在系统上运行,而代理人的证书已由Puppet大师签署。
第4步 - 验证Puppet代理配置
在puppet master为代理签名证书文件后,在puppet代理上运行以下命令来验证配置。
/opt/puppetlabs/bin/puppet agent --test
你会得到如下所示的结果。
Puppet代理从puppet master中取出配置并将其应用到服务器上,没有任何错误。
第5步 - 创建第一个清单
Puppet大师和代理人的安装和配置已经完成。 对于这一步,我们将创建一个简单的测试清单。
我们将为Apache httpd web服务器安装创建清单。
在puppet主服务器上,转至'/ etc / puppetlabs / code /'目录并使用vim创建新的清单文件'site.pp'。
cd /etc/puppetlabs/code/
cd 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中检索新的清单配置文件,然后将其应用于代理服务器。
以下是结果。
打开您的网络浏览器并输入Puppet代理的IP地址。
http://10.0.15.11/
你将得到如下的默认HTTP页面。
httpd web服务器已经使用Puppet清单安装。
在CentOS 7上安装和配置Puppet Master和Puppet Agent已成功完成。