From f8fbc01efa7115e507606303e35524081016f088 Mon Sep 17 00:00:00 2001 From: ivo wang Date: Fri, 4 Dec 2015 11:53:30 +0800 Subject: [PATCH] Update 20150806 Installation Guide for Puppet on Ubuntu 15.04.md --- ...lation Guide for Puppet on Ubuntu 15.04.md | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/translated/tech/20150806 Installation Guide for Puppet on Ubuntu 15.04.md b/translated/tech/20150806 Installation Guide for Puppet on Ubuntu 15.04.md index 8c96091bf0..93a9d05f80 100644 --- a/translated/tech/20150806 Installation Guide for Puppet on Ubuntu 15.04.md +++ b/translated/tech/20150806 Installation Guide for Puppet on Ubuntu 15.04.md @@ -11,6 +11,8 @@ puupet服务器IP:44.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代理节点所使用系统时间必须要准确,这样可以避免代理证书出现问题。如果有时间差异,那么证书将过期失效,所以服务器与代理节点的系统时间必须互相同步。我们使用NTP(Network 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 添加下面的内容进去