三台主机。一台master,两台minion
主机ip | hostname | 作用 |
---|---|---|
server1(172.25.42.1) | ss1 | master(主节点) |
server2(172.25.42.2) | ss2 | minion(节点1) |
server3(172.25.42.3) | ss3 | minion(节点2) |
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
步骤一:在master 上安装salt-repo文件
master
[root@nn1 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
[root@nn1 yum.repos.d]# yum list salt-master #要求高于3000.2,bug修复了
salt-master.noarch 3000.3-1.el7 salt-latest
[root@nn1 yum.repos.d]# yum install -y salt-master
步骤二:官方镜像下载过慢,换为阿里云镜像
步骤三:此时发现salt-master版本过低,有漏洞,因此换为原本官方镜像
步骤四:配置服务端,客户端
步骤五:设置开机自启动
步骤六:查看端口,发现两个备用端口
在 /etc/salt/master 配置文件中设置端口
步骤七:此时查看进程
发现自动开启了过多进程,但无任何信息
步骤九:在minion端加master的IP
vim /etc/salt/minion #minion配置文件
步骤十:连接
master端和minion端配置好后,查看master端的4505和4506端口,发现4506接收到了来自ss2的连接请求
接收到连接请求后,若允许了,则4505端口收到已经被允许的SS2
salt-key -L 列出连接请求
salt-key -A 允许所有的连接请求
salt-key -a ss2 允许指定主机连接请求
连接后,查询/etc/salt/pki/ 目录下有连接到的SS2主机
在master端可以查看minion端的连接目录已经彼此交换的公钥
此时在已连接的minion端下 /etc/salt/pki/目录下查询目录结构
salt 命令由三个主要部分构成:
salt '' <function> [arguments]
salt 内置执行模块列表:
http://docs.saltstack.cn/ref/modules/all/index.html
查看所连接的minion:ping
* 表全部被允许连接的minion端
* 也可只指定 minion
查看所连接的minion: df -h
-E 表示正则表达式
pkg模块
在 master端 安装、卸载minion(ss2端)的 httpd
ss2 minion端,master端的所有指令都存放该目录下
cat /var/cache/salt
编写模块文件,并同步模块
执行后,master端的操作都缓存在该目录下
规则
缩进:Salt需要每个缩进级别由两个空格组成,不要使用Tabs
冒号:字典的keys在YAML中的表现形式是一个以冒号结尾的字符串
短横杠:想要表示列表项,使用一个短横杠加一个空格。
Salt 状态系统的核心:SLS
sls文件命名:
1.以 .sls 作为后缀,但调用时不需要加后缀
2.使用子目录来做组织是一个很好的选择
3.int.sls 在一个子目录里面表示引导文件,也就表示子目录本身 'apache/init.sls'=='apache'
4.如果同时存在apache.sls 和 apache/init.sls,则apache/init.sls被忽略,apache.sls被用来表示apache
创建sls文件,并指定minion端执行
安装多个软件包
批量执行,TOP文件
# vim /srv/salt/top.sls
base:
'*':
- apache
批量执行
# salt '*' state.highstate