如何在CentOS 7上安装Puppet Master和Agent

Puppet是一个开源配置管理工具和服务器自动化框架。在本教程中,我会为您介绍如何在CentOS 7上安装Puppet ...

如何在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
  • 根特权

我们将要做什么:

  1. Puppet预安装
  2. 安装并配置Puppet服务器
  3. 安装并配置Puppet代理
  4. 验证Puppet代理配置
  5. 创建第一个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安装和配置已完成。

配置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

添加puppet存储库

完成后,重启两台服务器。

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安装和配置已成功完成。

配置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代理人现在正在系统上运行,而代理人的证书已由Puppet大师签署。

第4步 - 验证Puppet代理配置

在puppet master为代理签名证书文件后,在puppet代理上运行以下命令来验证配置。

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

你会得到如下所示的结果。

验证puppet代理配置

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清单

打开您的网络浏览器并输入Puppet代理的IP地址。

http://10.0.15.11/

你将得到如下的默认HTTP页面。

Apache测试页面

httpd web服务器已经使用Puppet清单安装。

在CentOS 7上安装和配置Puppet Master和Puppet Agent已成功完成。

参考


分享按钮