zoukankan      html  css  js  c++  java
  • puppet

    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 agent -t,如果想生效,必须在站点清单中定义该节点的node信息,比如该节点为nod2.test.com,如上所示,加载nginx、mysql模块。

  • 相关阅读:
    redis
    dom4j-1.6.1.jar与dom4j-1.4.jar
    runoob
    session失效后,登录页面嵌入iframe框架
    log4j.properties 详解与配置步骤
    maven+swagger
    Eclipse建立Maven项目后无法建立src/main/java资源文件夹
    vue 3.x 相对于 vue 2.x 的重大修改
    面试准备
    JS系列
  • 原文地址:https://www.cnblogs.com/shysky77/p/7484699.html
Copyright © 2011-2022 走看看