Puppet 安装

17 Mar 2025 | 5 分钟阅读

在安装 Puppet 之前,让我们先来看看一些先决条件

前提条件

在这里,我们将使用两台安装了 Ubuntu 操作系统的虚拟机,并正确配置了它们的静态 IP 地址和主机名。

  • 一台虚拟机用于配置带有静态 IP 地址的 Puppet Master。
  • 一台虚拟机用于配置带有静态 IP 地址的 Puppet Client。

这是我的虚拟机配置:

Puppet Master

主机名: puppetServer

IP 地址: 192.168.56.101

Puppet Agent

主机名: puppetClient

IP 地址: 192.168.56.103

我们可以通过 ifconfig 命令查看配置的虚拟机 IP 地址


Puppet Installation
Puppet Installation

移除防火墙规则

首先,从两台虚拟机(即 Puppet Master 和 Puppet Agent)上移除防火墙规则。大多数 Linux 发行版中可用的默认防火墙是 iptables。在两台虚拟机上运行以下命令


Puppet Installation
Puppet Installation

编辑 Hosts

  • 现在,我们需要在 master 和 agent 节点上配置 /etc/hosts 和 etc/hostname 文件,以便它们能够相互通信。

Puppet Installation
Puppet Installation
  • 在 Puppet server 和 puppet client 机器上编辑 /etc/hosts 文件。 你可以使用任何编辑器。

在 PuppetServer 上输入你的系统的 IP 地址和主机名。

例如:


Puppet Installation

在 PuppetClient 机器上,输入你的 puppet agent 的 IP 地址和主机名。 我们还需要指定你的 puppet Master 的 IP 地址和给它的主机名。

例如:


Puppet Installation

添加存储库

  • 由于 Puppet 不在标准的 Ubuntu 发行版存储库中,我们需要添加 Puppet Labs 提供的自定义存储库。

在 puppet master 和 puppet agent 机器上运行以下命令。


Puppet Installation
Puppet Installation

Puppet Installation
Puppet Installation

更新数据包

借助以下命令,使用最新的软件包和存储库更新你的 puppet master 和 puppet agent。


Puppet Installation
Puppet Installation

在 Puppet Master 上启动 NTP

充当 puppet master 的 PuppetServer 应该具有准确的系统时间。 你应该尽可能使用 NTP 服务来设置准确的系统时间。 在你的 puppetServer 中使用以下命令来启用 NTP 服务器


Puppet Installation

您可以通过以下命令检查状态


Puppet Installation

Puppet Master 安装

  • 现在,我们将安装 puppet 软件包,它将获取所有必要的先决条件和要求。

要安装 puppet master,请在你的 puppetServer 中运行以下命令


Puppet Installation
Puppet Installation
  • 输出显示 puppet Master 及其正在运行的服务的成功安装。 要验证 puppet 的版本,请使用以下命令


Puppet Installation
  • 使用以下命令安装 Puppet common

Puppet Installation
  • 现在我们必须锁定 puppet 版本的升级,因为这会在升级 Puppet 时影响配置。 在执行系统更新时,它不会更改 Puppet。 我们可以通过创建一个新文件并使用以下给出的配置来制作这些设置

将以下配置添加到文件中


Puppet Installation
Puppet Installation

现在,当运行设备更新时,它不会更新 Puppet。 因此,让我们继续执行以下步骤安装 Puppet 客户端。

  • 现在,我们将更改 puppet 配置文件。 在编辑器中打开 puppet 服务器的 puppet.conf 文件,并按如下所示配置其参数。

在 [main] 和 [master] 下添加新行并保存


Puppet Installation

将所需的更改添加到配置文件后,重新启动 puppet master 服务。


Puppet Installation

Puppet Client 安装

  • 由于我们已经安装了所有基本要求,现在只需运行一个命令,即可在 puppetClient Ubuntu 机器上安装 puppet agent,该机器将与 Puppet master(即 puppetServer Ubuntu 机器)进行交互。

Puppet Installation
  • 要检查 puppet 安装的版本,请使用以下命令

  • 现在,按照我们对 Puppet master 服务器执行的相同步骤操作。 我们必须锁定 puppet 的版本,这样它就不会在操作系统更新期间引起任何问题。

创建一个新文件


Puppet Installation

并将以下配置添加到文件中


Puppet Installation

现在,当运行设备更新时,它不会更新 Puppet。 因此,让我们继续执行以下步骤来配置 Puppet 客户端。

  • 现在,我们将更改 puppet 配置文件。 在编辑器中打开 puppet 客户端的 puppet.conf 文件,并按如下所示配置其参数。

注释掉 [master] 配置,并在 [main] 和 [agent] 下添加新行并保存

Puppet Installation
  • 启动 puppet agent 服务。

Puppet Installation

建立安全连接

Puppet agent 请求 puppet master 的证书,以进行 puppet master 和 puppet agent 通信。 因为在成功初始化 Puppet 客户端之后,它将检查 Puppet Master Server 并发送证书请求,然后才接受来自 Master puppet server 的任何管理指令。

Puppet Master 发送其证书后,Puppet Agent 会生成自己的证书。 然后,它请求 Puppet Master 签署此证书。 在 Master 签署此证书后,Puppet Master 和 Puppet Agent 之间会形成一个安全链接。

  • 要在 puppet master 中生成 CA 证书,请转到 root 用户并在你的 puppetServer VM 中运行以下命令

上面的命令将允许用户切换到 root 用户。

Puppet Installation

现在,在 PuppetServer 上执行此命令

上面的命令将创建 CA 证书和一个 puppet master 证书,其中包含适当的 DNS 名称。

Puppet Installation

我们可以忽略此警告消息。 出现“Notice: Starting Puppet master version 5.4.0”消息后,按 ctrl+c,因为我们现在无法启动 puppet master。

  • 现在,启动并启用 puppet master 服务。

Puppet Installation

Puppet Installation
  • 现在,将证书签名请求从 puppet agent 发送到 puppet master。

Puppet Installation
  • 在 puppetServer 中,我们需要签署 puppet agent 请求的证书。 要获取证书列表,请在 puppetServer 机器中运行以下命令

Puppet Installation

在这里,“puppetclient.blr0.datrium.com”是为 PuppetClient 机器自动生成的 DNS 名称。

要签署 puppet agent 请求的证书,请执行以下命令


Puppet Installation
  • 签署请求的证书后,启动 puppet agent。 要启动并启用 puppet agent,请运行以下命令

Puppet Installation
  • 我们还可以通过在 Puppet 客户端机器上运行以下命令来查看客户端 puppet 机器上证书的指纹

Puppet Installation

现在,puppet master 和 puppet agent 之间存在安全连接。

因此,我们已经成功安装和配置了 Puppet master,并使用功能齐全的 puppet 实例为 puppet agent 设置了其基本配置。