SaltStack技术入门与实战.html

上传人:紫*** 文档编号:132958597 上传时间:2020-05-22 格式:PDF 页数:20 大小:814.29KB
返回 下载 相关 举报
SaltStack技术入门与实战.html_第1页
第1页 / 共20页
SaltStack技术入门与实战.html_第2页
第2页 / 共20页
SaltStack技术入门与实战.html_第3页
第3页 / 共20页
SaltStack技术入门与实战.html_第4页
第4页 / 共20页
SaltStack技术入门与实战.html_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《SaltStack技术入门与实战.html》由会员分享,可在线阅读,更多相关《SaltStack技术入门与实战.html(20页珍藏版)》请在金锄头文库上搜索。

1、序言 When I started writing SaltStack I wanted to create a system that would be useful in many vast scenarios A system that would be able to scale to any need small or large and a system that would allow people to better automate processes far beyond the datacenter To my knowledge this is the first bo

2、ok on Salt to be published in China I hope the contents of this book will prove valuable to those in China seeking to learn Salt Stack and that this book will be a resource to them China SaltStack User Group has been lead for many years by talented individuals who I would like to express my thanks a

3、nd gratitude to The Chinese users and contributors to Salt have helped the project move forward in immeasurable ways 译文 当我开始SaltStack项目的时候 其实是想构建一个多种复杂环境均可用的 运维配置管理 系统 可以做到按需扩展 环境可大可小 能够真正帮助数据中心更好地实现自动化运维流程 据我所知 本书是中国地区的关于SaltStack的第一本书籍 我希望本书的出版可以帮助中国地区那些正在苦寻SaltStack学习之路的朋友们 中国SaltStack用户组 Thomas

4、S Hatch SaltStack公司创始人兼CTO 前言 为什么用SaltStack 常规运维很大一部分工作涉及业务的配置管理和状态维护 目前 基于状态 系统状态 代码状态 配置状态和进程状态 的配置管理已经得到极大发展 并且让运维有了很大的进步 出现了各种工 具和平台 从最早的CFEngine到后来的Puppet Chef 以及最近的SaltStack Ansible 每一种工具的出现都是为了满足新的场景以及解决之前解决不了的问题 新工具的出现层出不穷 令人眼花缭乱 在实 际应用中 这些工具之间到底是替换还是结合 在每个特定的场景以及选型的理解上也会有所不同 最终可能以完全不同的形态进行展

5、示 但是人的基本特点是不会变的 就是我们都很懒 我们不想维护过多的平台 我们都希望学习过程尽可能简单 使用工具强大 二次开发的成本也低 从这几方面讲 SaltStack可能是一个很好的选择 本书定位以及读者对象 本书定位为一本工具书 介绍一些SaltStack实用的功能 帮助想了解和入门SaltStack的朋友在较短的时间内 全面并且稍微深入地了解SaltStack 进而自己进行探索深入 勘误与支持 由于作者水平有限 时间比较紧张 书中难免会出现错误以及不准确的地方 希望读者能够批评指正 对于本书的任何问题请反馈到SaltStack中国用户组QQ群 294953305 我们会及时进行处理 本书

6、相关代码可以在Github上获取 致谢 首先感谢SaltStack团队创造这么好的工具 特别感谢机械工业出版社以及吴怡编辑能够给我们一个机会来出版本书 感谢为本书做出卓越贡献的姚炫伟 微博ID 绿小小肥 曹正 微博ID CooCla 张会源 微博ID 神奇的魔法师 吴兆松 微博ID itnihao 白少华 最后感谢我们的家人和朋友一路给予的支持和帮助 刘继伟 2015年秋于北京 第1章 SaltStack入门 SaltStack是基于Python开发的一套C S架构配置管理工具 它的底层使用ZeroMQ消息队列pub sub方式通信 使用SSL证书签发的方式进行认证管理 号称世界上最快的消息队

7、列ZeroMQ使得SaltStack能快速在成千上万台机器上进行各种操作 而且采用RSA Key方式确认身份 传输采用AES加密 这使得它的安全性得到了保障 虽然这里说SaltStack是一种配置管理工具 在工作中我们可能会使用它去做一些配置管理工作 但是Saltstack功能不止这些 在SaltStack官方的介绍中 SaltStack不只是一个配置管理工具 还是一 个做云计算与数据中心架构编排的利器 目前Salt cloud项目也已经合并到SaltStack主项目里面 SaltStack已经支持Docker相关模块 在友好地支持各大云平台之后 配合SaltStack的Mine实时发现功能

8、就可以实现各种云平台业务自动扩展 在本书后面的章节中也会详细介绍SaltStack在各个领域中的应用 本章将介绍SaltStack的服务架构 安装 配置 你会发现 使用SaltStack如此简便 1 1 SaltStack服务架构 由于SaltStack是一种基于C S架构的服务模式 可以简单地理解为如果我们想使用SaltStack就需要在现有的环境下引入与维护一套C S架构 在SaltStack架构中服务器端叫作Master 客户端叫作 Minion 在我们理解的传统C S架构中 客户端发送请求给服务器端 服务器端接收到请求并且处理完成后再返回给客户端 在SaltStack架构中不仅有传统的

