Puppet
来自 Puppet 网站
- Puppet 是 IT 自动化软件,可帮助系统管理员管理基础设施的整个生命周期,从配置和配置到补丁管理和合规性。 使用 Puppet,您可以轻松地自动化重复性任务,快速部署关键应用程序,并主动管理变更,从 10 多台服务器扩展到 1000 多台,无论是在本地还是在云端。
安装
如果您想安装 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
Puppet 资源
软件包
Pacman 受 puppet 支持。 自 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