1.安装salt
因为系统自带的yum源不支持saltstack安装包的支持,所以需要安装第三方yum源(epel)
# yum -y install epel-release

salt分为主服务器(控制端)和从服务器(被控制端)
控制端安装:
yum -y install salt-master
被控制端安装:
yum -y install salt-master

2.saltstack防火墙配置
在主控服务器上添加TCP 4505,TCP 4506的规则,而在被控制端无需添加防火墙规则,,原理是被控制端直接直接与主控制端的zeromq建立长连接,接收广播的任务信息并执行。具体操作是在主控服务器上添加两条iptables规则:
# iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
# iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT

3. 配置salt的配置文件
master主控端配置:
路径:/etc/salt/master

#指定通信的ip地址
interface:192.168.5.30
#开启自动认证
auto_accept: True
#指定saltstack文件根目录位置
file_roots:
base:
- /srv/salt/

minion被控端配置
路径:/etc/salt/minion

#指定主控端的ip地址
master: 192.168.5.30
user: root
pidfile: /var/run/salt-minion.pid
#指令主控端的ip地址
id: test-1

分别在主控端和被控端对服务进行启用,看saltstack能否自动发现认证。
# salt "*" test.ping
test-1:
True
因为是自动认证,所以服务就重启就直接可以看到是通过的。

4.手动证书认证
salt-key -L 显示已经或未认证的被控制端id
# salt-key -L
Accepted Keys:
test-1
Denied Keys:
Unaccepted Keys:
Rejected Keys:

salt-key -D 删除所以认证主机的id证书
salt-key -d ID 删除单个id证书
salt-key -A 接受所有id证书请求
salt-key -a id 接受单个id证书请求

5.利用saltstack远程执行命令
命令格式:salt '<目标>' <参数> <方法>
查看主机的内存使用情况:
# salt 'test-1' cmd.run "free -m"
test-1:
total used free shared buffers cached
Mem: 980 633 347 3 27 217
-/+ buffers/cache: 388 592
Swap: 1983 0 1983

其中针对<操作目标>,saltstack提供多种方法对被控端主机(id)进行过滤。
1)-E ,--pcre,通过正则表达式进行匹配
# salt -E '^test-*' test.ping
test-1:
True
test-2:
True

2)-L,list,以主机ID名列表的方式进行过滤
# salt -L 'test-1,test-2' grains.item osfullname
test-1:
----------
osfullname:
CentOS
test-2:
----------
osfullname:
CentOS

3)-G,--grain,根据被控主机grains信息进行匹配过滤
# salt -G 'osrelease:6.6' cmd.run 'hostname'
web-1:
Goun-4
test-2:
linux-3
test-1:
linux-2

4)-I,--pillar,根据被控主机的pillar信息进行匹配过滤,格式为“对象名称,对象值”,例如,过滤所有具备‘apache:httpd’pillar值的主机。实:探测具有“nginx:root:/data”信息主机的连通性。

其中pillar属性配置文件如下,详细解释见02章。
nginx:
root:/data

5)-N,--nodegroup,根据主控端master配置文件中的分组进行过滤。以笔者定义的组为例。
vim /etc/salt/master
nodegroups:
test: 'L@test-1,test-2'
web: 'L@web-1'

其中,L@表示后面的主机id格式为列表,即主机id以逗号为分割;G@表示以grain格式描述;S@表示以IP子网或地址格式描述。

例:
# salt -N web test.ping
web-1:
True

6)-C,--compound,根据条件运算符not,and,or去匹配不同规则的主机。
例:探测以test开头并且操作系统为CentOS的主机连通性
# salt -C 'E@^t.* and G@os:CentOS' cmd.run hostname
test-2:
linux-3
test-1:
linux-2

其中,not语句不能作为第一个条件执行,不过可以通过以下方法来规避,示例:探测非test开头
的主机连通性
# salt -C '* and not E@t.*' cmd.run hostname
web-1:
Goun-4

7)-S,--ipcidr,根据被控主机的IP地址或IP子网进行匹配
# salt -S '192.168.5.50' cmd.run hostname
test-2:
linux-3
# salt -S '192.168.5.0/24' cmd.run hostname
test-2:
linux-3
web-1:
Goun-4
test-1:
linux-2

