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服务器端查看所有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

配置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

现在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 reports数据目前还没导入到puppet dashboard;

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

rake RAILS_ENV=production report:import

puppet常用调试命令的更多相关文章

  1. gdb常用调试命令

    一般来说,GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序.    2.可让被调试的程序在你所指定的调置的断点处停住.(断点可以是条件表达式)   ...

  2. iOS之LLDB常用调试命令

    LLDB是个开源的内置于XCode的调试工具,这里来理一理常用用法.lldb对于命令的简称,是头部匹配方式,只要不混淆,你可以随意简称某个命令.结果为在xcode下验证所得,可能与其它平台有所误差. ...

  3. GDB常用调试命令以及多进程多线程调试

    http://blog.csdn.net/freeelinux/article/details/53700266 一:普通命令   1.list命令 list  linenum      显示程序第l ...

  4. GDB常用调试命令(一)

    GDB是UNIX及UNIX-like下的调试工具,通常gdb使用前置条件:编译时加入debug信息,这里指的是C++. gcc/g++调试选项   gcc/g++是在编译时加入-g,-g分4个等级: ...

  5. gdb常用调试命令以及多线程堆栈的查看

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC ...

  6. GDB常用调试命令(二)

    GDB信号处理 在GDB中使用handle命令定义一个信号处理.信号可以以SIG开头或不以 SIG开头,可以用定义一个要处理信号的范围(如:SIGIO-SIGKILL,表示处理从SIGIO信号到SIG ...

  7. gdb 常用调试命令

    1.   file    quit 2.   frame bt 3.   finish 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数信息. until 当要退出在一个循环体 ...

  8. squid常用调试命令

    解压,编译,make ,make install 就不说了.从 make install 后开始.当你的 squid.conf 配置文档按照你的想法修改完以后,启动 squid 之旅就开始了.1,初始 ...

  9. npm和yarn常用调试命令

    yarn查看全局安装路径 yarn global dir npm查看所有全局安装的包<全局路径也会显示> npm list --depth=0 -global

随机推荐

  1. SDK目录结构和adb工具及命令介绍

    1.SDK目录介绍: ******************************** add-ons:Android开发需要的第三方文件,附加的库,如Google APIs.GoogleMaps. ...

  2. IDL实现主成分变化(PCA)

    IDL只能通过调用envi的二次接口做图像的变换,但是对于普通的数据没有提供函数.根据主成分变换的原理,用IDL写出来了,这样就不用每次再去用matlab的princomp去做了.主成分变化的基本过程 ...

  3. Java中的浅复制和深复制 Cloneable clone

    先看一个简单案例 public class Test {     public static void main(String args[]) {         Student stu1 = new ...

  4. 常用布局,div竖直居中

    常用两列布局,多列布局和div竖直居中 body { margin:; padding:; } .w200 { width: 200px; } .mar-left200 { margin-left: ...

  5. 系统spt_values表--生成时间方便left join

     时间处理我给你提供一个思路   系统有个spt_values表,可以构造一整个月的日期,然后左连接你统计好的数据,用CTE表构造多次查询 spt_values的超级经典的应用 http://www. ...

  6. ICOMOON!强悍的WEB字体图标制造器/Web字体使用实例

    IcoMoon!一个可以通过个性化设置来创建自定义图标(字体)的生成器!也可以将SVG图片,转换成web字体 IcoMoon是一项免费的服务,通过使用不同设置使我们能够创建自定义的ICON图或ICON ...

  7. tableView代理方法的调用时间,(主要是heightForRowAtIndexPath和cellForRowAtIndexPath调用时间)

    最近做一个demo,涉及按照数据分类然后依照分类在 cellForRowAtIndexPath形成不同类型的cell,就是有判断(在viewdidload里面做)和形成(在 cellForRowAtI ...

  8. 重新开始学习javase_类再生(类的合成和继承)

    一.合成在新类里简单地创建原有类的对象.我们把这种方法叫作“合成” 为进行合成,我们只需在新类里简单地置入对象句柄即可.举个例子来说,假定需要在一个对象里容纳几个 String对象.两种基本数据类型以 ...

  9. C++函数覆盖的思考

    最近碰到一些问题,一开始很难调试和解决,最后发现原来是在基类函数的模板方法中对子类需要重写的函数没有使用virtual,如下 class Base { public: void say(){test( ...

  10. 《JavaScript dom 编程艺术》 placeholder占位符IE8兼容办法。

    在<JavaScript dom 编程艺术>第11章学来的. 相对于用JavaScript替换文本框的提示语句 <!DOCTYPE html> <html lang=&q ...