Puppet 安装
在安装Puppet之前,让我们先看看一些先决条件:
先决条件
这里,我们将使用两个安装了 Ubuntu 操作系统的虚拟机,并正确配置了它们的静态 IP 地址和主机名。
- 一台虚拟机用于配置了静态 IP 地址的 Puppet Master。
- 一台虚拟机用于配置了静态 IP 地址的 Puppet Client。
这里,我的虚拟机配置是:
Puppet Master:
Host: puppetServer
IP地址: 192.168.56.101
Puppet Agent:
主机名: puppetClient
IP 地址: 192.168.56.103
我们可以通过 ifconfig 命令查看为虚拟机配置的 IP:
$ ifconfig-a
删除防火墙规则
首先,从两个虚拟机(即 Puppet Master 和 Puppet Agent)中删除防火墙规则。大多数 Linux 发行版中可用的默认防火墙是 iptables。在两个 VM 上运行这些命令:
$ sudo iptabels-F $ sudo /sbin/iptables-save
编辑主机
- 现在,我们需要在主节点和代理节点上配置/etc/hosts 和 etc/hostname 文件,以便它们能够相互通信。
$ sudo vim /etc/hostname
- 在 Puppet 服务器和 Puppet 客户端机器上编辑/etc/hosts 文件。您可以使用任何编辑器。
$ sudo vim /etc/hosts
在 PuppetServer 上输入系统的 IP 地址和主机名。
即
192.168.56.101 puppetServer
在 PuppetClient 机器上,输入您的 Puppet 代理的 IP 地址和主机名。我们还需要指定你的 puppet Master 的 IP 地址和给它的主机名。
即
192.168.56.103 puppetClient 192.168.56.101 puppetServer
添加仓库
- 由于 Puppet 不在标准的 Ubuntu 发行版存储库中,我们需要添加 Puppet Labs 提供的自定义存储库。
在 puppet master 和 puppet agent 机器上运行以下命令。
$ wget http://apt.puppetlabs.com/puppetlabs-release-trusty.deb
$ sudo dpkg-i puppetlabs-release-trusty.deb
更新包
在以下命令的帮助下,使用最新的包和存储库更新您的 puppet master 和 puppet 代理:
$ sudo apt-get update
在 Puppet Master 上启动 NTP
作为 Puppet Master 的 PuppetServer 应该有准确的系统时间。您可能应该使用 NTP 服务来设置准确的系统时间。在 puppetServer 中使用以下命令启用 NTP 服务器:
$ apt-get-y install ntp $ service ntp restart
可以通过以下命令查看状态:
$ service ntp status
Puppet Master 安装
- 现在,我们将安装 puppet 包,这将获取所有必要的先决条件和要求。
要安装 puppet master,请在 puppetServer 中运行以下命令:
$ sudo apt-get install puppetmaster
- 输出显示了 puppet Master 及其正在运行的服务的成功安装。要验证Puppet的版本,请使用以下命令:
$ puppet-V
或
$ puppet--version
- 使用以下命令安装 Puppet common:
$ sudo apt-get install puppet-common
- 现在我们必须锁定木偶版本的升级,因为这会妨碍升级木偶时的配置。它不会在执行系统更新时更改 Puppet。我们可以通过创建一个具有以下配置的新文件来进行这些设置,如下所示:
$ sudo vim /etc/apt/preferences.d/00-puppet.pref
在文件中添加如下配置:
# /etc/apt/preferences.d/00-puppet.pref Package: puppet puppet-common puppetmaster-passenger Pin: version 5.4* Pin-Priority: 501
现在运行设备更新时不会更新 Puppet。那么让我们按照以下步骤继续安装 Puppet 客户端。
- 现在,我们将更改Puppet配置文件。用编辑器打开puppet server的puppet.conf文件,配置如下参数。
$ sudo vim /etc/puppet/puppet.conf
在[main]和[master]下添加新行并保存:
[main] ssldir = /var/lib/puppet/ssl logdir = /var/log/puppet rundir = /var/run/puppet [master] certname = puppetServer
在配置文件中添加所需的更改后,重启puppet master服务。
$ service puppetmaster stop $ service puppetmaster start
Puppet 客户端安装
- 既然我们已经安装了它的所有基本要求,现在只需在 puppetClient Ubuntu 机器上运行一个命令来安装 puppet 代理,该机器将与 Puppet master,即 puppetServer Ubuntu 机器进行交互。
$ sudo apt-get install puppet
- 要检查 puppet 安装的版本,请使用以下命令:
$ puppet-V
或
$ puppet--version
- 现在,按照我们对 Puppet 主服务器所做的相同步骤进行操作。我们必须锁定Puppet的版本,以免在操作系统更新期间引起任何问题。
创建一个新文件:
$ sudo vim /etc/apt/preferences.d/00-puppet.pref
并在文件中添加如下配置:
# /etc/apt/preferences.d/00-puppet.pref Package: puppet puppet-common puppetmaster-passenger Pin: version 5.4* Pin-Priority: 501
现在运行设备更新时不会更新Puppet。那么接下来我们继续Puppet客户端的配置。
- 现在,我们将更改Puppet配置文件。用编辑器打开puppet客户端的puppet.conf文件,配置参数如下。
$ sudo vim /etc/puppet/puppet.conf
注释掉[master]配置并在[main]和[agent]下添加新行并保存:
[main] ssldir = /var/lib/puppet/ssl vardir = /var/lib/puppet logdir = /var/log/puppet rundir = /var/run/puppet [agent] server=puppetServer
- 启动 puppet 代理服务。
$ service puppet start
建立安全连接
Puppet 代理Puppet Master 和 Puppet Agent 通信的 Puppet Master 证书请求。因为在成功初始化 Puppet 客户端后,它会检查 Puppet Master Server 并在接受 Master Puppet Server 的任何管理指令之前发送证书请求。
一旦 Puppet Master 发送其证书, Puppet Agent 生成自己的证书。然后它请求 Puppet Master 签署这个证书。 Master 签署了此证书后,Puppet Master 和 Puppet Agent 之间形成了安全链接。
- 要在 puppet master 中生成 CA 证书,请转到 root 用户并在 puppetServer 虚拟机中运行以下命令:
$ sudo -i
以上命令将允许用户切换到root用户。
现在, 在 PuppetServer 上执行这个命令:
# puppet master--no-daemonize--verbose
以上命令将创建 CA 证书和 puppet 主证书,其中包含适当的 DNS 名称。
我们可以忽略此警告消息。收到"注意: 正在启动 Puppet master 版本 5.4.0"消息后按 ctrl+c,因为我们现在无法启动 puppet master。
- 现在,启动并启用 puppet 主服务。
# puppet resource service puppetmaster ensure=running
# puppet resource service puppetmaster enable=true
- 现在,将证书签名请求从 Puppet 代理发送到 Puppet Master。
# $ puppet-t
- 在 puppetServer 中,我们需要对 puppet 代理请求的证书进行签名。要获取证书列表,请在 puppetServer 机器中运行以下命令:
# puppet cert list
这里,"puppetclient.blr0.datrium.com"是自动生成的DNS名称PuppetClient 机器。
要签署 Puppet 代理请求的证书,请执行以下命令:
# puppet cert sign puppetclient.blr0.datrium.com
- 签署请求的证书后,启动 puppet 代理。要启动并启用 puppet 代理,请运行以下命令:
# puppet resource service puppet ensure=running # puppet resource service puppet enable=true
- 我们还可以通过在 Puppet 客户端机器上运行以下命令来查看客户端 Puppet 机器上证书的指纹:
$ puppet agent--fingerprint
现在,傀儡大师和傀儡代理之间建立了安全连接。
因此,我们已经成功安装并配置了 Puppet 主控器,并为具有功能齐全的 Puppet 实例的 Puppet 代理设置了基本配置。
下一章:Puppet 编码风格
在 Puppet 中,编码风格描述了尝试将系统配置上的基础设施转换为代码时必须遵循的所有要求。 Puppet 需要资源来工作和执行其所有定义的任务。正如我们所知,Puppet 使用 Ruby 语言作为它的编码语言,提 ...