如何在CentOS 8上设置Puppet Master和Agent

如何在CentOS 8上设置Puppet Master和Agent

Puppet是一个开源配置管理工具和服务器自动化框架。 Puppet可以在类似Unix的操作系统以及Microsoft Windows系统上运行。从单个主服务器管理和执行管理任务以及数百个系统的配置。

本教程显示了如何在CentOS 8上安装Puppet。将CentOS8服务器安装并配置为木偶“主”,将另一个配置为“代理”。

先决条件

  • 两台或更多CentOS 8服务器
  • 根权限

怎么做:

  • 预装的人偶
  • 安装和配置Puppet服务器
  • 安装和配置Puppet代理
  • 检查人偶代理配置
  • 创建第一个娃娃清单

步骤1-预安装Puppet

在第一步中,准备主服务器和代理服务器以进行木偶安装。设置服务器主机和FQDN,设置NTP服务器,并添加CentOS 8服务器木偶存储库。

设置主机名

首先,为两个服务器设置主机和FQDN。人偶主服务器的主机名是“ master”,FQDN是“ master.hakase-labs.io”,代理的主机名是“ agent01”,FQDN是“ agent01.hakase-labs.io”。

使用以下“ hostnamectl”命令设置主机名。

hostnamectl set-hostname hostname

然后编辑“ / etc / hosts”文件以配置FQDN服务器。

vim /etc/hosts

更改您自己的IP地址和域名并将其粘贴到此处。

10.5.5.21   master.hakase-labs.io   master10.5.5.22   agent01.hakase-labs.io  agent01

保存并关闭。

现在,重新启动以主机命名的服务,并应用新的主机名和FQDN。

systemctl restart systemd-hostnamed

然后使用以下命令检查主机名和FQDN:

hostnamehostname -f

然后,设置新的主机名和FQDN并将其应用于系统。

NTP服务器设置

对于NTP服务器,请对服务器使用“ chrony”。

使用以下dnf命令安装chrony。

dnf install chrony

然后使用vim编辑器编辑chrony配置“ /etc/chrony.conf”。

vim /etc/chrony.conf

接下来,更改该国家/地区中最近的池中的池服务器。要查看可用的池NTP,https://www.pool.ntp.org/zone/COUNTRYID‘。

复制所有可用国家/地区的NTP服务器,并将其粘贴到“ chrony.conf”文件中,如下所示:

server 0.id.pool.ntp.org iburstserver 1.id.pool.ntp.org iburstserver 2.id.pool.ntp.org iburstserver 3.id.pool.ntp.org iburst

保存并关闭。

启动chronyd服务并添加到启动时间。

systemctl start chronydsystemctl enable chronyd

NTP服务器的配置完成。

设置日期和时间

添加了CentOS 8 Puppet存储库

对于木偶存储库CentOS 8服务器,您可以使用rpm命令手动安装它,如下所示。

sudo rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm

然后使用以下dnf命令检查系统上所有可用的存储库。

dnf repolist

然后,将一个木偶存储库添加到CentOS 8系统。

添加人偶库

禁用SELinux

要禁用SELinux,可以使用vim编辑器编辑’/ etc / sysconfig / selinux’配置。

vim /etc/sysconfig/selinux

接下来,将“ SELINUX”值的配置更改为“禁用”。

SELINUX=disabled

保存并关闭服务器,然后重新启动。

sudo reboot

再次登录后,使用以下命令检查SELinux状态:

sestatus

另外,获得SELinux的无效状态。

步骤2-安装和配置Puppetserver

在此步骤中,您将在主节点上安装并配置puppetserver。

使用以下dnf命令安装puppetserver。

sudo dnf install puppetserver

之后,您需要编辑puppetserver的“初始设置”,并根据所使用的RAM更改内存分配。

使用vim编辑器在“ / etc / sysconfig / puppetserver”中编辑puppetserver的init设置。

vim /etc/sysconfig/puppetserver

接下来,根据RAM更改内存分配的“ JAVA_ARGS”配置。

