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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,478评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,825评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,482评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,726评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,633评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,018评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,168评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,320评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,264评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,288评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,995评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,587评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,909评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,284评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,862评论 2 339

推荐阅读更多精彩内容

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