设为首页 收藏本站
查看: 1211|回复: 0

[经验分享] 自动化部署工具saltstack-linux学习与交流

[复制链接]

尚未签到

发表于 2018-8-1 11:23:58 | 显示全部楼层 |阅读模式
  今天没事发了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  配置文件
  你懂的 监听地址
  我弄了一个自动验证 # 如果你不弄也行 到时候 手动去确认下证书   命令 salt-key 这个 自己没事去看帮助吧
  OK  其他的默认的就好 #其实里面还有很多 性能方面的配置   有时间 你们研究下吧
  我们再来弄客户端的吧
  vim /etc/salt/minion
  matser 地址 你懂的
  id 号  这个就是服务器用来标示客户端的东西   这个没问题 吧 我用的主机名来做的标示
  这个参数 是我加的  就是客户端 每隔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  不出意外的话 都能起来  默认监听端口 这里不说了 配置文件里面其实也是有  你懂的
  验证下   去服务器端 看下 有没有证书过来 #我是自动同意的  所以不需要手动签收的
  OK  这样 这个环境 基本是搭建完成了      以后所有的东西  这么玩    如何玩 都是基于这个环境来的  (多台客户端也是一样的)
  哎 到这里了 我也不知道改讲啥了  因为这个东西实在是很多东西需要讲 其实有些东西我也不是太懂  下面 我就讲解下 在服务器上玩的一些命令吧
  下面的例子 我拿我线上的来讲吧
  先说下 salt 这个命令吧   这个命令是我在服务器端 用得最多的 我顺便简单说下吧
  命令的格式为   salt  参数  ‘对象’  命令 这样   #对象就是客户端汇报上来的id  我这里是主机名
  参数的话 就比较多了 我不能一个一个的讲了    讲几个我会的吧   例子我用官方的吧
  -E   如何用了这个参数  那命令的对象里面就可以用正则表达式来匹配对象了
salt -E 'web1-(prod|devel)' test.ping  

  -L   如何用了这个参数  那命令的对象里面一般是以列表的形式来指定对象了
salt -L 'web1,web2,web3' test.ping  

  -G   这个参数很强大 会根据默认的grain的结果来 指定最新  grain这个东西就像puppet里面的facter这个东西
  用这个可以查看下 某台设备当前可用的grains     salt  ‘CMN-NC-3-3O1′  grains.ls    要值的话 改成 grains.items 就行
salt -G 'os:CentOS' test.pingsalt -G 'cpuarch:x86_64' grains.item num_cpus  

  -N   这个参数是基于组来弄的  前提是你得先分好组   这里我用过 我贴下我弄过的吧
  在服务器配置文件 添加分组
  我演示下吧
  OK 了 参数这块就先将 这几个吧
  对象的话  就是客户端id
  命令的话  这块就比较多了   这个真没法讲 一堆东西   salt ‘对象’  sys.doc  用这个命令 自己看吧 很多的
  可以再细化点  这样吧   salt ‘对象’  sys.doc service  #意思是只看 service 模板的用法(好像是叫模板)
  OK 命令这里就先将这么多吧  送一个吧
  cmd.run  这个命令 用来做系统管理 真的很爽  而已效率很高 速度超快哟  #好像命令内如果用变量的话 (awk的$m  之内的)需要转义下
  剩下的自己试试吧
  OK  命令这块 改打住了  不然下面的核心 都没法写了 。  不会的看官网文档吧  我也不会了
  其实大家用puppet 这类软件 一般是用来批量管理文件 包 服务 这类的东西(当然不止这些了) 下面我就简单介绍下 用saltstack来管这些东西吧
  服务器端 写sls 模板(我也不知道 该不该这样叫)  他的默认路径在 /srv/salt/ 下 没有就新建目录
  然后新建一个top.sls   就跟puppet的入口文件 site.pp 类似
  这里我讲解下 这个内容
  base:  大家都这样取  因为只是一个代号吧  我也没改过
  ” : 这个引号内的是对象  说起匹配对象 你懂的  什么组 正则  类别都行  上面讲过的
  -  fc7.sc  这样的东西是指资源文件是fc7目录下的sc.sls  这样的格式  这个一定得记住  好像还有一种方法 会用到init.sls  擦这个真忘记了
  下面的fc7.pack  fc7.fc7 意思 都一样  #注意名称只是代号而已 你懂的
  然后我们看fc7目录下的资源文件吧
  讲解 我写图上了
  这个就简单的实现 安装包(必须是yum能安装的)  服务  文件的最简单的管理了
  我这里只是简单的演示 因为这个都是我测试过的 所以我没把客户端的结果给贴出来(客户端是30s抓一次) 当然也可以主动推
  salt ‘*’ state.highstate
  核心技术就是我上面说的 saltstack 管理这块 有很多模板 很多参数的
  这里要说的是  如果以后你上线了   必须得规划好  准备用saltstack管些什么东西  然后再分类  什么初始化  什么服务 什么包 什么文件等等这些
  初始化一般是进行一个简单的初始化
  文件管理这块可以把不是经常变的 放到一起管理
  包的话  可以细分成一些基础包 服务包这类
  服务的话 一般跟该服务的配置文件 放到一起 需要watch 然后reload的
  先写这么多吧  下次吧 资源管理那块 详细再弄下

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-544696-1-1.html 上篇帖子: 关于python调用zabbix api接口的自动化实例 [结合saltstack] 下篇帖子: 用saltstack cp模块实现文件管理、拉取和回滚下发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表