​puppet常用调试命令​

yum快速部署puppet测试环境(C/S端)

rpm -ivh  http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm

yum ruby ruby-libs ruby-shadow puppet puppet-server factor(C/S);

要是单独C客户端则 yum -y install puppet factor即可;

简单配置下C/S修改下C客户端端的/etc/puppet/puppet.conf文件

在[main]标签最末尾添加如下3行语句即可;

server = puppetMasterip

runinterval = 3600 (puppet C客户端检索S服务端配置文件更新周期) puppet agent -t是实时更新

listen = true

/etc/init.d/puppetmaster start

/etc/init.d/puppet start

chkconfig puppetmaster on

chkconfig puppet on

在puppet服务端为你的puppet客户端签发下证书

服务器端为客户端节点签发证书语句

puppet cert --sign puppetNodeFQDN

(默认在客户端端修改配置/etc/puppet/puppet.conf启动puppet 客户端进程,客户端就会提出向服务器端申请请求证书,直接服务器端--sign签发)

但是这个是由实际限制的,超过时间限制证书申请则过期那么你就可以用如下这条语句向puppet服务器端重新申请证书并等待服务器端的签发;

一、    关于证书在master的认识

我们知道puppet为了安全,采用ssl隧道通信,因此需要申请证书来验证的,当puppet master第一次启动的时候,可以查看/var/log/message有类似如下的信息:

Jul 25 03:14:01 localhost puppet-master[25011]: Signed certificate request for ca

Jul 25 03:14:01 localhost puppet-master[25011]: Rebuilding inventory file

Jul 25 03:14:01 localhost puppet-master[25011]: puppet.zhang.com has a waiting certificate request

Jul 25 03:14:01 localhost puppet-master[25011]: Signed certificate request for puppet.zhang.com

Jul 25 03:14:01 localhost puppet-master[25011]: Removing file Puppet::SSL::CertificateRequest puppet.zhang.com at '/etc/puppet/ssl/ca/requests/puppet.zhang.com.pem'

Jul 25 03:14:01 localhost puppet-master[25011]: Removing file Puppet::SSL::CertificateRequest puppet.zhang.com at '/etc/puppet/ssl/certificate_requests/puppet.zhang.com.pem'

从日志中我们可以看出第一次启动的时候,puppet master创建本地认证中心,给自己签发证书和key,你可以在/etc/puppet/ssl看到那些证书和key。这个目录和/etc/puppet/puppet.conf文件中配置的ssldir路径有关系。

ll /etc/puppet/ssl/   ssl目录的内容如下:

drwxrwx--- 5 puppet puppet 4096 Jul 25 03:01 ca

drwxr-xr-x 2 puppet root   4096 Jul 25 03:01 certificate_requests

drwxr-xr-x 2 puppet root   4096 Jul 25 03:01 certs

-rw-r--r-- 1 puppet puppet  398 Jul 25 03:01 crl.pem

drwxr-x--- 2 puppet root   4096 Jul 25 03:01 private

drwxr-x--- 2 puppet root   4096 Jul 25 03:01 private_keys

drwxr-xr-x 2 puppet root   4096 Jul 25 03:01 public_keys


二、    关于证书在agent的认识

puppet agent在第一次连接master的时候会向master申请证书,如果没有master没有签发证书,那么puppet agent和master的连接是否建立成功的,agent会持续等待master签发证书,并会每隔2分钟去检查master是否签发证书。

通过puppet agent --server= puppet.zhang.com --no-daemonize –verbose启动的时候能很清楚的查看到agent申请证书的过程

puppet agent --server=puppet.zhang.com --no-daemonize --verbose

info: Creating a new SSL key for node1.zhang.com

info: Caching certificate for ca

#申请证书

info: Creating a new SSL certificate request for node1.zhang.com

info: Certificate Request fingerprint (md5): 54:11:FB:75:87:94:AF:6B:D1:6B:AD:6B:44:3E:74:A0

#等待证书签发

warning: peer certificate won't be verified in this SSL session 

#2分钟检查一次,如果没有签发就显示如下信息

notice: Did not receive certificate

#证书签发成功后,顺利建立连接

info: Caching certificate for node1.zhang.com

notice: Starting Puppet client version 2.6.16

info: Caching certificate_revocation_list for ca

info: Caching catalog for node1.zhang.com

