码迷,mamicode.com
首页 > 其他好文 > 详细

puppet

时间:2017-09-06 15:47:20      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:进程   ast   生命周期   site   etc   管理软件   node   自身   ati   

1、puppet简介
     puppet是一个为实现数据中心自动化管理而设计的配置管理软件,能够管理IT基础设施的整个生命周期:供应(provisioning)配置 (configuration)、联动(orchestration)及报告(reporting)。puppet基于C/S架构,类似于zabbiz, 有master与agent节点之分。它是一个开源的(谈不上真正的开源,因为有商业版与社区版之分)、新一代的、集中化的配置管理工具,由ruby语言 研发,它拥有自己的配置语言(PCL,puppet configuration language)。
    puppet能够把IT日常的系统管理代码化,而代码可重用,这样可以减少运维人员的工作量,而且能快速、大规模部署服务器。在puppet的世界有其自 己的哲学思想:在IT系统管理中,puppet只关注结果,不关心过程!这名话怎样理解,比如puppet的master端向各agent下达把 nginx这个包安装上并启动服务,puppet的agent端面只向master端报告软件是否安装完成,服务是否已启动,puppet不关心软件是怎 样安装上的,服务是怎样启动的,它只关心结果。
2、puppet工作原理
2.1、puppet两种工作方式介绍   
    puppet有两种工作方式,一种是独立工作方式(standalon),另一种是master-agent的方式 。以两张图片来说明这两种工作方式。
技术分享
(图一:puppet以standalone方式工作流程示意图,图片来自网络)
图片中各术语解释:
manifest:字面意思是清单,在这里指被puppet代码化的各种资源,是一种用PCL编写的代码;
catalog:表示把各种manifest编译后生成的可执行代码,也叫伪代码;
apply:生成catalog后puppet就可以把代码进行运用,在运用时也要先对伪代码进行检测,检测后才执行。
技术分享


(图二:puppet的master-agent工作流程图,图片来自网络)
简述:
a)、agent向主机请求catalog代码,在请求时要带上自己的主机名与facts,facts里包含了agent服务器自身的一些系统特征,比如操作系统是什么,是哪个版本,cpu是什么型号,内存有多大等信息;
b)、master接收到agent的请求后开始查询此节点包含的清单,把这些资源找出后编译成catalog,再发送给agent;
c)、agent收到catalog后就开始应用代码,并把执行的状态结果生成报告返还给master;
d)、master接收报告并记录日志。
证书存放在/var/lib/puppet/ssl/。
在master/agent首次启用的过程:
a)、master启动时会为自己生成key,并签署证书,让自己成为一个ca;
b)、agent首次启动要为自己生成key,生成证书签署请求,并将证书请求发送给master请求签署;
c)、master收到agent的证书签署请求后,由管理员先验证请求是否合法,而后对证书签署请求作出签署或不签署。

3、puppet安装及认证

     http://blog.csdn.net/junjunjiao/article/details/50844816

     systemctl start puppetserver/service puppetserver start  开启puppet server服务    

      netstat -nltp | grep 8140 查看puppet server端口是否正常开启

      puppet status  查看puppet状态

      puppet agent -t  #同步puppet server一次

      puppet agent/service puppet start     #开启agent进程,周期性同步server,默认为30分钟一次

      puppet cert list     #来查看来查看所有待处理的请求

      puppet cert sign <agent名称>     #来签发Puppet agents的证书

4、puppet语法

      http://blog.csdn.net/euguosir/article/details/51883616

      http://blog.csdn.net/euguosir/article/details/51884559

      https://www.iyunv.com/thread-77455-1-1.html (站点清单的使用,site.pp的存放位置,在每个puppet版本是不一样的,3.x存放路径/etc/puppet/manifests/,4.x存放路径/etc/puppetlabs/code/environment/production/manifests/)

node ‘nod2.test.com‘ {
        include nginx
        include mysql
}

node ‘nod2.test.com‘ {
        user{‘test123‘:

               ensure => present,#确保用户存在,不存在则创建

        }
}

 

puppet

标签:进程   ast   生命周期   site   etc   管理软件   node   自身   ati   

原文地址:http://www.cnblogs.com/shysky77/p/7484699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!