1.主机规划
服务器名称 | 操作系统版本 | 内网IP | 外网IP(模拟) | Hostname | 部署模块 |
---|---|---|---|---|---|
salt100 | CentOS7.5 | 172.16.1.100 | 10.0.0.100 | salt100 | salt-master、salt-minion |
salt01 | CentOS7.5 | 172.16.1.11 | 10.0.0.11 | salt01 | salt-minion |
salt02 | CentOS7.5 | 172.16.1.12 | 10.0.0.12 | salt02 | salt-minion |
salt03 | CentOS7.5 | 172.16.1.13 | 10.0.0.13 | salt03 | salt-minion |
salt 版本
[root@salt100 ~]# salt --version
salt 2018.3.3 (Oxygen)
[root@salt100 ~]# salt-minion --version
salt-minion 2018.3.3 (Oxygen)
job 管理文档
https://docs.saltstack.com/en/latest/topics/jobs/index.html
runner modules文档
Salt runners类似于Salt execution modules,但是前者是在master端执行的,后者是在minion端执行的。
https://docs.saltstack.com/en/latest/ref/cli/salt-run.html
https://docs.saltstack.com/en/latest/ref/runners/index.html
https://docs.saltstack.com/en/latest/ref/runners/all/index.html
execution modules文档
https://docs.saltstack.com/en/latest/ref/modules/all/index.html
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.saltutil.html
注意事项
修改了master或者minion的配置文件,那么必须重启对应的服务。
2. salt-run jobs常用方法
# 返回正在活动中的jobs信息
salt-run jobs.active
# 列出所有可检测的jobs和相关functions
salt-run jobs.list_jobs
# 根据 jid 列出指定的job
salt-run jobs.list_job 20190111160734604439
# 返回以前执行job的打印输出【回看当时job输出的信息】
salt-run jobs.lookup_jid 20190111170928354082
示例信息如下
[root@salt100 ~]# salt-run jobs.active
20190111170928354082:
----------
Arguments:
- df -h && sleep 30
Function:
cmd.run
Returned:
Running:
|_
----------
salt01:
2640
StartTime:
2019, Jan 11 17:09:28.354082
Target:
salt01
Target-type:
glob
User:
root
20190111170930696130:
----------
Arguments:
- whoami && sleep 30
Function:
cmd.run
Returned:
Running:
|_
----------
salt01:
2646
StartTime:
2019, Jan 11 17:09:30.696130
Target:
salt01
Target-type:
glob
User:
root
[root@salt100 ~]# salt-run jobs.lookup_jid 20190111170928354082 # 显示信息如下
salt01:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 2.1G 16G 12% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 911M 12K 911M 1% /dev/shm
tmpfs 911M 9.6M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 183M 0 183M 0% /run/user/1001
3. salt-run manage常用方法
salt的常规管理功能,比如查看哪些hosts上线或下线
salt-run manage.list_state
salt-run manage.alived
salt-run manage.status
salt-run manage.down
salt-run manage.up
salt-run manage.versions
4. saltutil模块
# 返回minion端正在执行salt 进程的数据
salt '*' saltutil.running
# 杀掉指定 jid【jobID】进程
salt '*' saltutil.kill_job 20190111180228662382
示例信息
[root@salt100 ~]# salt '*' saltutil.running
salt03:
salt01:
|_
----------
arg:
- whoami && sleep 300
fun:
cmd.run
jid:
20190111175718092279
pid:
2825
ret:
tgt:
salt01
tgt_type:
glob
user:
root
salt02:
salt100:
[root@salt100 ~]# salt '*' saltutil.kill_job 20190111180228662382
salt03:
salt02:
salt100:
salt01:
Signal 9 sent to job 20190111180228662382 at pid 2882
5. 实战应用
5.1. master执行
[root@salt100 master]# salt 'salt01' cmd.run 'whoami && sleep 300' # 执行后,然后 Ctrl+C 终端
^C
Exiting gracefully on Ctrl-c
This job's jid is: 20190111223139879350
The minions may not have all finished running and any remaining minions will return upon completion. To look up the return data for this job later, run the following command:
salt-run jobs.lookup_jid 20190111223139879350
[root@salt100 master]#
[root@salt100 master]# salt '*' cmd.run 'whoami && sleep 300' # 第二次执行
5.2. 查看当前活动的jobs
通过如下方式查看可知,虽然之前 Ctrl + C 了,但是minion端还是在执行相应的进行。
5.2.1. 方式一
[root@salt100 ~]# salt-run jobs.active
20190111223139879350:
----------
Arguments:
- whoami && sleep 300
Function:
cmd.run
Returned:
Running:
|_
----------
salt01:
3458
StartTime:
2019, Jan 11 22:31:39.879350
Target:
salt01
Target-type:
glob
User:
root
20190111223234549650:
----------
Arguments:
- whoami && sleep 300
Function:
cmd.run
Returned:
Running:
|_
----------
salt02:
2840
|_
----------
salt03:
2835
|_
----------
salt100:
40929
|_
----------
salt01:
3500
StartTime:
2019, Jan 11 22:32:34.549650
Target:
*
Target-type:
glob
User:
root
5.2.2. 方式二
[root@salt100 ~]# salt '*' saltutil.running
salt100:
|_
----------
arg:
- whoami && sleep 300
fun:
cmd.run
jid:
20190111223234549650
pid:
40929
ret:
tgt:
*
tgt_type:
glob
user:
root
salt02:
|_
----------
arg:
- whoami && sleep 300
fun:
cmd.run
jid:
20190111223234549650
pid:
2840
ret:
tgt:
*
tgt_type:
glob
user:
root
salt03:
|_
----------
arg:
- whoami && sleep 300
fun:
cmd.run
jid:
20190111223234549650
pid:
2835
ret:
tgt:
*
tgt_type:
glob
user:
root
salt01:
|_
----------
arg:
- whoami && sleep 300
fun:
cmd.run
jid:
20190111223139879350
pid:
3458
ret:
tgt:
salt01
tgt_type:
glob
user:
root
|_
----------
arg:
- whoami && sleep 300
fun:
cmd.run
jid:
20190111223234549650
pid:
3500
ret:
tgt:
*
tgt_type:
glob
user:
root
5.3. kill 对应的salt进程
[root@salt100 ~]# salt '*' saltutil.kill_job 20190111223139879350
salt02:
salt03:
salt100:
salt01:
Signal 9 sent to job 20190111223139879350 at pid 3458