puppet 简介

puppet:IT基础设施自动化管理工具:

puppet服务器,给域内每一个主机定义其应该处于的目标角色,支持比ansible更大的规模,也有着更多功能,通常情况下任务不需要手动触发,官方站点www.puppetlabs.org

运维工具层次:

  1.OS provisioning(PXE,Cobber)确保安装操作系统

  2.OS Configuration(ansible,puppet,saltstack,chef,cfengine)安装相应的软件程序

  3.Command and contorl(func(很重,需要每一个节点有agent),ansible(无agent),fabric)任务执行

整个生命周期:

    provisioning    设置

    configuration    配置(puppet最强大功能)

    orchestration    业务流程(按照编排好的去完成)

    reporting    报告

puppet:agent

  master/agent

    master:puppet server

    agent:真正执行相关管理的核心部件:周期性的去master去请求自己的相关配置,有agent时,可以进行密钥认证或证书等等,相对来说更加安全,部署sudo可比。

puppet的工作模式:

  声明性、基于模型:有自己的配置编程语言,基于Ruby开发。我们用这种语言来制定规则,比如哪个主机http必须装上,或必须运行。

    定义:使用puppet语言定义基础配置信息,这里的资源是模块。

    模拟:在模拟测试运行。

    强制:比对定义端状态是否与定义状态相符,不相符则强制执行。

    报告:通过puppet api将执行结果发送给接收者。

pupppet三个层次:

    1.资源抽象层:把每一个被管控对象抽象成为资源,把实现方式与目标分离(例如:创建用户,同时告诉linux和windows去创建用户,不用告诉他们再怎么做,只要告诉其目的是创建用户即可)

      资源类型:例如用户、组、文件、服务、cron任务等等;

      属性及状态与其实现方式是分离的;

      期望状态决定了对应资源是否存在;

    2.事务层:保证资源可以顺利完成

    3.配置语言:

puppet核心组件就是资源:

    资源清单:manifests每一个清单使用一个或多个资源组成。

    模块:资源清单及清单中资源所定义的所依赖文件、模板等数据按特定组织组织起来的叫模块,对应ansible的角色。

    交互过程如下图所示:

    

猜你喜欢

转载自www.cnblogs.com/abels0025/p/11414158.html
今日推荐