saltstack 自动化运维神器(四)salt-ssh

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状态文件

[[email protected] ~]# 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
[[email protected] ~]# salt-ssh ‘*‘ test.ping
compute1:
    True
compute2:
    True
manager01:
    True

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

[[email protected] 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的部署。

[[email protected] salt]# vim epel/
salt_install.sls  test.sls          
[[email protected] 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   //指定安装的软件包
[[email protected] 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‘

[[email protected] salt]# salt-key -L
Accepted Keys:
Unaccepted Keys:
compute1
compute2
manager01
Rejected Keys:
[[email protected] 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.
[[email protected] salt]# salt-key -L
Accepted Keys:
compute1
compute2
manager01
Unaccepted Keys:
Rejected Keys:

 
[[email protected] salt]# salt ‘*‘ test.ping
compute1:
    True
compute2:
    True
manager01:
    True
[[email protected] 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
时间: 2024-10-10 21:51:36

saltstack 自动化运维神器(四)salt-ssh的相关文章

saltstack 自动化运维神器(二)

文件同步: 其实在做openstack的运维对一些文件的同步其实是很繁琐.有一个配置项或者一行代码的源码文件进行同步.那么现在我们就开始介绍saltstack的文件同步功能 环境说明:操作系统版本:rhel6.5x64 1.master配置同步根目录 在开始saltstack的配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作 ## 首先修改master的配置文件,指定根目录,注意缩进全部使用两个空格来代替Tab(python规范)## 确定指定的目录是否

saltstack 自动化运维神器(二)文件同步

文件同步: 其实在做openstack的运维对一些文件的同步其实是很繁琐.有一个配置项或者一行代码的源码文件进行同步.那么现在我们就开始介绍saltstack的文件同步功能 环境说明:操作系统版本:rhel6.5x64 1.master配置同步根目录 在开始saltstack的配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作 ## 首先修改master的配置文件,指定根目录,注意缩进全部使用两个空格来代替Tab(python规范)## 确定指定的目录是否

saltstack 自动化运维神器(三)节点组及复合匹配器

saltstack实现远程配置管理功能首先是要先匹配到对应的target minion,然后才会将命令发送到匹配到的minion上去执行.这里介绍两种比较强大的匹配方法,一是创建节点组:二是使用复合匹配器. 节点组将不同的主机分配到不同的组中去,便于实现主机的集中化管理,接下来首先看salt分组功能的实现. 要使用salt的分组功能,需要在master节点上进行配置,配置的方式有两种: (1).将分组的信息写在master的主配置文件 (2).将分组的信息写在一个单独的配置文件中,然后主配置文件

saltstack 自动化运维神器(一)

随着服务器的增多,越来越多的工作是反复一样的操作,这时候我们开始烦恼.介绍一款很好用的批量操作的软件系统:saltstack.废话少说. 环境说明:操作系统版本:rhel6.5x64 软件下载:http://yunpan.cn/cKvxxLbmaQiMM  访问密码 166e 官方下载:http://docs.saltstack.cn/zh_CN/latest/ 1.安装 master 节点 yum install salt-master minion 节点 yum install salt-m

saltstack 自动化运维安装

saltstack --自动化运维 saltstack-master 安装:yum -y install salt-mastersaltstack-master配置:如下图,修改 salt-master本身监听地址sed -i 's/#interface: 0.0.0.0/interface: 192.168.1.26/g' /etc/salt/mastersed -e '/^$/d;/^#/d' /etc/salt/master #查看配置 可以在master 端使用自动认证(可选)vim /

Linux云自动化运维第四课

Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所在位置插入 I  ###光标所在行行首 a  ###光标所在字符的下一个位置 A  ###光标所在行行尾 o  ###光标所在行下一行 O  ###光标所在行上一行 s  ###删除光标所在字符插入 S  ###删除光标所在行插入 2.vim的退出模式 :q  ###当用vim打开文件但没有对字符作

Saltstack自动化运维工具 实战与部署

自动化工具比较 Puppet也许是四款工具中最深入人心的.就可用操作.模块和用户界面而言,它是最全面的.Puppet呈现了数据中心协调的全貌,几乎涵盖每一个运行系统,为各大操作系统提供了深入的工具.初始设置比较简单,只需要在需要加以管理的每个系统上安装主服务器和客户端代理软件.命令行接口(CLI)简单直观,允许通过puppet命令下载和安装模块.然后,需要对配置文件进行更改,好让模块适合所需的任务;应接到指令的客户端与主服务器联系时,会更改配置文件,或者客户端通过立即触发更改配置文件的推送(pu

Saltstack 自动化运维工具详细介绍

Saltstack 简介 什么是saltstack ? Saltstack是基于python开发的一套C/S架构配置管理工具 ? 使用SSL证书签方的方式进行认证管理 ? 底层使用ZeroMQ消息队列pub/sub方式通信 – 号称世界上最快的消息队列ZeroMQ能快速在成千上万台主机上进行各种操作 – 采用RSA Key方式确认身 主要功能 ? Saltstack最主要的两个功能是:配置管理与远程执行 ? Saltstack不只是一个配置管理工具,还是一个云计算与数据中心架构编排的利器 ? S

saltstack自动化运维

一.Saltstack架构 Saltstack基于C/S架构,服务端master:192.168.179.128和客户端minions :192.168.179.129 二.Saltstack的安装配置 1.master的安装 rpm -ivhhttp://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpmyum install salt-master默认配置文件位于/etc/salt/master ,默认不需要更改