Puppet学习(持续更新)

Puppet 是一个开源系统配置管理工具,它有着简明的架构以及良好的扩展性;同时,Puppet 还提供了自有的系统配置描述语言以及完善的公用库,非常适合用于管理和部署大规模集群系统。

Puppet 的系统架构

Puppet 使用简明的 C/S 架构,分为 Puppet Server 和 Puppet Node。


图1. puppet系统架构

Puppet Server

Puppet Server 是配置和管理整个集群的大脑,管理着所有节点。系统管理员在 Puppet Server 上用 Puppet 特有的配置描述语言为各个节点编写配置文件 (manifest),配置文件描述了节点的目标状态——资源的集合。这些资源可以是文件、服务、软件包等等。各个节点会周期性的查询 Puppet Server,获得自己的最新配置文件,并且在本地应用这些配置文件,使得自身的资源和状态达到配置文件要求。

Puppet Node(Agent)

被 Puppet Master 管理着的计算机节点称为 Puppet node。Puppet node 会周期性的查询 Puppet Master,来获取自己的配置文件,并且在本地应用。在每次应用配置文件之后,Puppet node 会提供上传一份报告给 Puppet Master,以便以后的统计和分析。系统管理员也可以手动地在 Puppet Node 上执行命令,让 Puppet Node 立即查询 Puppet Server 获取自身最新的配置文件,并且在本地应用。

Puppet 的工作流程

Puppet 的工作流程可以概括成这几步:定义、模拟、应用、报告。

图 2. Puppet 的工作流程

定义 (Define)

管理员为各个节点编写配置文件,配置文件中定义了该节点所需要的资源的集合以及资源之间的关系。这些资源可以是文件、服务、软件包、可执行的命令等等。Puppet 内置的配置管理语言对这些资源提供了较为完整的底层抽象,减轻了编写配置文件的复杂度。

模拟 (Simulate)

根据节点的配置文件,我们可以了解到该节点需要什么样的资源并且处于什么样的状态。配置文件描述了节点的状态,而不是具体的配置步骤。Puppet 会将配置文件 Manifest 编译成更为详细的一种配置文件 Catalog。通过 Catalog,Puppet 会根据节点的当前状态,模拟出节点达到该目标状态所需要的步骤。

应用 (Enforce)

节点周期性地向 Puppet Server 来请求自己最新的配置文件。Puppet 会将节点的实际状态与节点配置文件中所表述的目标状态做比较,并根据得到的所需要的步骤,对节点执行操作,使其达到配置文件所表述的状态。

报告 (Report)

当每次应用执行过后,节点都会给 Puppet Server 发送一份运行报告,报告该节点的状态,以便以后的分析和统计。

Puppet 配置语言介绍

Puppet 配置管理语言中的核心概念是资源,资源可以是一个软件包,一个文件,一种服务等等。一个节点的状态可以用资源的集合以及他们之间的关系来表示。管理员不需要详细地描述配置和部署系统的具体步骤,Puppet 只需要管理员来描述系统的目标状态,即资源的集合以及它们之间的关系。Puppet 内置的执行引擎会根据节点的现有状态将配置文件转化为具体的执行步骤并且执行。

在 Puppet 中,类是一系列相关资源的集合;模块是一系列类的集合。Puppet 内置提供了一些常用的类和模块,同时用户可以定义自己的类和模块。通过类和模块使用,配置模块重用和共享变的非常容易。

安装(Debian)

在master上,需要运行:

apt-get install puppet puppetmaster facter 

在agent上,只需要安装下面这些包:

apt-get install puppet facter 

实战

配置rsync模块,包含以下功能:

1. 确 保 系 统 安 装 了 rsync 包。

2. 设 置 rsync 的 配 置 文 件。

参考链接

https://www.bookstack.cn/read/deployopenstackwithpuppet/base_modules-puppet-rsync.md

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,511评论 0 5
  • 1.puppet 是什么 puppet是一个开源的软件自动化配置和部署工具,很多大型IT公司均在使用puppet对...
    milo_e1ce阅读 10,441评论 0 4
  • 1. 概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在...
    SkTj阅读 4,095评论 0 0
  • Puppet理论定义: Puppet 是一个跨平台的集中化配置管理系统,它使用自有的描述语言,可管理配置文件、用户...
    属于你的世界阅读 4,635评论 0 2
  • Puppet模块Puppet部署master/agent模式Puppet多环境配置Puppet kick机制 一、...
    哈喽别样阅读 3,462评论 0 1

友情链接更多精彩内容