• 欢迎访问蜷缩的蜗牛博客 蜷缩的蜗牛
  • 微信搜索: 蜷缩的蜗牛 | 联系站长 kbsonlong@qq.com
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

saltstack自动化运维快速入门

Saltstack 蜷缩的蜗牛 9个月前 (01-15) 264次浏览 已收录


今天没事发了 2 个小时 把以前研究过的saltstack 复习了一篇 准备没事开始上线部署下(先慢慢用) 以前一直研究这个研究 那个每次都是搞到一个初级水平 后来没需求了 就没研究了 这样过段时间了 啥都忘记完了 这次顺便把 复习过程记录下来 以后好查阅(这也是我写博客的最大原因)

关于 saltstack 这个软件是干啥的 我这里就不介绍了 只是简单的说下是干啥的 网上的说法是 它是 func 的强化版本+ puppet的精简版

关于 puppet 这 2 年 很火(我们线上也用到了他的部分功能) 以后有时间再写一套 puppet 的吧 今天将 saltstack 这个东西 saltstack 这个东西目前国内资历比较少 大部分资料都是从官网看的(英文的) 官网文档的地址我贴下吧 http://docs.saltstack.com/contents.html 想研究的 去看看吧

好了 说了一大堆了 开始干活吧 先安装吧

默认的 yum 源是没 saltstack 包的 用 epel 源就行

给个地址吧(去 epel 官网找也行)

wget http://dl.cpis-opt.com/huanw/shencan/epel-release-5-4.noarch.rpm && rpm -vih epel-release-5-4.noarch.rpm

像这个批量管理工具 都是 C/S 架构的 原因你懂的 不然这么 批量管理其他设备呀

下面我就用 2 台设备来演示下吧 主要是服务器端 客户端如果要上线的话 都是一样的

服务器安装 yum install salt-master -y

客户端安装 yum install salt-minion -y

OK 安装就这样 我们先来配置下 服务器端吧

关于配置文件 这里我多说一句 saltstack 的配置文件格式都是 YAML 的 配置的时候注意下 语法

vim /etc/salt/master 配置文件

Linux

你懂的 监听地址

Linux

我弄了一个自动验证 # 如果你不弄也行 到时候 手动去确认下证书 命令 salt-key 这个 自己没事去看帮助吧

OK 其他的默认的就好 #其实里面还有很多 性能方面的配置 有时间 你们研究下吧

我们再来弄客户端的吧

vim /etc/salt/minion

Linux

matser 地址 你懂的

Linux

id 号 这个就是服务器用来标示客户端的东西 这个没问题 吧 我用的主机名来做的标示

Linux

这个参数 是我加的 就是客户端 每隔 30s 去服务器同步资源 时间可以随便 DIY mintus: hours: 这样的格式

跟客户端手动执行 salt-call state.highstate 命令 效果一样

OK 服务器 客户端配置都弄完了 然后起服务吧

客户端 /etc/init.d/salt-minion start 日志文件默认是这个 /var/log/salt/minion

服务端 /etc/init.d/salt-master start 日志文件默认是这个 /var/log/salt/master

OK 不出意外的话 都能起来 默认监听端口 这里不说了 配置文件里面其实也是有 你懂的

验证下 去服务器端 看下 有没有证书过来 #我是自动同意的 所以不需要手动签收的

Linux

OK 这样 这个环境 基本是搭建完成了 以后所有的东西 这么玩 如何玩 都是基于这个环境来的 (多台客户端也是一样的)

哎 到这里了 我也不知道改讲啥了 因为这个东西实在是很多东西需要讲 其实有些东西我也不是太懂 下面 我就讲解下 在服务器上玩的一些命令吧

下面的例子 我拿我线上的来讲吧

先说下 salt 这个命令吧 这个命令是我在服务器端 用得最多的 我顺便简单说下吧

命令的格式为 salt 参数 ‘对象’ 命令 这样 #对象就是客户端汇报上来的 id 我这里是主机名

