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模块。

  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/shysky77/p/7484699.html
Copyright © 2011-2022 走看看