SaltStack进阶之masterless
1. masterless
1.1 应用场景
- master 与 minion 网络不通或通信有延迟,即网络不稳定
- 想在 minion 端直接执行状态
传统的 SaltStack 是需要通过 master
来执行状态控制 minion
从而实现状态的管理,但是当网络不稳定的时候,当想在minion本地执行状态的时候,当在只有一台主机的时候,想执行状态该怎么办呢?这就需要用到 masterless 了。
有了masterless,即使你只有一台主机,也能玩saltstack,而不需要你有N台主机架构。
1.2 masterless配置
1.2.1 修改minion配置文件
1.安装minion
[root@minion ~]# yum -y install salt-minion
2.修改minion配置文件
[root@minion ~]# vim /etc/salt/minion
.......
#resolved, then the minion will fail to start.
#master: salt //注释掉
.......
file_client: local //取消注释,将值改为local
.......
file_roots: //设置file_roots的路径和环境,可有多套环境
base:
- /srv/salt/
1.2.2 关闭minion服务
//关闭服务
[root@minion ~]# systemctl stop salt-minion
[root@minion ~]# systemctl disable salt-minion
1.2.3 salt-call
[root@minion ~]# salt-call --local cmd.run 'ls /root/'
local:
anaconda-ks.cfg
[root@minion ~]# salt-call --local file.mkdir /root/zyy
local:
True
[root@minion ~]# salt-call --local cmd.run 'uptime'
local:
22:03:34 up 9 min, 2 users, load average: 0.15, 0.21, 0.14
1.2.4 masterless使用状态文件
[root@minion ~]# mkdir -p /srv/salt
[root@minion ~]# cd /srv/salt/
[root@minion salt]# vim install.sls
tree_install:
pkg.installed:
- name: tree
[root@minion salt]# salt-call --local state.sls install
local:
----------
ID: tree_install
Function: pkg.installed
Name: tree
Result: True
Comment: The following packages were installed/updated: tree
Started: 22:09:01.006278
Duration: 7360.747 ms
Changes:
----------
tree:
----------
new:
1.6.0-10.el7
old:
Summary for local
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
Total run time: 7.361 s
[root@minion salt]# rpm -qa | grep tree
tree-1.6.0-10.el7.x86_64