1、011 .11 .21 .322 .12 .22 .32 .433 .13 .23 .33 .43 .53 .63 .73 .83 .93 .1 03 .1 144 .14 .24 .34 .4目 錄前 言初 识 Pu p p e tOp e n sta ck相 关 约 定术 语 表Pu p p e tOp e n sta ck项 目 简 介Pu p p e t开 发 基 础关 于 Pu p p e tPu p p e t核 心 概 念理 解 Hie ra准 备 开 发 测 试 环 境Op e n Sta ck基 础 服 务 模 块p u p p e t-a p a ch e 模 块p u p
2、 p e t-me mca ch e d 模 块p u p p e t-sysctl模 块p u p p e t-rsyn c模 块p u p p e t-xin e td 模 块p u p p e t-ra b b itmq 模 块p u p p e t-fire wa ll模 块p u p p e t-mysq l模 块p u p p e t-vcsre p o 模 块p u p p e t-mo n g o d b 模 块p u p p e t-ce p hOp e n sta ck服 务 模 块Op e n Sta ck模 块 代 码 结 构p u p p e t-ke ysto n
3、e 模 块p u p p e t-n o vap u p p e t-n e u tro n深 入 理 解 Op e n Sta ck自 动 化 部 署24 .54 .64 .74 .84 .94 .1 04 .1 14 .1 24 .1 34 .1 44 .1 54 .1 64 .1 755 .15 .25 .35 .45 .55 .65 .75 .85 .95 .1 066 .16 .26 .36 .46 .5p u p p e t-g la n cep u p p e t-h o rizo np u p p e t-ce ilo me te rp u p p e t-cin d e rp
4、 u p p e t-te mp e stp u p p e t-h e a tp u p p e t-swiftp u p p e t-tro vep u p p e t-sa h a rap u p p e t-ma n ilap u p p e t-ra llyp u p p e t-d e sig n a tep u p p e t-a o d h 模 块Pu p p e tOp e n sta ck公 共 库 和 工 具 类 模 块p u p p e t-o slop u p p e t-vswitch 模 块p u p p e t-o p e n sta cklibp u p p
5、e t-o p e n sta ck-in te g ra tio np u p p e t-o p e n sta ck-sp e csp u p p e t-o p e n sta ck-co o kie b u tte rp u p p e t-mo d u le syn c-co n fig sp u p p e t-o p e n sta ck_ sp e c_ h e lp e rp u p p e t-std libp u p p e t-o p e n sta ck_ e xtra s最 佳 实 践模 块 管 理Hie ra提 交 规 范正 确 使 用 环 境转 发 层 规 范
6、深 入 理 解 Op e n Sta ck自 动 化 部 署36 .66 .76 .86 .96 .1 077 .17 .27 .37 .47 .57 .67 .78代 码 风 格Sta n d a lo n e vs C/S 模 式Pu p p e t版 本 的 选 择Pu p p e t4 的 新 特 性 和 变 化Pu p p e t的 能 与 不 能其 他 部 署 工 具Fu e lKo llaTrip le OPa cksta ckOSADe vSta ck编 写 一 个 定 制 化 部 署 工 具结 语術 語 表深 入 理 解 Op e n Sta ck自 动 化 部 署4关 于
7、本 书人 是 很 奇 怪 的 动 物 , 天 生 懒 惰 , 但 是 在 压 力 的 驱 使 下 , 又 能 做 成 一 些 连 自 己 都 会 觉得 惊 讶 的 成 就 。 对 于 天 生 喜 欢 写 写 随 笔 和 技 术 b lo g 的 我 , 在 近 三 年 的 时 间 里 , 虽 有多 家 出 版 社 编 辑 的 循 循 善 诱 , 仍 然 不 为 所 动 , 心 想 着 有 这 闲 时 间 我 不 如 多 吃 几 份 美食 , 多 打 两 盘 DOTA。更 深 层 次 地 讲 其 实 是 源 于 对 于 未 知 的 恐 惧 , 源 于 面 对 数 十 万 文 字 工 作 量 的
8、害 怕 , 这本 就 是 一 场 体 力 和 脑 力 并 存 的 马 拉 松 , 普 通 人 在 看 到 终 点 的 艰 巨 时 , 在 起 点 就 已 经选 择 了 放 弃 , 然 而 我 不 是 一 个 普 通 的 人 , 因 此 早 在 6 个 月 前 我 就 富 有 先 见 之 明 地 创建 了 这 本 书 , 并 且 写 上 了 长 达 8 3 个 字 节 的 详 细 介 绍 , 然 后 就 没 有 了 下 文 。无 数 次 惨 痛 的 教 训 告 诉 我 : 决 心 虽 然 重 要 , 但 是 坚 持 更 加 可 贵 。 让 我 重 新 拾 起 笔( 键 盘 ) 的 原 因 是 源
9、 于 今 晚 的 一 顿 饭 。 今 晚 注 定 是 一 个 平 凡 的 夜 晚 , De vOp s组 的同 学 们 像 往 常 一 样 忙 到 晚 上 8 点 多 已 是 饥 肠 辘 辘 , 正 纷 纷 收 拾 东 西 下 班 , 大 家 站 在公 司 门 前 讨 论 去 哪 里 吃 饭 , 这 时 我 走 出 来 , 虽 刚 从 纽 约 飞 回 到 空 气 清 新 的 帝 都 , 时差 还 没 有 倒 回 来 , 脑 袋 浑 浑 噩 噩 , 但 又 担 心 这 帮 邋 遢 的 家 伙 站 在 公 司 大 门 口 持 续 影响 公 司 形 象 , 于 是 忙 把 他 们 连 哄 带 骗 全
10、 都 打 包 上 车 , 拉 到 了 附 近 的 一 家 馆 子 里 , 几口 飘 香 的 云 南 饭 菜 入 肚 , 大 家 就 开 始 天 南 地 北 地 扯 东 扯 西 , 无 外 乎 是 谁 谁 谁 今 天 又看 了 一 本 MySQL 从 删 库 到 跑 路 , 谁 谁 谁 今 天 又 当 了 一 回 Pu p p e t背 锅 侠 , 谁 谁 谁 的项 目 又 埋 了 一 个 大 坑 。不 知 不 觉 , 我 们 就 聊 到 了 Op e n Sta ck自 动 化 部 署 这 个 话 题 上 。 作 为 一 名 从 2 0 1 1 年 开始 接 触 Op e n sta ck的
11、老 油 条 , 在 1 3 年 幸 运 地 混 进 了 Pu p p e tOp e n sta ck社 区 项 目 成 了一 名 co re , 这 漫 漫 五 年 时 间 里 有 许 多 知 识 经 验 和 教 训 值 得 沉 淀 , 因 此 我 深 深 地 感 觉到 是 时 候 忽 悠 召 唤 这 帮 孩 子 来 一 起 填 这 个 史 诗 级 别 的 远 古 巨 坑 了 。De vOp s Te a m从 1 3 年 伊 始 就 全 身 心 投 入 到 持 续 交 付 和 持 续 集 成 事 业 中 , 目 前 使 用了 9 6 个 p u p p e t mo d u le , 6
12、台 Pu p p e tMa ste r, 集 中 管 理 着 约 8 7 个 Op e n sta ck集 群 ,7 种 不同 环 境 , 支 撑 了 近 3 5 0 0 台 Op e n sta ck集 群 服 务 器 。 独 立 开 发 了 云 平 台 部 署 工 具(Plu to ), 软 件 包 管 理 工 具 (Pa ckfo rg e /Sp e cfo rg e /Re p o fo rg e ), Ia a S虚 拟 资 源 池(Ch a me le o n ) , Op e n sta ck升 级 套 件 (Scre e n write r), 这 里 面 涉 及 到 了
13、大 量 的 自 动 化运 维 工 具 , 例 如 : An sib le , Fo re ma n , Pu p p e t, Clu ste rSh e ll, Mco lle ctive ; 同 时 还 有大 量 运 维 脚 本 , 包 含 了 多 种 语 言 , 如 : Sh e ll, Ru b y, Pyth o n , Pu p p e t。深 入 理 解 Op e n Sta ck自 动 化 部 署5前 言说 实 话 , De vOp s团 队 里 每 个 人 平 时 都 有 忙 不 完 的 事 情 , 从 早 上 还 没 到 公 司 到 晚 上回 到 家 中 , 随 时 随 刻
14、 会 被 人 o n ca ll, 就 像 今 天 吃 饭 那 样 , 维 宇 同 学 正 站 在 门 口 等 我上 个 wc的 时 间 , 就 被 其 他 同 事 喊 回 去 处 理 问 题 去 了 。 但 并 不 是 说 因 此 就 有 理 由 说 ,我 们 很 忙 , 忙 得 没 有 时 间 写 一 本 书 。 我 们 的 确 需 要 停 下 脚 步 , 回 头 看 一 看 过 去 三 年的 努 力 , 然 后 做 一 个 系 统 性 的 梳 理 和 总 结 了 。本 书 是 关 于 对 Op e n sta ck自 动 化 部 署 工 作 核 心 部 分 的 讲 解 :Pu p p e
15、 tOp e n sta ck核 心 模 块 和 基 础 模 块 的 详 细 介 绍 和 最 佳 实 践我 们 规 划 每 天 晚 上 抽 出 3 小 时 以 上 的 不 固 定 时 间 , 计 划 在 2 个 星 期 内 ( 2 1 0 +人 时 ) 完成 第 一 版 的 初 稿 工 作 , 然 后 开 始 进 入 稳 定 的 迭 代 周 期 。 而 这 本 书 仅 是 一 个 起 步 , 这几 天 我 规 划 了 接 下 来 的 技 术 分 享 输 出 的 Ro a d ma p , 比 如 Orch e stra tio n , CI, Ro llin gu p g ra d e 等 热
16、 门 话 题 。 我 们 不 想 雷 声 大 雨 点 小 , 因 此 当 这 些 事 情 在 真 正 落 到 地 面 的时 候 , 你 会 听 到 那 些 令 人 振 奋 的 声 音 。最 后 , 希 望 关 注 此 书 的 读 者 们 可 以 从 中 有 所 思 , 也 有 所 得 。于 月 光 明 媚 昏 昏 欲 睡 的 五 月 凌 晨余 兴 超关 于 本 书深 入 理 解 Op e n Sta ck自 动 化 部 署6前 言概 览0 .关 于 本 书 - 章 节 简 介1 .关 于 讲 与 不 讲 - 取 和 舍 的 艺 术2 .关 于 Op e n sta ck5 .相 同 和 不 同
17、 - Fu e l/Pa cksta ck/Trip le O/Cta sk和 Pu p p e tOp e n sta ck的 关 联6 .为 什 么 要 学 ? - 不 要 甘 于 做 一 个 只 会 使 用 工 具 的 人关 于 本 书本 书 的 主 旨 是 为 读 者 讲 解 如 何 借 助 当 前 流 行 的 自 动 化 运 维 工 具 目 来 完 成 Op e n Sta ck云 平 台 的 部 署 和 配 置 工 作 , 本 书 大 致 划 分 为 三 大 部 分 :介 绍 部 分 包 含 前 期 的 准 备 工 作 , 相 关 约 定 , 术 语 说 明 , 项 目 概 览 ,
18、 模 块 剖 析 等等 基 础 知 识 给 读 者 从 全 局 上 的 认 识配 置 管 理 部 分 本 部 分 分 为 三 章 , 分 别 介 绍 Op e n sta ck使 用 到 的 基 础 模 块 和 核 心服 务 模 块 以 及 公 共 库 模 块 的 介 绍最 佳 实 践 部 分 主 要 介 绍 在 实 际 生 产 环 境 中 应 注 意 的 细 节 和 管 理 规 约关 于 讲 与 不 讲这 点 很 重 要 , 笔 者 在 撰 写 本 书 前 也 曾 设 想 编 写 一 本 Op e n Sta ck运 维 大 全 , 涉 及 到 运维 中 的 所 有 环 节 , 但 发 现
19、其 工 作 量 和 难 度 远 远 超 出 了 事 先 的 预 估 。 延 期 在 IT领 域 内是 一 件 常 识 , 因 此 在 做 一 件 事 情 前 尚 若 没 有 考 虑 清 楚 其 界 限 和 范 围 , 那 么 就 容 易 引起 工 程 延 期 甚 至 无 法 完 成 。 因 此 , 对 于 本 书 , 其 主 要 目 的 是 :讲 解 如 何 使 用 自 动 化 配 置 管 理 工 具 Pu p p e t完 成 Op e n Sta ck我 们 不 会 讲 的 是 :核 心 服 务 模 块 的 主 要 cla ss和 d e fin e , 重 要 p a ra ms, 使
20、用 陷 阱 , 注 意 事 项 , 使 用 技巧 ; 像 re fe re n ce b o o ks那 样 事 无 巨 细 地 讲 解 每 个 模 块 的 每 个 cla ss,d e fin e ,cu sto mre so u rce ,fa cte r, 每 个 p a ra ms的 说 明 。 因 为 我 们 不 是 超 人 , 你 也 不 是 机 器 人 。关 于 Ope nSta c k深 入 理 解 Op e n Sta ck自 动 化 部 署7初 识 Pu p p e tOp e n sta ckOp e n sta ck目 前 已 经 成 为 开 源 Ia a S项 目 的
21、 翘 楚 。 在 去 年 Op e n sta ck推 出 Big Te n t战 略后 , 在 Op e n sta ck名 下 的 项 目 已 经 多 达 百 个 。 那 么 在 面 对 如 此 复 杂 的 架 构 和 众 多 服务 , 我 们 该 如 何 去 面 对 ?Fue l/Pa c k s ta c k /TriplO/Cta s k 和 Puppe tOpe ns ta c k 的关 系Pa cksta ck封 装 了 Pu p p e tOp e n sta ck, 使 得 用 户 在 终 端 下 可 以 通 过 交 互 式 问 答或 者 非 交 互 式 YAML 格 式 文
22、 件 的 方 式 去 部 署 Op e n sta ck集 群 , 使 得 用 户 无 需 了解 Pu p p e t和 Pu p p e tOp e n sta ck的 细 节 。Fu e l更 进 一 步 , 提 供 了 友 好 的 We b UI界 面 , 使 得 用 户 对 于 技 术 细 节 如 何 实 现 上做 到 了 非 常 好 的 隐 藏 , 还 提 供 了 一 些 健 康 检 查 工 具 , 确 保 部 署 符 合 预 期 。Trip le O使 用 Op e n sta ck的 现 有 项 目 来 部 署 Op e n sta ck, trip le o -p u p p
23、e t-e le me n ts组 件 用 于 生 成 部 署 Op e n sta ck的 磁 盘 镜 像 文 件 , 直 接 使 用 到 了Pu p p e tOp e n sta ck。Cta sk类 似 于 Pa cksta ck, 封 装 了 Pu p p e tOp e n sta ck, 不 同 点 在 于 整 合 了 内 部 开发 的 网 络 检 查 工 具 , 分 布 式 存 储 检 查 脚 本 , 确 保 每 步 的 输 出 符 合 预 期 , 并 能 快速 定 位 到 问 题 的 根 源 。为 什 么 要 学 习 Ope nSta c k 自 动 化 部 署 ?我 们 的
24、 目 标 读 者 是 实 施 工 程 师 , 运 维 工 程 师 , De vOp s工 程 师 和 研 发 工 程 师 , 是 一个 不 甘 于 只 会 使 用 工 具 的 人 , 喜 欢 探 索 新 的 事 物 , 喜 欢 去 刨 根 问 底 。同 时 现 有 基 于 Pu p p e tOp e n sta ck封 装 的 S工 具 并 不 能 1 0 0 %满 足 用 户 的 需 求 , 如 果 你没 有 手 动 能 力 的 话 , 那 你 只 能 采 用 一 些 很 lo w的 方 法 , 比 如 使 用 Fu e l部 署 了 一 套 集群 , 然 后 再 手 动 修 改 配 置
25、文 件 , 手 动 重 启 服 务 ! 一 周 后 , 一 个 月 后 , 你 还 能 记 住 你当 时 做 的 操 作 吗 ? 之 后 来 维 护 的 同 事 , 他 们 知 道 你 对 这 套 复 杂 的 软 件 栈 做 了 什 么吗 ?No , 在 运 维 自 动 化 的 世 界 里 , 一 切 都 应 该 自 动 的 , 不 依 赖 于 具 体 的 人 , 而 是 依 赖 于稳 定 强 大 的 自 动 化 运 维 系 统 。如 果 你 是 一 名 正 在 或 者 即 将 要 做 Op e n sta ck集 群 部 署 和 管 理 的 工 程 师 , 那 么 这 就 是你 应 该 看
26、的 书 籍 。深 入 理 解 Op e n Sta ck自 动 化 部 署8初 识 Pu p p e tOp e n sta ck和 电 子 版 本 有 什 么 不 同 ?最 初 我 们 在 Gitb o o k上 开 始 了 本 书 的 编 写 , 获 得 了 广 泛 的 关 注 和 评 论 。 但 是 电 子 版本 更 像 是 一 个 co lle ctio n , 来 自 于 多 个 协 作 者 的 共 同 产 物 , 在 内 容 统 一 和 用 词 上 没 有做 到 严 谨 精 确 , 当 时 所 使 用 的 Mita ka 版 本 已 经 滞 后 于 最 新 稳 定 版 本 近 一
27、年 。 更 重 要的 是 , 在 这 一 年 多 的 时 间 里 , 我 们 在 新 上 线 的 Op e n Sta ck集 群 上 做 了 许 多 新 的 尝 试和 总 结 。因 此 , 纸 质 版 会 包 含 更 多 更 新 令 人 感 兴 趣 的 内 容 , 包 括 对 于 网 络 的 管 理 , 操 作 系 统的 管 理 , 运 维 节 点 的 设 计 等 等 。概 览关 于 本 书关 于 讲 与 不 讲关 于 Op e n Sta ckFu e l/Pa cksta ck/Trip lO/Cta sk和 Pu p p e tOp e n sta ck的 关 系为 什 么 要 学 习
28、 Op e n Sta ck自 动 化 部 署 ?和 电 子 版 本 有 什 么 不 同 ?深 入 理 解 Op e n Sta ck自 动 化 部 署9初 识 Pu p p e tOp e n sta ck约 定 和 说 明文 章 风 格 说 明因 为 本 书 共 有 5 名 参 与 编 写 的 同 学 , 为 了 保 证 行 文 分 各 个 , 我 (xin g ch a o )会 负 责 概 览部 分 和 最 佳 实 践 部 分 的 编 写 ( 果 然 是 打 酱 油 的 命 ) , 同 时 也 会 负 责 部 分 模 块 章 节 的编 写 , 其 他 同 学 则 会 专 注 在 核 心
29、 模 块 部 分 , 给 出 各 个 复 杂 模 块 的 详 细 介 绍 。同 时 , 我 们 每 天 会 在 微 信 群 里 唠 嗑 讨 论 , 如 何 改 进 各 个 模 块 章 节 的 书 写 方 式 和 风格 , 并 保 持 格 式 上 的 严 格 统 一 , 给 予 读 者 更 好 的 阅 读 体 验 , 同 时 如 果 你 在 阅 读 过 程中 发 现 有 错 别 字 , 不 合 理 的 说 明 , 非 常 欢 迎 指 正 , 我 们 会 在 第 一 时 间 更 正 。文 章 格 式 说 明本 文 使 用 标 准 的 Ma rkd o wn 语 法 编 写 , 该 写 标 题 的
30、写 标 题 , 该 用 列 表 的 用 列 表 , 该用 表 格 的 用 表 格 , 该 用 代 码 块 的 标 明 p u p p e t/b a sh 语 法 高 亮 , 会 严 格 遵 守 一 本 技 术书 籍 的 基 本 修 养 , 因 此 就 不 再 废 话 。Module 命 名 规 范 说 明绝 大 多 数 的 p u p p e t mo d u le s命 名 规 范 使 用 p u p p e t-前 缀 , 后 面 为 服 务 名 称 , 例 如 :p u p p e t-n o vap u p p e t-ke ysto n e当 然 也 有 一 些 公 共 库 模 块 , 例 如 :p u p p e t-o slop u p p e t-o p e n sta cklib约 定 和 说 明文 章 风 格 说 明文 章 格 式 说 明Mo d u le 命 名 规 范 说 明深 入 理 解 Op e n Sta ck自 动 化 部 署1 0相 关 约 定