JAVA_ARGS="-Xms1g -Xmx1g ...."

保存并关闭。

接下来,转到“ / etc / puppetlabs”目录并编辑puppet配置文件“ puppet.conf”。

cd /etc/puppetlabs/vim puppet/puppet.conf

在主配置下,使用主服务器的FQDN定义DNS备用名称。

[master]....dns_alt_names=master.hakase-labs.io,puppet....

然后按以下方式定义人偶主服务器配置:

[main]certname = master.hakase-labs.ioserver = master.hakase-labs.ioenvironment = productionruninterval = 1h

保存并关闭。

将puppetserver服务添加到启动引导时间并启动该服务。

systemctl enable puppetserversystemctl start puppetserver

puppetserver在具有默认TCP端口“ 8140”的CentOS 8服务器上运行。

使用以下命令将puppetserver端口“ 8140”添加到firewalld:

firewall-cmd --add-port=8140/tcp --permanentfirewall-cmd --reload

结果,Puppet Master的安装和配置成功完成。

配置防火墙

步骤3-安装和配置Puppet代理

在安装了Puppet主服务器“ master.hakase-labs.io”之后,请在“ agent01”服务器上安装puppet代理。

登录到“ agent01”服务器,并使用以下dnf命令安装puppet-agent软件包。

sudo dnf install puppet-agent

然后转到“ / etc / puppetlabs”目录,并使用vim编辑器编辑配置文件“ puppet.conf”。

cd /etc/puppetlabs/vim puppet/puppet.conf

修改您自己的“证书名”和“服务器”配置,并将其粘贴到配置中。

[main]certname = agent01.hakase-labs.ioserver = master.hakase-labs.ioenvironment = productionruninterval = 1h

保存并关闭。

接下来,启动puppet服务,并使用以下命令在主服务器上注册Puppet代理:

/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

您会得到以下结果:

开始木偶戏服务

puppet代理当前正在运行,并尝试向Puppet主服务器注册。

返回到Puppet主服务器以检查未决的证书请求。

/opt/puppetlabs/bin/puppetserver ca list

然后,在列表中获取“ agent01.hakase-labs.io”证书。

接下来,使用以下命令签署“ agent01”证书:

/opt/puppetlabs/bin/puppetserver ca sign --certname agent01.hakase-labs.io

人偶代理现已在主服务器上注册。

注册人偶代理

步骤4-检查Puppet代理配置

检查Puppet代理的配置,并使用以下命令测试Puppet代理与主服务器之间的连接:

/opt/puppetlabs/bin/puppet agent --test

您会得到以下结果:

测试娃娃代理

结果,Puppet代理从Puppet主服务器获取了配置,并将其毫无错误地应用于服务器。

第5步-创建第一个清单

至此,您已经为主服务器和代理安装并配置了Puppet。

在此步骤中,您将创建第一个木偶清单以安装httpd软件包并测试设置。

转到“ / etc / puppetlabs / code / environments / production / manifest”目录,并创建第一个人偶清单文件“ httpd.pp”。

cd /etc/puppetlabs/code/cd environments/production/manifestsvim httpd.pp

粘贴以下配置:

node 'agent01.hakase-labs.io' {    package { 'httpd':        ensure  => "installed",    }    service { 'httpd':        ensure => running,    enable => true    }}

保存并关闭。

创建清单

转到Puppet代理节点“ agento01”并执行以下命令:

/opt/puppetlabs/bin/puppet agent --test

结果显示如下。

测试娃娃代理

Puppet代理已从Puppet主服务器中拉出新配置以安装httpd软件包并启动了httpd服务。

在“ agent01”节点上,检查httpd服务的状态并检查HTTP端口“ 80”

systemctl status httpdnetstat -plntu

并确保httpd服务在默认HTTP端口“ 80”的“ agent01”服务器上运行。通过上面创建的木偶清单安装httpd软件包。

检查httpd状态

结果,在CentOS 8服务器上的Puppet Master和Agent的安装和配置成功完成。

参考资料

Sidebar