info: Applying configuration version '1344943902'

notice: Finished catalog run in 0.11 seconds

                   类似于上面的就是去申请证书了。当master签发证书以后就可以顺利建立连接了。


三、    Master端证书的管理

  1. 在master上查看申请证书请求

puppet cert --list

  1. 签发证书

puppet cert --sign node1.zhang.com

如果一次性签发所有的证书,采用如下命令:

puppet cert --sign –all

也可以设置自动签发证书。

  1. 让证书过期

puppet cert -revoke puppet-test

删除证书

puppet cert --clean puppet-test

证书签名的过期或删除需要重启puppetmaster服务。

  1. 可以通过/etc/puppet/auth.conf文件配置签名的ACL列表。


四、    Agent端证书的管理

  1. 删除已有的证书

清空 /etc/puppet/ssl(这个目录和你的/etc/puppet/puppet.conf文件中配置的ssldir路径有关系)下的文件和目录

  1. 重启申请证书

puppet agent --server PuppetSFQDN --test

在客户端与服务端签名不能正常进行的时候,请删除后重新签名

测试语句如下;

puppet agent -t 客户端实时检索服务器端配置文件;

puppet常用调试命令_mysql

在puppet服务器端查看所有puppet客户端证书列表语句

puppet cert --list --all;

总结:配置puppet 测试环境

要是C/S在一台PC上证书签发语句可不用执行即puppet cert --sign puppetNodeFQDN

直接执行

1,yum -y install puppet puppet-server factor2,配置修改/etc/puppet/puppet.conf在[main]标签添加如下语句

server = puppetServerNodeFQDN

runinterval = puppet客户端检索puppet服务器端更新配置文件时间间隔

listen =true (不解释);

要是puppetC/S测试环境不再一起只需多执行一条puppet cert --sign PuppetNodeFQDN即可搞定;

上面的供测试环境搞搞,别的东东还是有待要加强的;

部署production-Env要是不想麻烦自个配置证书神马的,你可以选择pe-puppet,功能也比较全,而且GUI管理接口做的也是不错的;

下面我们自个基于yum配置搞定puppetl GUI管理界面

 puppet GUI dashboard

但你运行rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm 即添加了puppetlabs 的yum源安装;

1,yum search puppet-dashboard

puppet常用调试命令_服务器端_02

配置rails应用程序

2,安装配置mysql-server

yum -y install mysql-server

chkconfig mysqld on

/etc/init.d/mysqld start

为puppet-dashboard配置数据村才能账号权限

mysql> CREATE DATABASE dashboard CHARACTER SET utf8;

mysql> CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'password';

mysql> GRANT ALL PRIVILEGES ON dashboard.* TO 'dashboard'@'localhost';

mysql>flush privileges;

3,修改Dashboard有关数据库的信息配置文件

/usr/share/puppet-dashboard/config/database.yml

修改如下语句

production:

adapter: mysql

database: dashboard

username: dashboard

password: 321

encoding: utf8

此配置文件需要ymal语法验证,请保证缩进正确

4,

用表格和基础数据来填充我们的新数据库

用Rake任务来完成这个工作。在/usr/share/puppet-dashboard目录下,运行以下命令:

$ rake RAILS_ENV=production db:migrate

puppet常用调试命令_mysql_03

现在Dashboard全部配置完成,我们可以运行该Rails应用程序了。运行Rails应用程序有很多方法。一种方法是使用内部Webrick服务器(这对于生产不是很好,因为它并不能很好的扩展)。

  在/usr/share/puppet-dashboard目录下,运行:

$ sudo ./script/server -e production &

  这个命令会在端口3000上运行Dashboard,你可以通过一个网页浏览器进行访问:

​http://your.host.name:3000​

  你还可以配置带有Passenger的Apache或者Nginx来运行Dashboard,这种做法是一种更稳定、扩展性更好的生产选择。在这里你可以找到一个Apache Passenger配置文件示例

puppet常用调试命令_mysql_04

puppet常用调试命令_服务器端_05

puppet reports数据目前还没导入到puppet dashboard;

现在Dashboard正在运行,而我们需要确保它能够获取Puppet报告。完成这项工作有几种方法,开始的时候都是用Rake任务导入旧报告。在/usr/share/puppet-dashboard目录下,运行:

rake RAILS_ENV=production report:import

puppet常用调试命令_客户端_06