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

[经验分享] 基于Salt Master/Minions快速构建Salt SSH环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-6 08:13:00 | 显示全部楼层 |阅读模式
前置阅读
环境说明
开工
创建用于Salt SSH环境的用户及key认证管理环境
配置Mine,以获取Minion id及IP地址
生成Salt Rosters
应用Salt SSH
后话
Salt 0.17版本已发布,该版本中重要的特性是引入了Salt SSH系统,提供了无需Minion、基于SSH的维护方式。原有的Salt维护环境已经初具规模,再手动重新构建Salt SSH环境成本较高。偷懒是人的天性,利用原有SaltStack Master/Minions环境,如何快速构建新的Salt SSH维护环境将是本文的主题.

前置阅读
预则立,不预则废。阅读本文前先阅读如下文章:

Salt 0.17 Release Note: http://docs.saltstack.com/topics/releases/0.17.0.html
Salt SSH: http://docs.saltstack.com/topics/ssh/
Salt Rosters: http://docs.saltstack.com/topics/ssh/roster.html
环境说明
Minion版本: 本文会采用 Salt Mine 获取已有的Minion ID及IP地址,由于Salt Mine为0.15.0引入的新功能,所以需要保证Minion的版本等于或高于0.15.0
Master的安装采用EPEL仓库yum方式
所有minion端sshd服务已启动,并允许Master访问
Master所在服务器上同时安装有Minion并运行Master进行管理, 对应的Minion ID为 salt
Salt file_roots目录为 /srv/salt/ , pillar_roots目录为 /srv/pillar/
开工
Note

以下所有操作在Master端进行

创建用于Salt SSH环境的用户及key认证管理环境
生成Master SSH key

## 创建master ssh key目录
mkdir /etc/salt/pki/master/ssh/
## 生成Master SSH key
cd /etc/salt/pki/master/ssh/
ssh-keygen -t rsa -P "" -f salt-ssh.rsa
## 复制master public key至 salt fileserver
cp /etc/salt/pki/master/ssh/salt-ssh.rsa.pub /srv/salt/salt/files/salt-ssh.rsa.pub
编写用于Salt SSH管理的用户及key认证状态管理文件, /srv/salt/salt/ssh/init.sls

salt-user:
  {# salt user #}
  user.present:
    - name: salt
  {# salt user sudoer #}
  file.managed:
    - name: /etc/sudoers.d/salt
    - source: salt://salt/files/etc/sudoers.d/salt
    - require:
      - user: salt-user

salt-master-key:
  ssh_auth.present:
    - user: salt
    - source: salt://salt/files/salt-ssh.rsa.pub
    - require:
      - user: salt-user
salt 用户对应的sudoer文件 /srv/salt/salt/files/etc/sudoers.d/salt:

Defaults:salt !requiretty
salt ALL=(ALL) NOPASSWD: ALL
应用状态

salt '*' state.sls salt.ssh
配置Mine,以获取Minion id及IP地址
配置Salt Mine, /srv/pillar/salt/mine.sls

mine_functions:
  network.ip_addrs:
    - eth0
配置pillar top.sls, /srv/pillar/top.sls

base:
  '*':
    - salt.mine
刷新Pillar,并验证Salt Mine配置

salt '*' saltutil.refresh_pillar
salt '*' pillar.get mine_functions
更新Salt Mine,并测试获取所有Minions的ID及IP

salt '*' mine.update
salt 'salt' mine.get '*' network.ip_addrs
生成Salt Rosters
配置Salt Rosters state

/srv/salt/salt/ssh/roster.sls

salt-rosters:
  {# salt rosters file for salt-ssh #}
  file.managed:
    - name: /etc/salt/roster
    - source: salt://salt/files/etc/salt/roster
    - template: jinja
/srv/salt/salt/files/etc/salt/roster:

{% for eachminion, each_mine in salt['mine.get']('*', 'network.ip_addrs').iteritems() -%}
{{eachminion}}:
  host: {{each_mine[0]}}
  user: salt
  sudo: True
{% endfor -%}
生成Salt Rosters

salt 'salt' state.sls salt.ssh.roster
应用Salt SSH
将Master升级至0.17及以上版本(EPEL Stable当前版本为已经为0.17.1-1), 至此, Salt SSH环境已经构建完毕

yum update salt-master
service salt-master restart
测试Salt SSH

## 运行Salt Module
salt-ssh '*' test.ping
## 运行原始SHELL命令
salt-ssh '*' -r 'uptime'
后话
Salt这是要抢 Fabric 饭碗的节奏啊,个人更喜欢Salt Master/Minions这样的管理方式,Salt SSH作为补充,用于升级Minion、重启Minion等等自维护工作还是很靠谱的。有了Salt SSH,再也不用担心是先有鸡还是先有蛋的问题了.



运维网声明 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-27166-1-1.html 上篇帖子: 基于Salt Event系统构建Master端returner 下篇帖子: 基于SaltStack完成LVS的配置管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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