Update 20150806 Installation Guide for Puppet on Ubuntu 15.04.md

This commit is contained in:
ivo wang 2015-12-04 11:53:30 +08:00
parent 2df47a9d28
commit f8fbc01efa

View File

@ -11,6 +11,8 @@ puupet服务器IP44.55.88.6,主机名: puppetmaster
puppet代理节点IP 45.55.86.39 ,主机名: puppetnode
我们要在代理节点和服务器这两天机器的hosts里面都添加上相应的条目使用root或是sudo访问权限来编辑/etc/hosts文件命令如下
# nano /etc/hosts
45.55.88.6 puppetmaster.example.com puppetmaster
@ -21,6 +23,8 @@ puppet代理节点IP 45.55.86.39 ,主机名: puppetnode
### 2. 用NTP更新时间 ###
puppet代理节点所使用系统时间必须要准确这样可以避免代理证书出现问题。如果有时间差异那么证书将过期失效所以服务器与代理节点的系统时间必须互相同步。我们使用NTPNetwork Time Protocol网络时间协议来同步时间。在服务器与代理节点上面分别运行以下命令来同步时间。
# ntpdate pool.ntp.org
17 Jun 00:17:08 ntpdate[882]: adjust time server 66.175.209.17 offset -0.001938 sec (译者注:显示类似的输出结果表示运行正常)
@ -69,6 +73,8 @@ puppet代理节点所使用系统时间必须要准确这样可以避免代
**提示**: 在安装的时候可能会报错**Warning: Setting templatedir is deprecated.请查看 http://links.puppetlabs.com/env-settings-deprecations (at /usr/lib/ruby/vendor_ruby/puppet/settings.rb:1139:in `issue_deprecation_warning')** 不过不用担心忽略掉它就好我们只需要在设置配置文件的时候把这一项disable就行了。
如何来查看puppet master是否已经安装成功了呢非常简单只需要使用下面的命令查看它的版本就可以了。
# puppet --version
3.8.1
@ -85,6 +91,8 @@ 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.8*
@ -94,6 +102,8 @@ puppet代理节点所使用系统时间必须要准确这样可以避免代
### 5. 配置 Puppet Master###
Puppet master作为一个证书发行机构所有代理证书的请求都将由它来处理。首先我们要删除所有在软件包安装过程中创建出来的ssl证书。本地默认的puppet证书在/var/lib/puppet/ssl。因此我们只需要使用rm命令来移除这些证书就可以了。
# rm -rf /var/lib/puppet/ssl
现在来配置这些证书在创建puppet master证书的时候需要用使用DNS能查找到的代理节点名称。使用文本编辑器来修改服务器的配置文件puppet.conf
@ -117,6 +127,8 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
在这我们需要注释掉templatedir 这行使它失效。然后在文件的结尾添加下面的信息。
server = puppetmaster
environment = production
runinterval = 1h
@ -129,6 +141,8 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
编辑完成后保存退出。
使用下面的命令来生成一个新的证书。
# puppet master --verbose --no-daemonize
Info: Creating a new SSL key for ca
@ -189,6 +203,8 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
我们已经准备好了puppet的服务端现在来为代理节点安装客户端。这里我们要给每一个需要管理的节点安装客户端并且确保这些节点能够通过DNS查询到服务器主机。下面将 puppetnode.example.com作为代理节点安装客户端
在代理节点服务器上使用下面的命令下载puppet实验室提供的软件包。
# cd /tmp/
# wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb\
@ -204,9 +220,12 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
2015-06-17 00:54:42 (162 KB/s) - puppetlabs-release-trusty.deb saved [7384/7384]
在ubuntu 15.04上我们使用debian包管理系统来安装它命令如下
# dpkg -i puppetlabs-release-trusty.deb
使用apt包管理命令更新一下本地的软件源
# apt-get update
通过远程仓库安装
@ -224,6 +243,7 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
### 9. 使用APT工具锁定Agent客户端版本 ###
和上面的步骤一样为防止随意升级造成的配置文件混乱我们要使用apt工具来把它锁定。具体做法是使用文本编辑器创建一个文件 **/etc/apt/preferences.d/00-puppet.pref**
# nano /etc/apt/preferences.d/00-puppet.pref
在新建的文件里面加入如下内容
@ -245,6 +265,7 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
假定服务端可用我们的客户端应该是可以和它相互连接通信的。如果不行我们需要使用完整的主机域名puppetmaster.example.com
[agent]
server = puppetmaster.example.com
certname = puppetnode.example.com
@ -278,16 +299,16 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
第一次运行的时候,代理节点会生成一个ssl证并且给服务端发送一个请求。在主服务器给代理节点服务器证书签名之后主服务器才能和代理服务器通信并且控制代理服务器。
在主服务器上使用下面的命令来列出当前的证书请求
# puppet cert list
# puppet cert list
"puppetnode.example.com" (SHA256) 31:A1:7E:23:6B:CD:7B:7D:83:98:33:8B:21:01:A6:C4:01:D5:53:3D:A0:0E:77:9A:77:AE:8F:05:4A:9A:50:B2
因为只设置了一台代理节点服务器,所以我们将只看到一个请求。
注意有没有“+”号在前面,代表这个证书有没有被签名。
使用**puppet cert sign**到**hostname**这个命令来签署这个签名请求。
# puppet cert sign puppetnode.example.com
# puppet cert sign puppetnode.example.com
Notice: Signed certificate request for puppetnode.example.com
Notice: Removing file Puppet::SSL::CertificateRequest puppetnode.example.com at '/var/lib/puppet/ssl/ca/requests/puppetnode.example.com.pem'
@ -302,16 +323,16 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
如果我们想移除一个主机或者想重建一个主机然后再添加它。下面的例子里我们将展示如何删除puppet master上面的一个证书。使用的命令如下
# puppet cert clean hostname
Notice: Revoked certificate with serial 5
Notice: Removing file Puppet::SSL::Certificate puppetnode.example.com at '/var/lib/puppet/ssl/ca/signed/puppetnode.example.com.pem'
Notice: Removing file Puppet::SSL::Certificate puppetnode.example.com at '/var/lib/puppet/ssl/certs/puppetnode.example.com.pem'
如果我们想查看所有的签署和未签署的请求,使用下面这条命令
# puppet cert list --all
+ "puppetmaster" (SHA256) 33:28:97:86:A1:C3:2F:73:10:D1:FB:42:DA:D5:42:69:71:84:F0:E2:8A:01:B9:58:38:90:E4:7D:B7:25:23:EC (alt names: "DNS:puppetmaster", "DNS:puppetmaster.example.com")
### 12. 部署代理节点Puppet清单 ###
当配置并完成主puppet清单后现在我们需要署代理节点服务器清单。要应用并加载主puppet清单我们可以在代理节点服务器上面使用下面的命令
@ -328,6 +349,7 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
这里像我们展示了主清单如何去管理一个单一的服务器。
如果我们打算运行的puppet清单与主puppet清单没有什么关联那么需要使用puppet apply 到相应的路径。它仅适用于该代理节点。
# puppet apply /etc/puppet/manifest/test.pp
### 13. 配置特殊节点清单 ###
@ -335,6 +357,7 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
如果我们想部署一个清单到某个特定的节点,我们需要进行以下操作。
在主服务器上面使用文本编辑器编辑/etc/puppet/manifest/site.pp
# nano /etc/puppet/manifest/site.pp
添加下面的内容进去