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

[经验分享] saltstack 自动化运维神器(四)salt-ssh

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-2-12 08:39:47 | 显示全部楼层 |阅读模式
  satlstack号称自动化运维的利器,那么saltstack能不能实现自身的批量部署呢?如果你也有这样的疑问,那么就更要看这篇文章了。答案当然是肯定的啦!saltstack可以利用salt-ssh来实现自身的批量部署。首先看待salt-ssh,很容易想到它是一个依赖 ssh 来进行远程命令执行的工具,这样做的好处是你不必在客户端安装minion程序,就可以实现远程命令的执行,而且salt-ssh支持salt的绝大部分功能。

10.10.10.4      salt-master    os:redhat6.5            master
10.10.10.5      compute1     os:redhat6.5            minion
10.10.10.6      compute2     os:redhat6.5            minion
10.10.10.7      manager01   os:redhat6.5            minion
10.10.10.8      horsizon       os:redhat6.5            minion

1、配置roster状态文件

   
[iyunv@salt-master ~]# cat /etc/salt/roster
compute1:
  host: compute1       //主机名
  user: root           //用户名
  passwd: salt_passwd  //密码
  port: 22             //端口
  timeout: 3           //超时次数
compute2:
  host: compute2
  user: root
  passwd: salt_passwd
  port: 22
  timeout: 3
[iyunv@salt-master ~]# salt-ssh '*' test.ping
compute1:
    True
compute2:
    True
manager01:
    True

## 需要注意的是,由于salt-ssh并没有继承salt的zeroMQ,所以执行起来要慢的多,-r选项可以执行系统命令

   
[iyunv@salt-master salt]# salt-ssh '*' -r 'uptime'
compute1:
    ----------
    retcode:
        0
    stderr:
         
    stdout:
         12:47:26 up  3:37,  0 users,  load average: 0.00, 0.00, 0.00
         
compute2:
    ----------
    retcode:
        0
    stderr:
         
    stdout:
         12:47:26 up  3:35,  0 users,  load average: 0.00, 0.00, 0.00

   
2、使用salt-ssh部署

OK,那现在我们可以通过salt-ssh开始部署minion的部署。

   
[iyunv@salt-master salt]# vim epel/
salt_install.sls  test.sls         
[iyunv@salt-master salt]# vim epel/salt_install.sls

clear_yum:
  cmd.run:
    - name: yum clean all   //清除一下yum缓存

cache_yum:
  cmd.run:
    - name: yum makecache  //重新生成最新的yum缓存

   
salt_install:
  pkg.installed:
    - name: salt-minion   //指定安装的软件包

   
[iyunv@salt-master salt]# salt-ssh compute2 state.sls epel.salt_install
compute2:
    ----------
    cmd_|-cache_yum_|-yum makecache_|-run:
        ----------
        __run_num__:
            1
        changes:
            ----------
            pid:
                10311
            retcode:
                0
            stderr:
                This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
            stdout:
                Loaded plugins: product-id, security, subscription-manager
                Metadata Cache Created
        comment:
            Command "yum makecache" run
        name:
            yum makecache
        result:
            True
    cmd_|-clear_yum_|-yum clean all_|-run:
        ----------
        __run_num__:
            0
        changes:
            ----------
            pid:
                10310
            retcode:
                0
            stderr:
                This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
            stdout:
                Loaded plugins: product-id, security, subscription-manager
                Cleaning repos: base rhel-HighAvailability rhel-LoadBalancer
                              : rhel-ResilientStorage rhel-ScalableFileSystem rhel-Server
                              : saltstack
                Cleaning up Everything
        comment:
            Command "yum clean all" run
        name:
            yum clean all
        result:
            True
    pkg_|-salt_install_|-salt-minion_|-installed:
        ----------
        __run_num__:
            2
        changes:
            ----------
            openpgm:
                ----------
                new:
                    5.1.118-3.el6
                old:
                     
            python-babel:
                ----------
                new:
                    0.9.4-5.1.el6
                old:
                     
            python-jinja2:
                ----------
                new:
                    2.2.1-1.el6.rf
                old:
                     
            python-libcloud:
                ----------
                new:
                    0.14.1-1.el6
                old:
                     
            python-yaml:
                ----------
                new:
                    3.09-3.el6.rf
                old:
                     
            python-zmq:
                ----------
                new:
                    14.3.1-1.el6
                old:
                     
            salt:
                ----------
                new:
                    2014.1.10-4.el6
                old:
                     
            salt-minion:
                ----------
                new:
                    2014.1.10-4.el6
                old:
                     
            sshpass:
                ----------
                new:
                    1.05-1.el6.rf
                old:
                     
            zeromq3:
                ----------
                new:
                    3.2.4-1.el6
                old:
                     
        comment:
            The following packages were installed/updated: salt-minion.
        name:
            salt-minion
        result:
            True

# salt-ssh '*' -r 'sed -i "s/#master: salt/master: 10.10.10.4/" /etc/salt/minion '  //修改修改minion的master的IP地址
# salt-ssh '*' -r 'service salt-minion restart'


[iyunv@salt-master salt]# salt-key -L
Accepted Keys:
Unaccepted Keys:
compute1
compute2
manager01
Rejected Keys:
[iyunv@salt-master salt]# salt-key –A         //接受所有的key
The following keys are going to be accepted:
Unaccepted Keys:
compute1
compute2
manager01
Proceed? [n/Y] y
Key for minion compute1 accepted.
Key for minion compute2 accepted.
Key for minion manager01 accepted.
[iyunv@salt-master salt]# salt-key -L
Accepted Keys:
compute1
compute2
manager01
Unaccepted Keys:
Rejected Keys:   

   
[iyunv@salt-master salt]# salt '*' test.ping
compute1:
    True
compute2:
    True
manager01:
    True
[iyunv@salt-master salt]# salt '*' cmd.run 'date'
compute1:
    Wed Feb 11 07:47:52 CST 2015
compute2:
    Wed Feb 11 07:47:52 CST 2015
manager01:
    Wed Feb 11 07:47:52 CST 2015

运维网声明 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-42488-1-1.html 上篇帖子: saltstack的探索-grains 下篇帖子: 写一个基于saltstack的自动化运维平台 客户端 文章 程序 而且
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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