Puppet - Master

在 Puppet 中,Puppet Master 的客户端服务器架构被视为整个设置的控制机构。Puppet Master 充当设置中的服务器,并控制所有节点上的所有活动。

对于任何需要充当 Puppet Master 的服务器,它都应该运行 Puppet 服务器软件。此服务器软件是控制节点上所有活动的关键组件。在此设置中,要记住的一个关键点是让超级用户访问设置中要使用的所有机器。以下是设置 Puppet Master 的步骤。

先决条件

私有网络 DNS − 应配置正向和反向,其中每个服务器应具有唯一的主机名。如果没有配置 DNS,则可以使用私有网络与基础设施进行通信。

防火墙开放端口 − Puppet Master 应该在特定端口上打开,以便它可以监听特定端口上的传入请求。我们可以使用防火墙上打开的任何端口。

创建 Puppet Master 服务器

我们正在创建的 Puppet Master 将位于 CentOS 7 × 64 机器上,使用 Puppet 作为主机名。创建 Puppet Master 的最低系统配置是两个 CPU 核心和 1GB 内存。配置也可能有更大的大小,具体取决于我们要使用此主服务器管理的节点数量。在基础架构中,使用 2 GB RAM 进行配置比配置的更大。

主机名 角色 私有 FQDN
Brcleprod001 Puppet master bnrcleprod001.brcl.com

接下来,需要生成 Puppet master SSL 证书,主机名称将被复制到所有节点的配置文件中。

安装NTP

由于 Puppet Master 是任何给定设置中代理节点的中央权威机构,因此 Puppet Master 的主要职责之一是维护准确的系统时间,以避免潜在的配置问题,这些问题可能在向节点颁发代理证书时出现。

如果出现时间冲突问题,则如果 Master 和节点之间存在时间差异,则证书可能会过期。网络时间协议是避免此类问题的关键机制之一。

列出可用时区

$ timedatectl list-timezones

上述命令将提供可用时区的完整列表。它将为区域提供时区可用性。

以下命令可用于在机器上设置所需的时区。

$ sudo timedatectl set-timezone India/Delhi

使用 CentOS 机器的 yum 实用程序在 Puppet 服务器机器上安装 NTP。

$ sudo yum -y install ntp

将 NTP 与我们在上述命令中设置的系统时间同步。

$ sudo ntpdate pool.ntp.org

在常见做法中,我们将更新 NTP 配置以使用靠近机器数据中心的公共池。为此,我们需要编辑 /etc 下的 ntp.conf 文件。

$ sudo vi /etc/ntp.conf

从可用的 NTP 池时区中添加时间服务器。以下是 ntp.conf 文件的样子。

brcleprod001.brcl.pool.ntp.org
brcleprod002.brcl.pool.ntp.org
brcleprod003.brcl.pool.ntp.org
brcleprod004.brcl.pool.ntp.org

保存配置。启动服务器并启用守护进程。

$ sudo systemctl restart ntpd
$ sudo systemctl enable ntpd

设置 Puppet 服务器软件

Puppet 服务器软件是在 Puppet 主机上运行的软件。它是将配置推送到运行 Puppet 代理软件的其他机器的机器。

使用以下命令启用官方 Puppet 实验室集合存储库。

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el7.noarch.rpm

安装 puppetserver 包。

$ sudo yum -y install puppetserver

在 Puppet 服务器上配置内存分配

正如我们所讨论的,默认情况下,Puppet 服务器在 2GB RAM 机器上配置。可以根据机器上可用的内存以及服务器将管理的节点数自定义设置。

在 vi 模式下编辑 puppet 服务器配置

$ sudo vi /etc/sysconfig/puppetserver  
Find the JAVA_ARGS and use the –Xms and –Xms options to set the memory allocation. 
We will allocate 3GB of space  
JAVA_ARGS="-Xms3g -Xmx3g" 

完成后,保存并退出编辑模式。

完成上述所有设置后,我们准备使用以下命令在主机上启动 Puppet 服务器。

$ sudo systemctl start puppetserver

接下来,我们将进行设置,以便 puppet 服务器在主服务器启动时启动。

$ sudo systemctl enable puppetserver

Puppet.conf Master 部分

[master] 
autosign = $confdir/autosign.conf { mode = 664 } 
reports = foreman 
external_nodes = /etc/puppet/node.rb 
node_terminus = exec 
ca = true 
ssldir = /var/lib/puppet/ssl 
certname = sat6.example.com 
strict_variables = false 
manifest = 
/etc/puppet/environments/$environment/manifests/site.pp 
modulepath = /etc/puppet/environments/$environment/modules 
config_version =