如何在Ubuntu 14.04中安装Puppet master和client

如何在Ubuntu 14.04中安装Puppet Master和客户端

版本1.0
作者:Srijan Kishore <s [dot] kishore [at] ispconfig [dot] org>
在Twitter上关注youcl

本文介绍如何在Ubuntu 14.04server上安装和配置Puppet,我还将连接一个Puppet客户端与Ubuntu 14.04桌面。 Puppet是一种配置管理系统,可让您定义IT基础架构的状态,然后自动执行正确的状态。 无论您是管理几台服务器还是数千台物理和虚拟机,Puppet自动执行系统管理员通常手动执行的任务,释放时间和精神空间,以便系统管理员可以为提供更高业务价值的项目工作。
无论您是部署供应商提供的应用程序还是与内部软件开发人员合作,Puppet都会自动化软件交付过程的每一步:从配置物理和虚拟机到编排和报告; 从早期代码开发到测试,生产发布和更新。 Puppet确保一致性,可靠性和稳定性。 它还有助于系统管理员和开发人员之间更密切的协作,从而更有效地提供更清洁,更好设计的代码。


1初步说明

本教程基于Ubuntu 14.04服务器和Ubuntu 14.04桌面,因此您应该在继续本教程之前设置一个基本的Ubuntu 14.04服务器和桌面安装。 系统应该有一个静态IP地址。 在本教程中,我使用192.168.0.100作为Ubuntu服务器的IP地址和192.168.0.101作为Ubuntu桌面的IP,并将server1.example.com作为Ubuntu服务器的主机名称,将desktop1.example.com作为Ubuntu桌面的主机名。

在Ubuntu服务器和Ubuntu Desktop中, / etc / hosts文件中必须有这个条目。 这些条目在服务器和客户端都是常见的。

nano /etc/hosts
[...]
192.168.0.100 server1.example.com server1 192.268.0.101 desktop1.example.com desktop1

除了这两个服务器和桌面必须具有时间同步之外,它将在服务器和桌面机器中处理如下:

ntpdate pool.ntp.org ; apt-get update && sudo apt-get -y install ntp ; service ntp restart

Ubuntu服务器14.04上的Puppet Master 2安装

要安装Puppet master,我们将最新的存储库安装Puppet,如下所示:

cd /tmp
wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
dpkg -i puppetlabs-release-trusty.deb
apt-get update
apt-get install puppetmaster

检查Puppet版本为:

puppet -V
root@server1:/tmp# puppet -V
3.7.1
root@server1:/tmp#

我们有Puppet版本为3.7.1。 现在我们需要锁定Puppet版本更新,因为这会更新Puppet时会阻碍配置。 它将通过如下编辑文件完成:

nano /etc/apt/preferences.d/00-puppet.pref

将新创建的文件中的条目添加为:

# /etc/apt/preferences.d/00-puppet.pref
Package: puppet puppet-common puppetmaster-passenger
Pin: version 3.7*
Pin-Priority: 501

在系统中运行更新时,它不会更新Puppet。

接下来我们将更改配置文件,如下所示:

nano /etc/puppet/puppet.conf
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
#templatedir=$confdir/templates

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

只需在模板中注释templateated $ = $ confdir / templates并保存文件。

现在我们将停止并启动服务:

service puppetmaster stop
service puppetmaster start

现在,主Puppet服务器已经准备好了。

Ubuntu Desktop 14.04中的Puppet客户端安装

现在我们的目标是将Ubuntu Desktop安装并配置为Puppet主机Ubuntu Server的Puppet客户端。 您的客户端必须配置为/ etc / hosts ,除了Ubuntu Desktop必须是上述第1章所述的时间同步文件。接下来我们将安装Puppet,如下所示:

cd /tmp
wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
dpkg -i puppetlabs-release-trusty.deb
apt-get update
apt-get install puppet

检查Puppet版本为:

puppet -V
root @ desktop1:/ tmp#puppet -V
3.7.1
root @ desktop1:/ tmp#

我们有Puppet版本为3.7.1。 现在我们需要锁定Puppet版本更新,因为这会更新Puppet时会阻碍配置。 它将通过如下编辑文件完成:

nano /etc/apt/preferences.d/00-puppet.pref

将新创建的文件中的条目添加为:

# /etc/apt/preferences.d/00-puppet.pref
Package: puppet puppet-common puppetmaster-passenger
Pin: version 3.7*
Pin-Priority: 501

