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

[经验分享] saltstack测试 [二]

[复制链接]

尚未签到

发表于 2018-8-1 10:19:34 | 显示全部楼层 |阅读模式
  一.远程命令执行
  1.1测试联通性
  salt '*' test.ping
  1.2# 查询主机运行了多长时间
  salt '*' cmd.run "uptime"
  1.3 # 批量重启服务
  salt '*' cmd.run "service httpd restart"
  1.4测试多个单独客户端
  salt -L 'web202,db203' test.ping
  1.5主机分组测试
  需要在master上面做配置修改。
  vim /etc/salt/master
  增加下面分组
  nodegroups:
  web:  'web202'         #web为组名
  db:  'db203'             #db为组名
  service salt-master restart #重新启动master让添加的配置生效
  1.6测试web分组下所有机器联通性
  salt -N web test.ping
  1.7测试db分组下所有机器联通性
  salt -N db test.ping
  二.配置管理
  2.1批量安装配置测试
  在master服务器端:
  vim /etc/salt/master #添加里面内容
  file_roots:
  base:
  - /srv/salt               #基础路径
  service salt-master restart #重新启动master让添加的配置生效
  2.2#需要自己创建/srv/salt目录
  mkdir -p /srv/salt               #salt基础路径
  mkdir /srv/salt/nginx         #nginx配置路径
  mkdir /srv/salt/mysql         #mysql配置路径
  mkdir /srv/salt/conf_sls      #nginx,mysql,packs的sls文件
  mkdir /srv/salt/software     #软件包存放路径
  mkdir /srv/salt/scripts        #脚本文件存放路径
  mkdir /srv/salt/_modules    #模板文件存放路径
  2.3#为客户端安装vsftpd这个软件包,通过yum安装。
  vim /srv/salt/conf_sls/packs.sls
  vsftpd:
  pkg:
  - installed    #卸载是- removed
  service:           #如果带有service,running表示安装的包需要自动运行
  - running
  - enable: True
  修改top.sls为基础配置文件
  vim /srv/salt/top.sls
  base:
  '*':                      #'*'表示所有监控客户端
  - conf_sls.packs  #表示调用/srv/salt/conf_sls/packs.sls文件
  #在master服务端上面执行发布到客户端
  salt '*' state.highstate
  2.4分发文件及修改文件权限
  vim  /srv/salt/conf_sls/nginx.sls
  /usr/local/nginx/conf/nginx.conf:
  file:
  - managed
  - source: salt://nginx/nginx.conf
  - mode: 777
  - owner: root
  - group: root
  修改top.sls为基础配置文件
  vim /srv/salt/top.sls
  base:
  '*':                      #'*'表示所有监控客户端
  - conf_sls.nginx  #表示调用/srv/salt/conf_sls/nginx.sls文件
  #在master服务端上面执行发布到web组客户端
  salt -N web state.highstate
  2.5分发单个脚本文件到客户端
  salt '*' cp.get_file salt://scripts/hello.sh /root/scripts/hello.sh makedirs=True
  #把/srv/salt/scripts/hello.sh文件拷贝到所有监控客户端的/root/scripts/目录下,如果不存在此目录,将自动建此目录
  salt '*' cmd.run 'sh /root/scripts/hello.sh'  #执行拷贝的hello.sh脚本文件
  2.6分发目录到客户端
  salt '*' cp.get_dir salt://software /root gzip=5
  2.7分发crontab到客户端
  vim /srv/salt/scripts/cron.sh
  #!/bin/bash
  /usr/sbin/ntpdate ntp.api.bz
  chmod u+x /srv/salt/scripts/cron.sh
  vim  /srv/salt/conf_sls/crontab.sls
  /root/scripts/cron.sh:
  file.managed:
  - source: salt://scripts/cron.sh
  - mode: 700
  cron.present:
  - minute: '5'
  - hour: '*/2'
  修改top.sls为基础配置文件
  vim /srv/salt/top.sls
  base:
  '*':                      #'*'表示所有监控客户端
  - conf_sls.crontab  #表示调用/srv/salt/conf_sls/crontab.sls文件
  salt '*' state.highstate
  2.8为客户端添加系统用户
  vim  /srv/salt/conf_sls/useradd.sls
  test_user:                     #添加的用户名
  user.present:                #次状态为添加用户
  - fullname: test          #全名
  - shell: /bin/bash       #shell环境
  - password: '$1$NdyLqU0s$yxa4TI//RmBmQ/hQwE0NR1'  #默认密码是123456
  - home: /home/test_user   #用户家目录
  - uid: 10001                       #用户id
  - gid: 10001                       #组id
  - groups:                           #所包含为root和test_user组
  - root
  - test_user
  - require:
  - group: test_user
  group.present:                       #次状态为添加组
  - gid: 10001                          #组id
  修改top.sls为基础配置文件
  vim /srv/salt/top.sls
  base:
  '*':                      #'*'表示所有监控客户端
  - conf_sls.useradd  #表示调用/srv/salt/conf_sls/useradd.sls文件
  salt '*' state.highstate
  2.9为客户端删除系统用户
  vim  /srv/salt/conf_sls/userdel.sls
  test_user:
  user.absent:
  - purge: True  #设置清除用户的文件(家目录)
  - force: True  #如果用户当前已登录,则absent state会失败. 设置force选项为True时,就算用户当前处于登录状态也会删除本用户.
  修改top.sls为基础配置文件
  vim /srv/salt/top.sls
  base:
  '*':                      #'*'表示所有监控客户端
  - conf_sls.userdel  #表示调用/srv/salt/conf_sls/userdel.sls文件
  salt '*' state.highstate
  3.1为客户端删除系统用户组
  vim  /srv/salt/conf_sls/groupdel.sls
  test_user:
  group.absent
  vim /srv/salt/top.sls
  base:
  '*':                      #'*'表示所有监控客户端
  - conf_sls.group  #表示调用/srv/salt/conf_sls/group.sls文件
  salt '*' state.highstate
  3.2自定义模板
  cd  /srv/salt/_modules   #存放模板文件
  vim check_web.py
  #!usr/bin/python
  import os
  num=int(os.popen("netstat -tunlp|grep nginx|wc -l").readline().strip())
  def status():
  if num==1:
  return  "this  is nginx server!!!"
  else:
  return  "this  is not nginx server!!!"
  salt '*' saltutil.sync_all    #同步到所有客户端
  salt '*' check_web.status        #调用自定义模板方法
  3.2目录显示
  [root@lnmp conf_sls]#  tree /srv/salt/
  /srv/salt/
  |-- _modules
  |   `-- check_web.py
  |-- conf_sls
  |   |-- crontab.sls
  |   |-- groupdel.sls
  |   |-- nginx.sls
  |   |-- packs.sls
  |   |-- useradd.sls
  |   `-- userdel.sls
  |-- mysql
  |-- nginx
  |   `-- nginx.conf
  |-- scripts
  |   `-- cron.sh
  |-- software
  |   `-- Django-1.5.8.tar.gz
  `-- top.sls

运维网声明 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.iyunv.com/thread-544607-1-1.html 上篇帖子: saltstack安装 [一] 下篇帖子: Saltstack 新特性测试之proxy minion
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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