Saltstack的安装和配置的更多相关文章

  1. 深入解读saltstack的安装及配置1

    安装 一.安装方法:http://www.linuxeye.com/Linux/2765.html 二.建议安装epel后安装saltstack:http://www.a8z8.com/html/20 ...

  2. linux系统下saltstack的安装和配置

    Saltstack是一个新的基础设施管理工具,两大功能:远程执行和配置管理. Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具.由Master和Minion构成,通过Zer ...

  3. SaltStack安装及配置

    1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...

  4. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...

  5. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...

  6. SaltStack自动化安装配置haproxy的Keepalived

    keepalived配置安装 什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb.运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后salt编 ...

  7. Ansible 安装与配置(一)

    公司大概有200多云主机需要进行管理,但是如果通过手工管理费时还累最终结果也容易出错,所以考虑通过自动化的方式来管理云主机,目前开源的自动化工具,大家用的比较多的有Ansible和Saltstack这 ...

  8. saltstack SLS 安装haproxy+nginx实例分析学习

    本文主要以实例的形式去熟悉sls的部署流程及相关模块的使用 文件下载:https://github.com/unixhot/saltbook-code 目录结构 [root@k8s_master sa ...

  9. Saltstack设置安装源为阿里源

    Saltstack设置安装源为官方源有时候在国内网络不好安装较慢或者安装不上,可设置为阿里源 比如对于 Centos 7 系统,在 saltstack 的官网提供的配置初始化手册是: sudo yum ...

随机推荐

  1. 模块化编程node

    众所周知,Node.js 的出现造就了全栈工程师,因为它让 JavaScript 的舞台从浏览器扩大到了服务端 而 Node.js 的强大也得益于它庞大的模块库,所以学习 Node.js 第一步还得从 ...

  2. php面试之数据结构和算法

    二.数据结构和算法 1.使对象可以像数组一样进行foreach循环,要求属性必须是私有.(Iterator模式的PHP5实现,写一类实现Iterator接口)(腾讯) <?php class T ...

  3. centos7 无法启动网络(service network restart)错误解决办法

    centos7 无法启动网络(service network restart)错误解决办法: (以下方法均为网上COPY,同时感谢原博主分享) systemctl status network.ser ...

  4. Python 冒泡法排序

    def sequence(disorder='', separators=''): arrays = disorder.split(separators) def desc(): for i in r ...

  5. gis电子地图开发公司面临的挑战和机遇

    从上个世纪90年代开始电子地图应用就已经收到人们的关注,但是由于时代的局限性和市场经济发展的不成熟.地理信息系统系统的应用并没有得到很好的利用.只有少数的国家机构和军事系统才能够使用这些应用.随着技术 ...

  6. Mysql 的 IF 判断

    mysql自带很多判断逻辑,今天说一说IF的判断语句,正好今天做项目的时候也用到了 1. IF 判断 IF判断和我们代码里面写的有略微的差别,举个例子 IF('表达式','结果1','结果2')  如 ...

  7. 网页设计——6.html其他标签

    今天学习html的其他标签: 一.列表 1.无序列表ul 基本结构: <ul  type="属性值"> <li>列表内容</li> </u ...

  8. log4j2 项目日志组件

    在项目运行过程中,常常需要进行功能调试以及用户行为的跟踪和记录,部分人习惯使用System.out,但这并不建议,它仅仅是使用方便但不便于维护也无扩展性.相比log4j的话,log4j可以控制日志信息 ...

  9. weex加入iconfont

    weex加入图标可能是项目开发中最头疼的事情了,还好有 阿里巴巴矢量图标库解决了开发时的图标问题,下面我们一起来踩坑吧<text class="left"></ ...

  10. mustache.js 使用

    对于mustache模板,我是属于即用即查的方法,以下记录仅是我常用的方式.方便以后使用时不用再去项目中去找,因为真的不好找.(此处 -->serious 脸) 当需要渲染一些数据列表的时候,使 ...