• puppet工简介一


    puppet简介一

    puppet工作原理

    puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因
    此,也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个
    puppet 客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配
    置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,
    也会给服务器端反馈一个消息. 下图展示了一个典型的 puppet 配置的数据流动情况.

    工作流程

    (1)客户端puppetd向master发起认证请求,或使用带签名的证书
    (2)master告诉client它是否合法
    (3)客户端puppetd调用facer(),facer探测出主机的一些变量,例如主机名、内存大小、IP地址等。puppetd将这些信息通过SSL连接发送到服务器端
    (4)服务端的puppet master检测客户端的主机名,然后找到manifest对应的node配置,并对该部分内容进行解析。facer送过来的信息可以作为变量处理,node牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段:首先是语法检查,如果语法错误就报错;如果语法正确,就继续解析,解析的结果生成一个“伪代码”(catalog),然后把伪代码发给客户端
    (5)客户端接收到伪代码并执行
    (6)客户端在执行时判断有没有file文件,如果有,则向fileserver发起请求
    (7)客户端判断有没有配置report,如果已配置,则把执行结果发送给服务端
    (8)服务端把客户端的执行结果写入日志,并发送给报告系统

    puppet组织结构

    root@server0 puppet]# tree
    .
    ├── auth.conf
    ├── autosign.conf
    ├── environments
    │   └── example_env
    │       ├── manifests
    │       ├── modules
    │       └── README.environment
    ├── files
    │   └── vsftpd.conf
    ├── fileserver.conf
    ├── manifests   #节点的存储目录(puppet会首先加载site.pp)文件
    │   ├── nodes
    │   │   ├── server4.pp
    │   │   └── server5.pp
    │   └── site.pp
    ├── modules #模块的配置目录
    │   
    │   └── nginx
    │       ├── files
    │       │   ├── nginx-1.6.2.tar.gz
    │       │   ├── nginx.conf
    │       │   └── nginx-install.sh
    │       └── manifests #模块的主配置文件,定义类的相关信息
    │           ├── config.pp
    │           ├── init.pp  
    │           ├── install.pp
    │           ├── nginx.install
    │           └── service.pp
    └── puppet.conf puppet的主配置文件
    ```Manifests目录:/etc/puppet/manifests主要用于管理节点的信息,其中会存放了文件site.pp(站点文件),用于定义全局变量其主机的加载,而我们定义模板的时候也会在模板目录中建立目录manifests。
    `[root@server0 modules]# cd nginx/
    [root@server0 nginx]# ls
    files  manifests
    [root@server0 nginx]# ls -l manifests/
    total 16
    -rw-r--r-- 1 root root 191 Mar 23 16:16 config.pp
    -rw-r--r-- 1 root root  69 Mar 23 16:40 init.pp
    -rw-r--r-- 1 root root 487 Mar 23 16:36 install.pp
    -rw-r--r-- 1 root root   0 Mar 23 16:40 nginx.install
    -rw-r--r-- 1 root root 297 Mar 23 16:58 service.pp
    

    Manifests是用来管理模块的,目录下有几个.pp文件,puppet在读取模块之后会先读取init.pp此文件,init.pp文件可以加载其他.pp文件。

  • 相关阅读:
    Python+request+unittest实现接口测试框架集成实例
    真正解决Jenkins安装插件总是报错的问题(网上查的解决方案都无效)
    Rancher 2.2.2
    Rancher管理k8s集群
    清理cosbench工具所占用磁盘空间的小脚本
    一个检查本机和远程机器的根目录所在磁盘的剩余空间的bash小脚本
    当df命令hang住了, 怎么办?
    OpenCV操作像素的几种方法(单个像素|操作多像素|遍历像素)
    OpenCV-颜色通道的分离、合并(转)
    ImageMagick 提取四通道png图片的alpha及magick使用
  • 原文地址:https://www.cnblogs.com/hanfei-1005/p/5692886.html
Copyright © 2020-2023  润新知