在 Ubuntu 20.04 上安装和配置 Puppet
Puppet 是一种流行的配置管理工具,可以简化大规模管理基础设施的过程。它允许您跨多个服务器和环境自动配置、配置和部署应用程序和服务。
Puppet 可以帮助您将基础设施的所需状态定义为代码(称为“清单”)。清单指定您希望 Puppet 管理的资源和配置,例如包、文件、用户和服务。 Puppet 确保目标系统上资源的实际状态与清单中定义的所需状态匹配。
Puppet 提供了令人兴奋的功能,例如声明性语言、资源抽象、幂等性、基于代理的架构和可扩展性。本教程提供了有关如何在 Ubuntu 20.04 上安装和配置 Puppet 的分步指南。
在 Ubuntu 20.04 上安装 Puppet 的先决条件
在 Ubuntu 20.04 上安装 Puppet 之前,您需要确保您的系统满足以下要求:
在目标系统上安装 Ubuntu 20.04
具有 sudo 权限的用户帐户
稳定的互联网连接,用于下载和安装所需的软件包
有足够的磁盘空间来安装和运行 Puppet
此外,您可能需要配置防火墙以允许 Puppet 服务器和代理以及任何其他所需端口之间的通信。您可能还需要配置 DNS 或主机文件条目来解析 Puppet 服务器的主机名。
在 Ubuntu 20.04 上安装 Puppet 的分步指南
满足先决条件后,您可以使用以下步骤在 Ubuntu 20.04 上安装 Puppet:
第 1 步:更新系统上的软件包索引使用以下命令更新软件包:
该命令的输出如下所示:
此输出表明 Ubuntu 焦点 (20.04) 版本的软件包列表已更新,并且当前没有可用的新更新。输出还显示检查更新的源,例如主存储库和安全存储库。
第 2 步:安装 Puppet 存储库和依赖项使用以下命令安装必要的 puppet 存储库:
curl https://apt.puppet.com/DEB-GPG-KEY-puppet | sudo apt-key add -
echo "deb http://apt.puppet.com $(lsb_release -sc) puppet7" | sudo tee /etc/apt/sources.list.d/puppet7.list
sudo apt update
第一个命令安装三个软件包——curl、ca-certificates 和 gnupg2。如果这些软件包已安装,您将看到一条消息,指出它们已经是最新的。第二个命令将 Puppet 存储库 GPG 密钥添加到系统的可信密钥列表中。
第三个命令将 Puppet 存储库添加到系统的软件源列表中。在本例中,它添加了 Puppet 版本 7 的源,并使用“lsb_release –sc”命令的输出来确定系统上当前运行的 Ubuntu 版本的代号。
最后,第四个命令更新系统的软件包列表,包括新添加的 Puppet 存储库。输出显示了哪些存储库已更新,并表明可以升级 24 个包。
第 3 步:安装 Puppet 服务器和代理程序包继续使用以下命令安装 Puppet 服务器和代理程序包:
步骤 4:启用 Puppet 服务器和代理包使用以下命令启用 Puppet 服务器和代理包:
sudo systemctl enable puppetserver
sudo systemctl start Puppet
sudo systemctl enable Puppet
第 5 步:配置 Puppet 代理配置 Puppet 代理以与 Puppet 服务器进行通信。编辑 /etc/puppetlabs/puppet/puppet.conf 文件并将服务器参数设置为 Puppet 服务器的主机名。
第 6 步:测试通信使用以下命令测试 Puppet 服务器和代理之间的通信:
示例输出如下所示:
此输出显示 Puppet 代理正在执行测试运行并应用当前配置版本。它首先创建一个新的 SSL 证书请求,然后检索插件信息、缓存证书、检索要应用的资源目录,最后应用配置。
创建和管理 Puppet 模块
Puppet 模块是可重用的代码集合,其中包含用于管理基础架构特定方面(例如安装包或配置服务)的资源和配置。要创建和管理 Puppet 模块,您可以按照以下步骤操作:
第 1 步:创建模块目录结构您可以使用以下代码来实现此目的:
步骤 2:创建清单文件使用以下命令创建清单文件:
完成后,添加所需的资源和配置,例如:
package { 'nginx':
ensure => 'installed',
}
service { 'nginx':
ensure => 'running',
enable => true,
}
}
示例输出如下图所示:
此输出表明 Puppet 代理已成功应用 mymodule 配置并安装并启动 Nginx 服务。通知消息显示 Puppet 已经编译了资源目录,然后创建了一个 Package 资源来安装 Nginx,随后创建一个服务资源以确保 Nginx 正在运行并启用。
步骤 3:将模块应用到目标系统继续将模块应用到目标系统,如下所示:
该命令的输出类似于以下示例:
您还可以从 Puppet Forge(社区贡献的模块存储库)下载并使用现有模块。
结论
Puppet 是一款功能强大且灵活的配置管理工具,可让您大规模自动化和管理基础架构。借助 Puppet,您可以使用 Puppet 语言定义基础设施的所需状态,并在多个节点和环境中一致地应用更改。