9、C S架构服务模式 而且有消息队列中的发布 与订阅 pub sub 服务模式 这使得SaltStack应用场景更加丰富 目前在实际环境中一般使用SaltStack的C S架构进行配置管理 在Master和Minion端都是以守护进程的模式运行 一直监听配置文件里面定义的ret port 接受minion请求 和publish port 发布消息 的端口 当Minion运行时会自动连接到配置文件里面定义 的Master地址ret port端口进行连接认证 默认客户端请求id是socket getfqdn 取到的值 也可以在Minion启动之前修改Minion的id值 关于整个启动通信过程 大家可

10、以使用debug查看详细记录 C S架构如下 Master端 SaltStack Master salt master l debug SaltStack Master ss a egrep 4505 4506 Minion端 SaltStack Minion salt minion l debug SaltStack除了传统的C S架构外 其实还有Masterless架构 如果采用Masterless架构 我们就不需要单独安装一台SaltStack Master机器 只需要在每台机器上安装Minion 然后采用本机只负责对 本机的配置管理工作机制服务模式 1 2 SaltStack架构安装

11、经过对SaltStack的一些了解后 我们开始通过实际操作进一步学习SaltStack 下面分别介绍如何安装一个SaltStack服务架构 目前SaltStack支持很多平台的安装部署 具体每个平台的安装部署教程 大家可以参照官方文档 在安装之前我们需要先了解下SaltStack的一些软件依赖 只有了解了安装和运行SaltStack的依赖 我们才能判断SaltStack到底适不适合我们的生产环境 以及能不能大规模地使 用它 1 3 开始SaltStck之旅 现在我们的SaltStack的基础环境算是部署完成了 接下来我们就从这个基础环境开始真正的SaltStack之旅 1 4 熟悉SalSta

12、ck配置文件 SaltStack的配置文件分为Master etc salt master 和Minion etc salt minion 下面我们分别介绍相应的选项 下面的选项介绍可能会比较枯燥 所以采用表格的形式方便查找 读者也可以 先了解一下 等需要的时候再查找 第2章 SaltStack组件 上一章我们了解了SaltStack的一些架构与通信原理 也简单讲解了SaltStack的架构部署以及日常命令的参数介绍 从这章开始 我们将通过实际操作去了解SaltStack的各个组件 这些组件使 SaltStack真正强大起来 对初学者来说也是一个难点 2 1 从管理对象说起 如果我们要维护好一

13、个庞大的配置管理系统 那么首先得维护好我们的管理对象 在SaltStack系统中我们的管理对象叫作Target 在Master上我们可以采用不同Target去管理不同的Minion 这些 Target都是通过去管理和匹配Minion的ID来做的一些集合 在1 5 2节 我们介绍了Salt命令的Target Options参数信息 这些参数就是我们这节要讲的Target 1 正则匹配 在操作与管理Minion时可以通过正则表达式来匹配Minion ID的方式去管理它们 比如我们想要对匹配到 Min 字符串的Minion进行操作 可以按如下代码配置 SaltStack Master salt E

14、Min test ping Minion True Minion1 True Min 就是一个简单的正则表达式 当然你也可以写出任何正则表达式去匹配Minion ID 2 列表匹配 SaltStack Master salt L Minion Minion1 test ping Minion True Minion1 True Minion和Minion1通过列表的方式去指定Minion ID 可直接使用 3 Grians匹配 SaltStack Master salt G os MacOS test ping Minion True Minion1 True 其中os MacOS 这里的对象

15、是一组键值对 这里用到了Minion的Grains的键值对 在后面介绍Grains的时候会详细讲解 这里只需要知道可以通过键值对的方式去匹配Minion ID 当然SaltStack也 支持正则匹配Grains信息 大家可以通过 grain pcre参数去匹配 4 组匹配 SaltStack Master salt N groups test ping Minion True Minion1 True 在SaltStack系统中也可以提前给Minion定义组角色 但是需要提前知道Minion ID信息才能把它定义到某个组中 groups是我们在master配置文件中定义的组名称 nodegro

16、ups groups L Minon Minion1 5 复合匹配 SaltStack Master salt C G os MacOS or L Minion1 test ping Minion True Minion1 True os MacOS or L Minion1是一个复合组合 支持使用and和or关联多个条件 6 Pillar值匹配 SaltStack Master salt I key value test ping Minion True Minion1 True key value是Pillar系统中定义的一组键值对 跟Grains的键值对类似 在下面的章节里面我们也会详细介绍SaltStack中的Pillar系统 7 CIDR匹配 SaltStack Master salt S 192 168 1 0 24 test ping Minion True Minion1 True 192 168 1 0 24是一个指定的CIDR网段 这里CIDR匹配的IP地址是Minion连接Matser 4505端口的来源地址 Target参数总结见表2 1 表2 1 Target

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号