参数的话 就比较多了 我不能一个一个的讲了 讲几个我会的吧 例子我用官方的吧

-E 如何用了这个参数 那命令的对象里面就可以用正则表达式来匹配对象了

salt -E ‘web1-(prod|devel)’ test.ping

Linux

-L 如何用了这个参数 那命令的对象里面一般是以列表的形式来指定对象了

salt -L ‘web1,web2,web3’ test.ping

Linux

-G 这个参数很强大 会根据默认的 grain 的结果来 指定最新 grain 这个东西就像 puppet 里面的 facter 这个东西

用这个可以查看下 某台设备当前可用的 grains salt ‘CMN-NC-3-3O1′ grains.ls 要值的话 改成 grains.items 就行

salt -G ‘os:CentOS’ test.ping
salt -G ‘cpuarch:x86_64’ grains.item num_cpus

Linux

-N 这个参数是基于组来弄的 前提是你得先分好组 这里我用过 我贴下我弄过的吧

在服务器配置文件 添加分组

Linux

我演示下吧

Linux

OK 了 参数这块就先将 这几个吧

对象的话 就是客户端 id

命令的话 这块就比较多了 这个真没法讲 一堆东西 salt ‘对象’ sys.doc 用这个命令 自己看吧 很多的

可以再细化点 这样吧 salt ‘对象’ sys.doc service #意思是只看 service 模板的用法(好像是叫模板)

OK 命令这里就先将这么多吧 送一个吧

cmd.run 这个命令 用来做系统管理 真的很爽 而已效率很高 速度超快哟 #好像命令内如果用变量的话 (awk 的$m 之内的)需要转义下

剩下的自己试试吧

Linux

OK 命令这块 改打住了 不然下面的核心 都没法写了 。 不会的看官网文档吧 我也不会了

其实大家用 puppet 这类软件 一般是用来批量管理文件 包 服务 这类的东西(当然不止这些了) 下面我就简单介绍下 用 saltstack 来管这些东西吧

服务器端 写 sls 模板(我也不知道 该不该这样叫) 他的默认路径在 /srv/salt/ 下 没有就新建目录

然后新建一个 top.sls 就跟 puppet 的入口文件 site.pp 类似

Linux

这里我讲解下 这个内容

base: 大家都这样取 因为只是一个代号吧 我也没改过

” : 这个引号内的是对象 说起匹配对象 你懂的 什么组 正则 类别都行 上面讲过的

– fc7.sc 这样的东西是指资源文件是 fc7 目录下的 sc.sls 这样的格式 这个一定得记住 好像还有一种方法 会用到 init.sls 擦这个真忘记了

下面的 fc7.pack fc7.fc7 意思 都一样 #注意名称只是代号而已 你懂的

然后我们看 fc7 目录下的资源文件吧

讲解 我写图上了

Linux

这个就简单的实现 安装包(必须是 yum 能安装的) 服务 文件的最简单的管理了

我这里只是简单的演示 因为这个都是我测试过的 所以我没把客户端的结果给贴出来(客户端是 30s 抓一次) 当然也可以主动推

salt ‘*’ state.highstate

核心技术就是我上面说的 saltstack 管理这块 有很多模板 很多参数的

这里要说的是 如果以后你上线了 必须得规划好 准备用 saltstack 管些什么东西 然后再分类 什么初始化 什么服务 什么包 什么文件等等这些

初始化一般是进行一个简单的初始化

文件管理这块可以把不是经常变的 放到一起管理

包的话 可以细分成一些基础包 服务包这类

服务的话 一般跟该服务的配置文件 放到一起 需要 watch 然后 reload 的

先写这么多吧 下次吧 资源管理那块 详细再弄下

 

转自:http://www.shencan.net/index.php/2013/05/24/saltstack%EF%BC%88%E4%B8%80%EF%BC%89/

本文转载自 saltstack 自动化运维快速入门


蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明saltstack 自动化运维快速入门
喜欢 (0)
[]
分享 (0)