在系统中运行更新时,它不会更新Puppet。

接下来我们将更改配置文件,如下所示:

nano /etc/puppet/puppet.conf
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
#templatedir=$confdir/templates

#[master]
## These are needed when the puppetmaster is run by passenger
## and can safely be removed if webrick is used.
#ssl_client_header = SSL_CLIENT_S_DN
#ssl_client_verify_header = SSL_CLIENT_VERIFY

[agent]
server = server1.example.com

只要对上面提到的行进行评论,并添加代理条目并保存文件。

接下来,我们需要编辑文件vi / etc / default / puppet,并从no更改为yes作为belo:

nano /etc/default/puppet
[...]
START=yes
[...]

现在我们准备开始Puppet服务了,这样做将会如下:

service puppet start

现在我们的客户机准备与Puppet Master服务器进行通信。

4从Puppet大师到Puppet客户的证书交换

成功配置Puppet客户端Ubuntu Desktop将在接受Master Puppet服务器的任何管理指令之前搜索Puppet主服务器并请求证书请求。

要查看此类证书请求,请在Puppet Master Ubuntu服务器上运行该命令。

puppet cert list
root@server1:~# puppet cert list
  "desktop1.example.com" (SHA256) BD:F7:7C:76:48:09:C5:FE:0C:A8:CD:81:92:1D:A4:1F:15:1C:1A:6E:DE:C1:3C:B4:CA:FC:C6:2F:B4:9A:91:74
root@server1:~#

这意味着有一台名为dekstop1.example.com的机器已经存在并要求证书请求。 现在Puppet主服务器必须从Puppet客户端签名证书。 可以做到如下:

puppet cert sign desktop1.example.com

输出将如下所示:

root @ server1:〜#puppet cert sign desktop1.example.com
注意:desktop1.example.com的签名证书请求
注意:删除文件Puppet :: SSL :: CertificateRequest desktop1.example.com在'/var/lib/puppet/ssl/ca/requests/desktop1.example.com.pem'
root @ server1:〜#

这意味着从Puppet主机接收台式机的请求。 我们也可以通过命令检查:

puppet cert list -all
root @ server1:〜#puppet cert list -all
+“desktop1.example.com”(SHA256)7A:B7:CE:C4:A0:05:99:E7:E2:53:AD:D2:7F:6E:B5:38:CA:87:E0:8D :C7:0E:71:89:82:E1:17:FA:9D:B1:01:6D
+“server1.server1.example.com”(SHA256)FF:E2:49:B9:2F:B4:D1:79:21:E9:1A:83:22:FA:DB:E8:5D:9B:9A :1C:E1:4D:83:B9:16:9D:FD:8B:72:FD:62:5F(alt name:“DNS:puppet”,“DNS:puppet.server1.example.com”,“DNS :server1.server1.example.com“)
root @ server1:〜#

输出中的上述+号显示Puppet主ubuntu服务器上的成功证书签名。

要在Puppet Client Ubuntu桌面上查看客户端证书指纹,请运行:

puppet agent --fingerprint
root@desktop1:~# puppet agent --fingerprint
(SHA256) 7A:B7:CE:C4:A0:05:99:E7:E2:53:AD:D2:7F:6E:B5:38:CA:87:E0:8D:C7:0E:71:89:82:E1:17:FA:9D:B1:01:6D
root@desktop1:~#

同样,我们可以添加任何数量的客户端Puppet主Ubuntu服务器,并从客户端签署cert请求。 如果对于任何管理需求,您希望从Puppet主ubuntu服务器中撤销证书,我们可以运行:

puppet cert clean desktop1.example.com
root@server1:~# puppet cert clean desktop1.example.com
Notice: Revoked certificate with serial 3
Notice: Removing file Puppet::SSL::Certificate desktop1.example.com at '/var/lib/puppet/ssl/ca/signed/desktop1.example.com.pem'
Notice: Removing file Puppet::SSL::Certificate desktop1.example.com at '/var/lib/puppet/ssl/certs/desktop1.example.com.pem'
root@server1:~#

为了确保在Puppet Master Ubuntu服务器上完全删除了证书,我再次明确地清除了它们

puppet cert -c

注意上面我刚刚提到我们如何从Puppet主服务器撤销证书和diconnect桌面。

如上所述,我们可以连接N台台式机,并通过Puppet主服务器集中管理。 恭喜! 现在我们在Ubuntu 14.04上有一个功能齐全的Puppet实例:)

5链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