之前搞了一个月zabbix,基本上是能熟练使用了,不过在后来部署的时候发现这玩意在部署的时候机子少还行,机子多了手动安装手会残的。第一反应是用puppet,后来师父直接用puppet搞定了。索性自己也学一波,毕竟这是自动化运维大势所趋,必备技能啊。

  下载链接见http://www.cnblogs.com/weijing24/p/5714850.html

  puppet是c/s结构,有一个服务端和很多客户端。一般运行模式是客户端从服务端拉取指令然后执行。puppet很纠结的一个地方是版本不同导致的命令不同,主要是2.6版本前后的差异巨大,主要差异如下图:

  这里以2.7版本为准,讲一下具体执行过程吧,假设服务端的hostname为puppetmaster、客户端的hostname为agent2

  1、运行服务端

  puppet master

  对,就是这么简单,简单到超乎你的想象,简短的2个单词puppet server就跑起来了,当然第一次推荐用puppet master --no-daemonize --verbose 这是非daemon模式,简而言之就是运行此命令server会在前台运行,你可以看到server启动的整个流程以及agent向server注册的过程

  2、客户端向服务端申请证书

  puppet agent --certname agent2 --server puppetmaster --test

  这里--certname可以不加,因为客户端的hostname就是agent2,在这里加了就是为了说明如果你不想以hostname的名字来注册,你可以使用certname后跟上自己想要的名字去注册。有的文章会使用puppet agent --server puppetmaster --no-daemonize --onetime --verbose --debug这条命令来注册,其实都一样,这个是前台输出日志,报错时方便调试,但是我要说如果你是第一次安装的话,完全不需要使用这种调试模式,你只要确保master开启,且--server后面的主机名(主机名就是puppet server的hostname)写正确,注册基本上不会发生错误。

  理论上注册成功如下图

  

  但是我在安装的时候发生了无法安装的情况,原因是我之前已经安装了

  

  可以看到,我这里注册没有绿色的ssl认证过程,因为我之前已经注册过,虽然在master上已经删除了agent2的证书,但是agent2上自己还留了证书,如下图

  

  知道了原因解决起来就很简单了,删除agent2.pem即可,find /var/lib/puppet/ssl/ -name agent2.pem -delete

  3、服务端签发证书

  

  上面的图中可以看到,agent2前面没有+,agent1前面有+,因为agent1已经在服务端签发证书了,那么如何签发证书呢

  

  也很简单,一条命令就可以了。

  

  整个c-s的第一次交互就这么完成了。可以看到我签发了三个证书,agent1就是puppet master上使用了--certname参数生成的,不加就是最下面的puppetmaster,以下命令作为对比可以看出不同:

  puppetmaster  puppet agent -server puppetmaster --test

  agent1  puppet agent --certname agent1 --server puppetmaster --test

  agent2  puppet agent --server puppetmaster --test

  

  

  在这里还是要提几句,如果服务端注销了某个客户端证书,那么相对应的客户端也需要把本地的证书删除,否则下次就会和我上面的情况一样,无法注册。

puppet版本的差异图转自http://www.cnblogs.com/taosim/articles/3336986.html

puppet学习笔记(一)的更多相关文章

  1. Puppet学习笔记(CentOS6.3+Puppet3.01)

    Puppet学习笔记(CentOS6.3+Puppet3.01)  技术 Add comments Oct262012 下了决心,好好学习puppet,周末专门去参加一个puppet的培训,难得朋友那 ...

  2. puppet学习笔记(二)

    在puppet安装完成之后我们就可以动手开始第一个puppet实验了,此实验就以批量推送文件为例吧. 1.获取module路径 这里的module就是指一个模块,可以把puppet想象成一个个项目的部 ...

  3. puppet学习笔记

    puppet优势:容易理解.用户较多.门槛低.简单.安装配置文件较少 puppet使用Ruby语言开发,安装puppet需要安装Ruby puppet运行环境:Redhat.Centos.Window ...

  4. <老友记>学习笔记

    这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...

  5. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  6. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  7. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  8. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  9. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

随机推荐

  1. sphinx配置文件sphinx.conf参数详细说明

    sphinx配置文件sphinx.conf参数详细说明 sphinx.conf各个参数详细说明 # # Sphinx configuration file sample # # WARNING! Wh ...

  2. YAML初探

    http://www.cnblogs.com/chwkai/archive/2009/03/01/249924.html 1 概念YAML是一种人们可以轻松阅读的数据序列化格式,并且它非常适合对动态编 ...

  3. 泛函编程(14)-try to map them all

    虽然明白泛函编程风格中最重要的就是对一个管子里的元素进行操作.这个管子就是这么一个东西:F[A],我们说F是一个针对元素A的高阶类型,其实F就是一个装载A类型元素的管子,A类型是相对低阶,或者说是基础 ...

  4. 泛函编程(7)-数据结构-List-折叠算法

    折叠算法是List的典型算法.通过折叠算法可以实现众多函数组合(function composition).所以折叠算法也是泛函编程里的基本组件(function combinator).了解折叠算法 ...

  5. [js开源组件开发]图片懒加载lazyload

    图片懒加载lazyload 前端对请求的一种优化方式,为什么叫懒加载,无从查起,反正我当初一直认为它是滚动加载的一种类型.它主要是以图片或背景在可视区域内时才显示真正的图片,减少src带来的负荷.所以 ...

  6. EntityFramework4.1开发

    常见问题大概为这几个 一.ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题. 二.ef4.1 没有了edmx等复杂的东西 变得简单 干 ...

  7. PHP控制前台弹出对话框

    应用场景: 微信授权登录过程中,需要用户确认,故衍生此需求: 相应的逻辑不放在前端的原因是,此部分逻辑属于偏功能业务,所以放在后端,方便统一管理. 解决办法: 通过php echo出javascrip ...

  8. ALV常用参数详细描述

    调用功能模块: CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_interface_check        = ''               ...

  9. 解析XML的几种方法之SAX解析

    假期总结不能停,坚持坚持....接下来总结一下XMl和json的解析和生成.. 解析XML的四种方法,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址: DOM:在现 ...

  10. 手把手搭建自己的android环境

    最近想学习安卓,不过国内实在被墙的厉害,真是"万里安装只被墙".安装的过程中也出现了几个问题.所以记录下来,免得自己下次再次安装的时候又来重蹈覆辙. 以下的问题也是按照出现的顺序排 ...