Puppet

来自 ArchWiki

来自 Puppet 网站

Puppet 是 IT 自动化软件,可帮助系统管理员管理基础设施的整个生命周期,从配置和配置到补丁管理和合规性。 使用 Puppet,您可以轻松地自动化重复性任务,快速部署关键应用程序,并主动管理变更,从 10 多台服务器扩展到 1000 多台,无论是在本地还是在云端。

安装

安装 puppet 软件包。

如果您想安装 puppet master,您可以安装 puppetserverAUR 软件包,其文档位于 Puppet server

配置

Puppet 的主要配置文件是 puppet.conf,它位于 /etc/puppetlabs/puppet/puppet.conf

根据是 master/agent,有 3 个部分可以放置设置:[main][agent][master]

最少的设置是

  • server:puppet 服务器的主机名。 默认值:puppet
  • report:大多数用户应将其设置为 true。
  • pluginsync:大多数用户应将其设置为 true。
  • certname:机器的证书名称(唯一标识符)。 默认值:fqdn

Puppet 将在 /etc/puppetlabs/code/environments/production/manifests/site.pp 中查找节点配置。

通过 daemon/cron/standalone 启动 puppet 后,它将在 /etc/puppetlabs/puppet/ssl/ 目录中生成证书。 您需要在 puppet master 中接受此证书

# puppet cert sign name

关于 puppet master 的 bindaddress 的注释。

bindaddress 的默认值为 0.0.0.0,这使得 puppet 仅监听 IPv4:bindaddress = 0.0.0.0

要使 puppet master 监听 IPv6,请将 bindaddress 值设置为:bindaddress = ::

要使 puppet 监听两个接口,请将值设置为:bindaddress = *

Facter

Facter 是 puppet 的配套程序,用于收集有关其运行系统的 facts。

命令

# puppet facts find facter
# facter -p
注意: Facter 默认作为 puppet 的依赖项安装。

Puppet 资源

软件包

Pacmanpuppet 支持。 自 puppet 3.1.0 起,软件包安装开箱即用。

服务

puppet 3.2.1 起,Arch Linux 上的 systemd 得到完全支持。

有关如何使用提供的单元的详细信息,请参阅 systemctl

Puppet Bolt

Puppet Bolt 是 puppet 引入的独立软件,允许应用任务,而无需 puppet agent 和 puppet server(如 Ansible/Salt)。 当然,master/agent 设计的许多优势会丢失,但如果您需要发送一次性命令,puppet bolt 是适合您的工具。

例如,使用 puppet bolt 更好地完成重启 webserver 或删除邮件队列,而保持软件包为最新版本应使用标准 puppet 配置管理完成。

在 Arch 上安装 Bolt

要在 Arch 上使用 Bolt 运行任务(可能以本地系统或远程目标为目标),唯一需要的软件包是 puppet-boltAUR。 更多信息可以在其 文档官方动手实验室 中找到。

使用 Bolt 目标定位 Arch

当 Bolt 针对 Arch 目标运行时(无论 Bolt 本身是否在 Arch 上调用),某些功能无法开箱即用。 通常,在诊断 Arch 目标上神秘的 Bolt 故障时,有关故障原因的信息可通过调试日志级别获得,例如

$ bolt apply --target arch --log-level debug ...

执行 bolt help 以获取命令命名法。

使用 Bolt 安装 Puppet

puppet_agent::install Bolt 任务(作为 bolt apply 和 Bolt 的其他几个功能的一部分自动调用)不支持在 Arch Linux 上安装 Puppet agent。 尝试这样做可能会在 Bolt 调试日志中遇到类似 Sorry Arch is not supported yet 的错误。

幸运的是,Bolt 可以使用预安装的 Puppet 版本。 要进行设置,请使用上面“安装”部分中的说明手动安装 Puppet,然后确保安装了 which。 由于 这个 Bolt 问题which 是必需的; 如果它不存在,即使在目标上正确安装了 Puppet 后,Sorry Arch is not supported yet 错误也可能继续在 Bolt 中发生。

Bolt 二进制文件位置预期

许多 Bolt 功能,包括 bolt apply,期望几个 Puppet 相关的二进制文件安装在 /opt/puppetlabs/bin 中,默认的 puppet 软件包不执行此操作。 在 此问题得到解决之前,Bolt 调试日志中可能会出现如下错误

/tmp/7b7dae3f-c3d9-4482-af14-a7e94a98b6cd/custom_facts.rb: bad interpreter: /opt/puppetlabs/puppet/bin/ruby: no such file or directory

要解决此问题,请将安装的 Ruby 符号链接到预期位置

$ mkdir -p /opt/puppetlabs/puppet/bin
$ ln -s $(type -p ruby) /opt/puppetlabs/puppet/bin/ruby

如果由于其他二进制文件未安装在该文件夹中而发生其他 Bolt 故障,您可以将 /usr/bin 符号链接到它

$ rm /opt/puppetlabs/puppet/bin/ruby
$ rm -r /opt/puppetlabs/puppet/bin
$ ln -s /usr/bin /opt/puppetlabs/puppet/bin