Puppet - 安装和配置 r10K

在 Puppet 中,我们有一个称为 r10k 的代码管理工具,它有助于管理与我们可以在 Puppet 中配置的不同类型的环境(例如开发、测试和生产)相关的环境配置。这有助于将与环境相关的配置存储在源代码存储库中。使用源代码控制存储库分支,r10k 在 Puppet 主机上创建环境,并使用存储库中的模块安装和更新环境。

Gem 文件可用于在任何机器上安装 r10k,但为了模块化并为了获得最新版本,我们将使用 rpm 和 rpm 包管理器。以下是相同的示例。

$ urlgrabber -o /etc/yum.repos.d/timhughes-r10k-epel-6.repo
https://copr.fedoraproject.org/coprs/timhughes/yum -y install ruby​​gem-r10k

在 /etc/puppet/puppet.conf 中配置环境

[main]
environmentpath = $confdir/environments

为 r10k 配置创建配置文件

cat <<EOF >/etc/r10k.yaml
# 用于存储缓存的 Git 存储库的位置
:cachedir: '/var/cache/r10k'
# 要创建的 git 存储库列表
:sources:
# 这将克隆 git 存储库并为每个
# /etc/puppet/environments 中的分支实例化一个环境
:opstree:
#remote: 'https://github.com/fullstack-puppet/fullstackpuppet-environment.git'
remote: '/var/lib/git/fullstackpuppet-environment.git'
basedir: '/etc/puppet/environments'
EOF

安装 Puppet 清单和模块

r10k deploy environment -pv

由于我们需要每 15 分钟继续更新环境,我们将为此创建一个 cron 作业。

cat << EOF > /etc/cron.d/r10k.conf
SHELL = /bin/bash
PATH = /sbin:/bin:/usr/sbin:/usr/bin
H/15 * * * * root r10k deploy environment -p
EOF

测试安装

为了测试一切是否按预期运行,需要编译 Puppet 模块的 Puppet 清单。运行以下命令并获取 YAML 输出作为结果。

curl --cert /etc/puppet/ssl/certs/puppet.corp.guest.pem \ 
--key /etc/puppet/ssl/private_keys/puppet.corp.guest.pem \ 
--cacert /etc/puppet/ssl/ca/ca_crt.pem \ 
-H 'Accept: yaml' \ 
https://puppet.corp.guest:8140/production/catalog/puppet.corp.guest