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

[经验分享] Saltstack批量部署客户端

[复制链接]

尚未签到

发表于 2018-7-31 14:05:14 | 显示全部楼层 |阅读模式
一.部署相关说明:
  Saltstack服务端:master
  Saltstack客户端:minion
  Saltstack master和minion均为最新稳定版本:2015.8.1
  安装master的系统环境:CentOS6.4x86_64
  安装minion使用salt-ssh进行批量部署在CentOS5、CentOS6等平台上
  本次安装master和minion都是按照官方文档的安装步骤
  文档链接:https://docs.saltstack.com/en/latest/topics/index.html
  以下将介绍使用salt-ssh批量部署minion
二.部署前准备:
2.1创建相关目录
  # mkdir -p /srv/salt/minions/{5,6}       ##5和6目录存在CentOS5和CentOS6需要的文件
2.2准备yum安装所需的repo及相关key文件
  按照官方文档将安装minion需要的GPG key和repo配置文件分别放入5和6这两个目录
  因为CentOS5和CentOS6平台安装的GPG key和repo文件都不一样所以单放两个目录
  批量安装使用写好的state文件让minion端通过salt协议从master上拷贝到相应目录中
DSC0000.jpg

2.3 saltstack GPG key和saltstack repo文件获取
  CentOS5
  wget https://repo.saltstack.com/yum/rhel5/SALTSTACK-EL5-GPG-KEY.pub
  :为了在state文件里使用方便,将CentOS5的key文件重命名为SALTSTACK-GPG-KEY.pub
  CentOS6
  wget https://repo.saltstack.com/yum/rhel6/SALTSTACK-GPG-KEY.pub
  CentOS5 saltstack.repo:
  ####################
  # Enable SaltStack's package repository
  [saltstack-repo]
  name=SaltStack repo for RHEL/CentOS 5
  baseurl=https://repo.saltstack.com/yum/rhel5
  enabled=1
  gpgcheck=1
  gpgkey=https://repo.saltstack.com/yum/rhel5/SALTSTACK-EL5-GPG-KEY.pub
  CentOS6 saltstack.repo:
  ####################
  # Enable SaltStack's package repository
  [saltstack-repo]
  name=SaltStack repo for RHEL/CentOS 6
  baseurl=https://repo.saltstack.com/yum/rhel6
  enabled=1
  gpgcheck=1
  gpgkey=https://repo.saltstack.com/yum/rhel6/SALTSTACK-GPG-KEY.pub
2.4在minions目录放入minion的配置,修改内容如下:
  master:salt.hj.com               ## master主机名或ip地址
  id: {{ grains['fqdn'] }}              ## minion_id使用minion的主机名
2.5在/srv/salt/目录下创建安装minion的state文件
  # vim /srv/salt/minion_install
  rpm_add:
  file.managed:
  -name: /tmp/SALTSTACK-GPG-KEY.pub
  -source: salt://minions/{{ grains['osmajorrelease'] }}/SALTSTACK-GPG-KEY.pub
  cmd.run:
  - cwd: /tmp
  -name: rpm --import SALTSTACK-GPG-KEY.pub
  -name: rm -rf SALTSTACK-GPG-KEY.pub
  salt_repo:
  file.managed:
  -name: /etc/yum.repos.d/saltstack.repo
  -unless: test -e /etc/yum.repos.d/saltstack.repo
  -source: salt://minions/{{ grains['osmajorrelease'] }}/saltstack.repo
  salt_pkg:
  cmd.run:
  -name: yum clean expire-cache
  pkg.installed:
  -name: salt-minion
  -require:
  - file: salt_repo
  salt_conf:
  file.managed:
  -name: /etc/salt/minion
  -source: salt://minions/minion
  -backup: minion
  -template: jinja
  -require:
  - pkg: salt_pkg
  salt_service:
  service.running:
  -name: salt-minion
  - enable: True
  - watch:
  - file: /etc/salt/minion
三.salt-ssh的安装配置
3.1salt-ssh介绍
  salt-ssh功能正式使用是在2014.7.0的版本中开始的,它是依赖ssh 来进行远程命令执行的工具,支持 salt 大部分的功能,如 grains、modules、state 等,salt-ssh 并没有继承原来的通讯架构 (ZeroMQ),所以执行速度不如salt执行的快;salt-ssh好处就是不需要在客户端安装 minion,也不需要安装 master(直接安装 salt-ssh 这个包即可),作为salt的补充在初次批量安装minion或某些不能安装minion的特殊场景下还是非常好用的
3.2salt-ssh安装
  # yum install salt-ssh
  # salt-ssh  ‘*’  [options ] sys.doc 查看详细模块用法
3.3salt-ssh配置使用
  salt-ssh 需要配合roster使用,配置roster,默认路径/etc/salt/roster
  # vim /etc/salt/roster
  test1:                       ## 自定义ID名字,强烈建议使用ip地址
  host: 192.168.1.2            ##远程主机IP地址
  user: fred                  ##用户名
  passwd: foobarbaz           ##密码
  port:22                   ##如果默认端口可以省略
  test2:
  host: 192.168.1.3
  # salt-ssh '*' test.ping        ##测试能否远程连接客户端
DSC0001.jpg

  # salt-ssh 'web1'  disk.usage   ##可以调用salt的模块对指定ID进行操作
DSC0002.jpg

  :使用salt-ssh在第一次成功与客户端连接后,会把自己的公钥复制到远程客户端上
  下次便可以将roster中的用户名密码删除掉保留host主机的信息就可以。图中的error报错提示是CentOS5版本的python版本低,安装python26就可以了
DSC0003.jpg

  salt-ssh 使用-r 可以调用shell命令
DSC0004.jpg

四.使用salt-ssh批量安装minion
4.1salt-minion批量安装
  # salt-ssh '*' state.sls  minion_install
  :测试中在安装minion的时候发现CentOS6.4的版本中如果在安装前没有yum update是装不上的,赶巧在CentOS官网中bug中看到相同的错误(测试中发现6.4有这个问题),链接如下:
  https://bugs.centos.org/view.php?id=9212
  使用yum update更新后是可以安装的,更新后系统为CentOS6.7!
4.2主机名的配置(如果是用IP作为ID的话可以省略)
  因为本次批量安装miminion后计划是用主机名做为ID表示进行通讯,上面的state文件都有体现。所以可以使用salt-ssh 批量添加host文件中
  # salt-ssh '*'  -r 'echo “10.0.2.98salt.hj.com">>/etc/hosts'   ##所有minion对master的解析
  注:如果内网有DNS,可以在内网DNS上配置域名解析更方便
  # salt-ssh '*'  -r 'grep HOSTNAME /etc/sysconfig/network'  ##将minion的主机名和ip信息添加到master的host文件中
4.3 服务批量重启与key接收测试
  批量重启minion服务后master接收minion端发来的key
  # salt-ssh '*' -r '/etc/init.d/salt-minion restart'
  # salt-key     ##查看key的接收情况,默认会在未接受的key中
  # salt-key -A  ##接收所有key
  # salt  ‘*’ test.ping      ##测试minion端在线情况

运维网声明 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-544229-1-1.html 上篇帖子: saltstack 之源码部署管理nginx 下篇帖子: 自动化运维工具SaltStack - 分组(使用记录,groups)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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