Update and rename Installation Guide for Puppet on Ubuntu 15.04 to 20150806 Installation Guide for Puppet on Ubuntu 15.04

翻译完成
This commit is contained in:
ivo wang 2015-12-04 11:43:48 +08:00
parent 2aaec293dd
commit ab096a3c4c

View File

@ -1,18 +1,16 @@
如何在Ubuntu 15.04中安装puppet 如何在Ubuntu 15.04中安装puppet
================================================================================ ================================================================================
大家好,本教程将教大家如何在ubuntu 15.04上面安装puppet用它来管理你的服务器基础环境。puppet是由puppet实验室开发并维护的一款开源软件它帮我们自动的管理配置服务器的基础环境。不管我们管理的是几个服务器还是数以千计的机器设备组成的业务流程及报表puppet都能够使管理员从繁琐的手动调整中解放出来腾出时间和精力去提升整体效率。它能够确保自动化流程作业的一致性可靠性以及稳定性。它让管理员和开发者走得更近叫付出更加简洁清晰设计良好的代码。puppet提供了管理配置和自动化数据中心的2个解决方案。分别是**puppet开源项目 and puppet商业版**.puppet开源项目在apache2.0上是灵活可定制的的解决方案,设置初衷是帮助他们完成那些经常操作的重复性工作。pupprt商业版是一个全平台复杂IT环境下的成熟解决方案它除了拥有开源版本所有优势以外还有移动端apps只有商业版才有的加强支持以及模块化和集成管理等。Puppet使用SSL证书来认证主机与代理节点之间的通信。 大家好,本教程将教各位如何在ubuntu 15.04上面安装puppet用它来管理你的服务器基础环境。puppet是由puppet实验室开发并维护的一款开源软件能够帮我们自动的管理配置服务器的基础环境。不管我们管理的是几个服务器还是数以千计的计算机组成的业务报表体系puppet都能够使管理员从繁琐的手动配置调整中解放出来,腾出时间和精力去提系统的升整体效率。它能够确保所有自动化流程作业的一致性,可靠性以及稳定性。它让管理员和开发者更紧密的联系在一起使开发者更容易产出付出设计良好简洁清晰的代码。puppet提供了管理配置和自动化数据中心的2个解决方案。这两个解决方案分别是**puppet开源项目 和 puppet商业版**。puppet开源项目依赖于apache2.0,它是一个非常灵活可随意定制的解决方案,设置初衷是帮助管理员去完成那些重复性操作工作。pupprt商业版是一个全平台复杂IT环境下的成熟解决方案它除了拥有开源版本所有优势以外还有移动端apps只有商业版才有的加强支持以及模块化和集成管理等。Puppet使用SSL证书来认证主机与代理节点之间的通信。
本教程将要介绍如何在ubuntu15.04的主机和代理节点上面安装开源版的puppet。在这我们用一台服务器做主机管理和控制剩余当作puppet的代理节点的服务器这些代理节点将依据服务器来进行配置。在ubuntu 15.04只需要简单的几步就能安装配置好puppet用它来管理我们的服务器基础环境非常的方便。译者注puppet采用的C/S架构所以必须有至少有一台作为服务端其他作为客户端处理 本教程将要介绍如何在ubuntu 15.04的主机和代理节点上面安装开源版的puppet。在这我们用一台服务器做主机管理和控制剩余当作puppet的代理节点的服务器这些代理节点将依据服务器来进行配置。在ubuntu 15.04只需要简单的几步就能安装配置好puppet用它来管理我们的服务器基础环境非常的方便。译者注puppet采用的C/S架构所以必须有至少有一台作为服务端其他作为客户端处理
### 1.设置主机### ### 1.设置主机###
Here is the infrastructure of the server that we're gonna use for this tutorial. 在本教程里我们将使用用2台运行ubuntu 15.04 "Vivid Vervet"的主机一台作为服务端另一台作为puppet的代理节点。下面是我们将用到的服务器的基础信息。
在本教程里我们将使用用2台运行ubuntu 15.04 "Vivid Vervet"的主机一台作为服务端另一台作为puppet的代理节点。这就是我们将用到的服务器基础环境。
puupet服务器IP44.55.88.6,主机名: puppetmaster puupet服务器IP44.55.88.6,主机名: puppetmaster
puppet 代理节点 IP 45.55.86.39 ,主机名: puppetnode puppet代理节点IP 45.55.86.39 ,主机名: puppetnode
Now we'll add the entry of the machines to /etc/hosts on both machines node agent and master server. 我们要在代理节点和服务器这两天机器的hosts里面都添加上相应的条目使用root或是sudo访问权限来编辑/etc/hosts文件命令如下
我们要在代理节点和服务器这两天机器的hosts里面都添加上相应的条目使用root或是sudo访问权限来编辑/etc/hosts文件命令如下
# nano /etc/hosts # nano /etc/hosts
45.55.88.6 puppetmaster.example.com puppetmaster 45.55.88.6 puppetmaster.example.com puppetmaster
@ -22,20 +20,18 @@ Now we'll add the entry of the machines to /etc/hosts on both machines node agen
### 2. 用NTP更新时间 ### ### 2. 用NTP更新时间 ###
To do so, here's the command below that we need to run on both master and node agent. puppet代理节点所使用系统时间必须要准确这样可以避免代理证书出现问题。如果有时间差异那么证书将过期失效所以服务器与代理节点的系统时间必须互相同步。我们使用NTPNetwork Time Protocol网络时间协议来同步时间。在服务器与代理节点上面分别运行以下命令来同步时间。
puppet的代理节点所使用系统时间必须要准确这样可以避免代理证书出现问题。如果有时间差异那么证书将过期失效所以服务器与代理节点的系统时间必须双方互相同步。我们使用NTPNetwork Time Protocol网络时间协议来更新同步时间。在服务器与代理节点上面分别运行以下命令来同步时间
# ntpdate pool.ntp.org # ntpdate pool.ntp.org
17 Jun 00:17:08 ntpdate[882]: adjust time server 66.175.209.17 offset -0.001938 sec (译者注:显示类似的输出结果表示运行正常) 17 Jun 00:17:08 ntpdate[882]: adjust time server 66.175.209.17 offset -0.001938 sec (译者注:显示类似的输出结果表示运行正常)
使用下面的命令更新你的软件仓库安装并运行ntp服务 如果没有ntp使用下面的命令更新你的软件仓库安装并运行ntp服务
# apt-get update && sudo apt-get -y install ntp ; service ntp restart # apt-get update && sudo apt-get -y install ntp ; service ntp restart
### 3. 安装服务器软件 ### ### 3. 安装服务器软件 ###
There are many ways to install open source puppet. In this tutorial, we'll download and install a debian binary package named as **puppetlabs-release** packaged by the Puppet Labs which will add the source of the **puppetmaster-passenger** package. The puppetmaster-passenger includes the puppet master with apache web server. So, we'll now download the Puppet Labs package. 安装开源版本的puppet有很多的方法。在本教程中我们在puppet实验室官网下载一个名为puppetlabs-release的软件包安装后它将为我们在软件源里面添加puppetmaster-passenger。puppetmaster-passenger依赖于apache的puppet服务端。我们开始下载这个软件包
有很多的方法可以用来安装开源版本的puppet。在本教程中我们在puppet实验室官网下载一个名为puppetlabs-release的软件包安装后它为我们在软件源里面添加puppetmaster-passenger。puppetmaster-passenger是基于apache的puppet服务端。我们开始下载这个软件包
# cd /tmp/ # cd /tmp/
# wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb # wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
@ -50,7 +46,7 @@ There are many ways to install open source puppet. In this tutorial, we'll downl
2015-06-17 00:19:26 (130 KB/s) - puppetlabs-release-trusty.deb saved [7384/7384] 2015-06-17 00:19:26 (130 KB/s) - puppetlabs-release-trusty.deb saved [7384/7384]
下载完成后我们要安装这个软件包 下载完成,我们来安装它
# dpkg -i puppetlabs-release-trusty.deb # dpkg -i puppetlabs-release-trusty.deb
@ -64,26 +60,25 @@ There are many ways to install open source puppet. In this tutorial, we'll downl
# apt-get update # apt-get update
现在我们就可以使用下面的命令来安装puppetmaster-passenger了 现在我们就可以安装puppetmaster-passenger了
# apt-get install puppetmaster-passenger # apt-get install puppetmaster-passenger
**提示**: 在安装的时候可能会报错**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')** 不过不用担心,忽略掉它就好,报错的意思是templatedir过时了我们只需要在设置配置文件的时候把这一项disable就行了。 **提示**: 在安装的时候可能会报错**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 master是否已经安装成功了呢非常简单只需要使用下面的命令查看它的版本就可以了。
# puppet --version # puppet --version
3.8.1 3.8.1
现在我们已经安装好了puppet master。要想使用puppet master apache服务就必须运行起来因为puppet master进程的运行是依赖于apache的。
现在我们已经安装好了puppet master。要想使用puppet master apache服务就必须运行起来因为puppet master进程的运行是基于apache的。
在开始之前我们将apache服务停止这样puppet muster也会停止运行。 在开始之前我们将apache服务停止这样puppet muster也会停止运行。
# systemctl stop apache2 # systemctl stop apache2
### 4. 使用Apt工具锁定Master服务端版本 ### ### 4. 使用Apt工具锁定Master服务端版本 ###
现在已经安装了 3.8.1版的puppet我们锁定这个版本不让它随意升级因为升级会造成配置文件混乱。 使用apT工具来锁定它,这里我们需要使用文本编辑器来创建一个新的文件 **/etc/apt/preferences.d/00-puppet.pref** 现在已经安装了 3.8.1版的puppet我们锁定这个版本不让它随意升级因为升级会造成配置文件混乱。 使用apt工具来锁定它,这里我们需要使用文本编辑器来创建一个新的文件 **/etc/apt/preferences.d/00-puppet.pref**
# nano /etc/apt/preferences.d/00-puppet.pref # nano /etc/apt/preferences.d/00-puppet.pref
@ -93,14 +88,13 @@ There are many ways to install open source puppet. In this tutorial, we'll downl
Pin: version 3.8* Pin: version 3.8*
Pin-Priority: 501 Pin-Priority: 501
这样在以后的系统软件升级中puppet将被锁住不会跟随系统软件一起升级。 这样在以后的系统软件升级中puppet master将被锁住不会跟随系统软件一起升级。
### 5. 配置 Puppet### ### 5. 配置 Puppet Master###
Puppet master作为一个证书发行机构所有代理证书的请求都将由它来处理。首先我们要删除所有在软件包安装过程中创建出来已经存在的ssl证书。本地默认的puppet证书在/var/lib/puppet/ssl。因此我们只需要使用rm命令来移除这些证书就可以了。 Puppet master作为一个证书发行机构所有代理证书的请求都将由它来处理。首先我们要删除所有在软件包安装过程中创建出来的ssl证书。本地默认的puppet证书在/var/lib/puppet/ssl。因此我们只需要使用rm命令来移除这些证书就可以了。
# rm -rf /var/lib/puppet/ssl # rm -rf /var/lib/puppet/ssl
现在来配置这些证书在创建puppet master证书的时候需要用使用DNS能查找到的代理节点名称。使用文本编辑器来修改服务器的配置文件puppet.conf
现在来配置这些证书在创建puppet master'证书的时候需要用到能与服务器通信的代理节点的DNS名称。使用文本编辑器来编辑服务器的配置文件puppet.conf
# nano /etc/puppet/puppet.conf # nano /etc/puppet/puppet.conf
输出的结果像下面这样 输出的结果像下面这样
@ -120,7 +114,7 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
ssl_client_verify_header = SSL_CLIENT_VERIFY ssl_client_verify_header = SSL_CLIENT_VERIFY
在这我们需要注释掉templatedir 这行使它失效。在文件的结尾添加下面的信息。 在这我们需要注释掉templatedir 这行使它失效。然后在文件的结尾添加下面的信息。
server = puppetmaster server = puppetmaster
environment = production environment = production
runinterval = 1h runinterval = 1h
@ -128,7 +122,7 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
certname = puppetmaster certname = puppetmaster
dns_alt_names = puppetmaster, puppetmaster.example.com dns_alt_names = puppetmaster, puppetmaster.example.com
这里有很多有用的建立适合你的配置项。 如果你有需要在Puppet实验室有一份详细的描述文件供你阅读。 [Main Config File (puppet.conf)][1]. 还有很多你可能用的到的配置选项。 如果你有需要在Puppet实验室有一份详细的描述文件供你阅读。 [Main Config File (puppet.conf)][1].
编辑完成后保存退出。 编辑完成后保存退出。
@ -147,9 +141,9 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
^CNotice: Caught INT; storing stop ^CNotice: Caught INT; storing stop
Notice: Processing stop Notice: Processing stop
至此,证书已经生成. 一旦我们看到 **Notice: Starting Puppet master version 3.8.1**, 表明证书就已经制作好了.我们按下 CTRL-C 回到shell命令行. 至此,证书已经生成一旦我们看到 **Notice: Starting Puppet master version 3.8.1**, 表明证书就已经制作好了.我们按下 CTRL-C 回到shell命令行
如果你想看刚生成证书的信息,可以使用下面的命令来进行查看 查看新生成证书的信息,可以使用下面的命令。
# puppet cert list -all # puppet cert list -all
@ -157,7 +151,7 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
### 6. 创建一个Puppet清单 ### ### 6. 创建一个Puppet清单 ###
默认的主要清单在/etc/puppet/manifests/site.pp. 这个主要清单文件定义着控制哪些代理节点。我们现在使用下面的命令来创建一个清单文件 默认的主要清单是/etc/puppet/manifests/site.pp。 这个主要清单文件定义着控制哪些代理节点。现在我们来创建一个清单文件
# nano /etc/puppet/manifests/site.pp # nano /etc/puppet/manifests/site.pp
@ -179,21 +173,20 @@ Puppet master作为一个证书发行机构所有代理证书的请求都将
ensure => running, ensure => running,
} }
以上这几行的意思是通过apache web 服务来部署代理节点 以上这几行的意思是给代理节点部署apache web 服务
### 7. 运行Master服务### ### 7. 运行puppet Master服务 ###
已经准备好运行puppet master了那么开启apache服务来让它运行 已经准备好运行puppet master了那么开启apache服务来让它启动
# systemctl start apache2 # systemctl start apache2
我们puppet master已经跑起来了, 但是现在他还不能管理任何代理节点。现在我们给master添加代理节点. 我们puppet master已经运行,不过它还不能管理任何代理节点。现在我们给puppet master添加代理节点.
**Note**: If you get an error **Job for apache2.service failed. See "systemctl status apache2.service" and "journalctl -xe" for details.** then it must be that there is some problem with the apache server. So, we can see the log what exactly has happened by running **apachectl start** under root or sudo mode. Here, while performing this tutorial, we got a misconfiguration of the certificates under **/etc/apache2/sites-enabled/puppetmaster.conf** file. We replaced **SSLCertificateFile /var/lib/puppet/ssl/certs/server.pem with SSLCertificateFile /var/lib/puppet/ssl/certs/puppetmaster.pem** and commented **SSLCertificateKeyFile** line. Then we'll need to rerun the above command to run apache server. **提示**: 如果报错 **Job for apache2.service failed. 查看"systemctl status apache2.service" and "journalctl -xe" 所给出的信息.** 肯定是apache server有一些问题. 我们可以使用root或是sudo访问权限来运行**apachectl start**查看它输出的日志。 在本教程执行过程中, 我们发现一个证书配置的问题,解决方法如下**/etc/apache2/sites-enabled/puppetmaster.conf**. 修改其中的**SSLCertificateFile /var/lib/puppet/ssl/certs/server.pem 为 SSLCertificateFile /var/lib/puppet/ssl/certs/puppetmaster.pem** 然后注释掉后面这行**SSLCertificateKeyFile** . 然后在命令行启动apache
**提示**: 如果报错 **Job for apache2.service failed. 查看"systemctl status apache2.service" and "journalctl -xe" 所给出的信息.** 肯定是apache server有一些问题. 我们可以使用root或是sudo访问权限来运行**apachectl start**查看它输出的日志。 在本教程执行过程中, 我们找到一个关于证书有问题的配置文件**/etc/apache2/sites-enabled/puppetmaster.conf**. 修改其中的**SSLCertificateFile /var/lib/puppet/ssl/certs/server.pem 为 SSLCertificateFile /var/lib/puppet/ssl/certs/puppetmaster.pem** 然后注释掉后面这行**SSLCertificateKeyFile** . 然后在命令行启动apache
### 8. Puppet客户端安装 ### ### 8. Puppet客户端安装 ###
我们已经准备好了puppet的服务端现在来安装代理节点安装客户端。这里我们要给每一个需要管理的节点安装客户端并且确保这些节点能够通过DNS查找的服务器主机。下面将 puppetnode.example.com作为代理节点安装客户端 我们已经准备好了puppet的服务端现在来代理节点安装客户端。这里我们要给每一个需要管理的节点安装客户端并且确保这些节点能够通过DNS查询到服务器主机。下面将 puppetnode.example.com作为代理节点安装客户端
在代理节点上使用下面的命令下载puppet实验室提供的软件包。 在代理节点服务器使用下面的命令下载puppet实验室提供的软件包。
# cd /tmp/ # cd /tmp/
# wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb\ # wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb\
@ -226,9 +219,9 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
最后保存并退出。 最后保存并退出。
### 9. 使用APT工具锁定Agent客户端版本### ### 9. 使用APT工具锁定Agent客户端版本 ###
和上面的步骤一样为防止随意升级造成的配置文件混乱,我们要将该版本使用apt工具锁定。具体做法是使用文本编辑器创建一个新的文件 **/etc/apt/preferences.d/00-puppet.pref** 和上面的步骤一样为防止随意升级造成的配置文件混乱我们要使用apt工具来把它锁定。具体做法是使用文本编辑器创建一个文件 **/etc/apt/preferences.d/00-puppet.pref**
# nano /etc/apt/preferences.d/00-puppet.pref # nano /etc/apt/preferences.d/00-puppet.pref
在新建的文件里面加入如下内容 在新建的文件里面加入如下内容
@ -246,11 +239,10 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
# nano /etc/puppet/puppet.conf # nano /etc/puppet/puppet.conf
它看起来和服务端的配置文件完全一样。 它看起来和服务端的配置文件完全一样。同样注释掉**templatedir**这行。不同的是在这里我们需要删除掉所有关于[master]的部分。
同样注释掉**templatedir**这行. 在这里我们需要删除掉所有关于[master]的部分。
假定服务端可用我们的客户端应该是可以和它相互连接通信的。如果不行我们需要使用完整的域名puppetmaster.example.com 假定服务端可用我们的客户端应该是可以和它相互连接通信的。如果不行我们需要使用完整的主机域名puppetmaster.example.com
[agent] [agent]
server = puppetmaster.example.com server = puppetmaster.example.com
certname = puppetnode.example.com certname = puppetnode.example.com
@ -275,22 +267,20 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
# systemctl start puppet # systemctl start puppet
如果一切顺利的话,我们不会看到命令行有任何输出。 第一次运行的时候,代理节点会生成一个ssl证书并且发送一个请求给服务端通过确认后两台机器就可以互相通信了。 如果一切顺利的话,我们不会看到命令行有任何输出。 第一次运行的时候,代理节点会生成一个ssl证书并且给服务端发送一个请求经过签名确认后两台机器就可以互相通信了。
**Note**: If you are adding your first node, it is recommended that you attempt to sign the certificate on the puppet master before adding your other agents. Once you have verified that everything works properly, then you can go back and add the remaining agent nodes further.
**提示**: 如果这是你添加的第一个代理节点,建议你在添加其他节点前先给这个证书签名。一旦能够通过并正常运行,回过头来再添加其他代理节点。 **提示**: 如果这是你添加的第一个代理节点,建议你在添加其他节点前先给这个证书签名。一旦能够通过并正常运行,回过头来再添加其他代理节点。
### 11. 服务器上的签名证书请求 ### ### 11. 服务器上的签名证书请求 ###
第一次运行的时候,代理节点会生成一个ssl证书并且发送一个请求给服务端.在主服务器给代理节点服务器的证书签名之后,主服务器才能和代理服务器通信并且控制代理服务器。 第一次运行的时候,代理节点会生成一个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 "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**到**hostname**这个命令来签署这个签名请求。
@ -299,15 +289,15 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
Notice: Signed certificate request for 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' Notice: Removing file Puppet::SSL::CertificateRequest puppetnode.example.com at '/var/lib/puppet/ssl/ca/requests/puppetnode.example.com.pem'
服务端只能和它所签名的代理节点通信并控制代理节点。 服务端只能控制它签名过的代理节点。
如想我们想签署所有的请求, 我们需要使用-all选项如下所示。 如想我们想签署所有的请求, 需要使用-all选项如下所示。
# puppet cert sign --all # puppet cert sign --all
### 删除一个Puppet证书 ### ### 删除一个Puppet证书 ###
如果我们想移除一个主机,或者想重建一个主机然后再添加它. 下面的例子我们将展示如何删除puppet master上面的一个证书. 使用的命令如下: 如果我们想移除一个主机,或者想重建一个主机然后再添加它。下面的例子里我们将展示如何删除puppet master上面的一个证书。使用的命令如下:
# puppet cert clean hostname # puppet cert clean hostname
@ -315,15 +305,14 @@ Puppet客户端默认是不启动的。这里我们需要使用文本编辑器
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/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' Notice: Removing file Puppet::SSL::Certificate puppetnode.example.com at '/var/lib/puppet/ssl/certs/puppetnode.example.com.pem'
如果我们想查看目前所有的签署和未签署的请求,使用下面这条命令 如果我们想查看所有的签署和未签署的请求,使用下面这条命令
# puppet cert list --all # 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") + "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清单 ### ### 12. 部署代理节点Puppet清单 ###
After we configure and complete the puppet manifest, we'll wanna deploy the manifest to the agent nodes server. To apply and load the main manifest we can simply run the following command in the agent node. 当配置并完成主puppet清单后现在我们需要署代理节点服务器清单。要应用并加载主puppet清单我们可以在代理节点服务器上面使用下面的命令
当我们配置并完成主puppet清单我们现在署代理节点服务器清单。要应用并加载主清单我们可以在代理节点服务器上面使用下面的命令
# puppet agent --test # puppet agent --test
@ -335,13 +324,13 @@ After we configure and complete the puppet manifest, we'll wanna deploy the mani
Notice: Finished catalog run in 10.53 seconds Notice: Finished catalog run in 10.53 seconds
这里像我们展示了主清单如何去管理一个单一的服务器。 这里像我们展示了主清单如何去管理一个单一的服务器。
If we wanna run a puppet manifest that is not related to the main manifest, we can simply use puppet apply followed by the manifest file path. It only applies the manifest to the node that we run the apply from.
如果我们打算运行的puppet清单与主清单没有什么关联那么需要使用puppet apply 到相应的路径。它仅适用于该代理节点。 如果我们打算运行的puppet清单与主puppet清单没有什么关联那么需要使用puppet apply 到相应的路径。它仅适用于该代理节点。
# puppet apply /etc/puppet/manifest/test.pp # puppet apply /etc/puppet/manifest/test.pp
### 13. 配置一个特殊节点清单 ### ### 13. 配置特殊节点清单 ###
如果我们想部署一个清单到某个特定的节点,我们需要配置清单如下 如果我们想部署一个清单到某个特定的节点,我们需要进行以下操作
在主服务器上面使用文本编辑器编辑/etc/puppet/manifest/site.pp 在主服务器上面使用文本编辑器编辑/etc/puppet/manifest/site.pp
# nano /etc/puppet/manifest/site.pp # nano /etc/puppet/manifest/site.pp
@ -366,12 +355,12 @@ If we wanna run a puppet manifest that is not related to the main manifest, we c
} }
} }
这里的配置显示我们将在名为puppetnode and puppetnode1的2个特殊节点上面安装apache服务. 这里可以添加更多我们需要安装部署的具体节点进去。 这里的配置显示我们将在名为puppetnode and puppetnode1的2个特殊节点上面安装apache服务. 这里可以添加其他我们需要安装部署的具体节点进去。
### 14. 配置清单模块 ### ### 14. 配置清单模块 ###
模块化组件组是非常实用的在Puppet社区有很多人提交自己的模块 模块化组件组是非常实用的在Puppet社区有很多人贡献自己的模块组件
在主puppet服务器上, 我们将使用uppet module命令来安装**puppetlabs-apache** 模块。 在主puppet服务器上, 我们将使用puppet module命令来安装**puppetlabs-apache** 模块。
# puppet module install puppetlabs-apache # puppet module install puppetlabs-apache
@ -395,7 +384,7 @@ If we wanna run a puppet manifest that is not related to the main manifest, we c
### 总结 ### ### 总结 ###
现在我们已经成功的在ubuntu 15.04上面部署并运行puppet来管理代理节点服务器的基础运行环境.我们学习了puppet是如何工作的配置清单文件节点与主机间的ssl证书认证。使用puppet控制管理并且配置众多的代理节点服务器是非常容易的。如果你有任何的问题,建议,反馈,请务必与我们取得联系我们将及时的改善更新,谢谢。 现在我们已经成功的在ubuntu 15.04上面部署并运行puppet来管理代理节点服务器的基础运行环境。我们学习了puppet是如何工作的编写清单文件节点与主机间使用ssl证书认证的认证过程。使用puppet管理配置众多的代理节点服务器是非常容易的。如果你有任何的问题,建议,反馈,与我们取得联系,我们将第一时间完善更新,谢谢。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------