Saltstack_使用指南13_runner的job和manage与execution的saltutil
1. 主机规划
salt 版本
1 [root@salt100 ~]# salt --version 2 salt 2018.3.3 (Oxygen) 3 [root@salt100 ~]# salt-minion --version 4 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端执行的。
1 https://docs.saltstack.com/en/latest/ref/cli/salt-run.html 2 https://docs.saltstack.com/en/latest/ref/runners/index.html 3 https://docs.saltstack.com/en/latest/ref/runners/all/index.html
execution modules文档
1 https://docs.saltstack.com/en/latest/ref/modules/all/index.html 2 https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.saltutil.html
注意事项
修改了master或者minion的配置文件,那么必须重启对应的服务。
2. salt-run jobs常用方法
1 # 返回正在活动中的jobs信息 2 salt-run jobs.active 3 # 列出所有可检测的jobs和相关functions 4 salt-run jobs.list_jobs 5 # 根据 jid 列出指定的job 6 salt-run jobs.list_job 20190111160734604439 7 # 返回以前执行job的打印输出【回看当时job输出的信息】 8 salt-run jobs.lookup_jid 20190111170928354082
示例信息如下
1 [root@salt100 ~]# salt-run jobs.active 2 20190111170928354082: 3 ---------- 4 Arguments: 5 - df -h && sleep 30 6 Function: 7 cmd.run 8 Returned: 9 Running: 10 |_ 11 ---------- 12 salt01: 13 2640 14 StartTime: 15 2019, Jan 11 17:09:28.354082 16 Target: 17 salt01 18 Target-type: 19 glob 20 User: 21 root 22 20190111170930696130: 23 ---------- 24 Arguments: 25 - whoami && sleep 30 26 Function: 27 cmd.run 28 Returned: 29 Running: 30 |_ 31 ---------- 32 salt01: 33 2646 34 StartTime: 35 2019, Jan 11 17:09:30.696130 36 Target: 37 salt01 38 Target-type: 39 glob 40 User: 41 root 42 [root@salt100 ~]# salt-run jobs.lookup_jid 20190111170928354082 # 显示信息如下 43 salt01: 44 Filesystem Size Used Avail Use% Mounted on 45 /dev/sda3 18G 2.1G 16G 12% / 46 devtmpfs 901M 0 901M 0% /dev 47 tmpfs 911M 12K 911M 1% /dev/shm 48 tmpfs 911M 9.6M 902M 2% /run 49 tmpfs 911M 0 911M 0% /sys/fs/cgroup 50 /dev/sda1 197M 113M 85M 58% /boot 51 tmpfs 183M 0 183M 0% /run/user/1001
3. salt-run manage常用方法
salt的常规管理功能,比如查看哪些hosts上线或下线
1 salt-run manage.list_state 2 salt-run manage.alived 3 salt-run manage.status 4 salt-run manage.down 5 salt-run manage.up 6 salt-run manage.versions
4. saltutil模块
1 # 返回minion端正在执行salt 进程的数据 2 salt '*' saltutil.running 3 # 杀掉指定 jid【jobID】进程 4 salt '*' saltutil.kill_job 20190111180228662382
示例信息
1 [root@salt100 ~]# salt '*' saltutil.running 2 salt03: 3 salt01: 4 |_ 5 ---------- 6 arg: 7 - whoami && sleep 300 8 fun: 9 cmd.run 10 jid: 11 20190111175718092279 12 pid: 13 2825 14 ret: 15 tgt: 16 salt01 17 tgt_type: 18 glob 19 user: 20 root 21 salt02: 22 salt100: 23 [root@salt100 ~]# salt '*' saltutil.kill_job 20190111180228662382 24 salt03: 25 salt02: 26 salt100: 27 salt01: 28 Signal 9 sent to job 20190111180228662382 at pid 2882
5. 实战应用
5.1. master执行
1 [root@salt100 master]# salt 'salt01' cmd.run 'whoami && sleep 300' # 执行后,然后 Ctrl+C 终端 2 ^C 3 Exiting gracefully on Ctrl-c 4 This job's jid is: 20190111223139879350 5 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: 6 7 salt-run jobs.lookup_jid 20190111223139879350 8 [root@salt100 master]# 9 [root@salt100 master]# salt '*' cmd.run 'whoami && sleep 300' # 第二次执行
5.2. 查看当前活动的jobs
通过如下方式查看可知,虽然之前 Ctrl + C 了,但是minion端还是在执行相应的进行。
5.2.1. 方式一
1 [root@salt100 ~]# salt-run jobs.active 2 20190111223139879350: 3 ---------- 4 Arguments: 5 - whoami && sleep 300 6 Function: 7 cmd.run 8 Returned: 9 Running: 10 |_ 11 ---------- 12 salt01: 13 3458 14 StartTime: 15 2019, Jan 11 22:31:39.879350 16 Target: 17 salt01 18 Target-type: 19 glob 20 User: 21 root 22 20190111223234549650: 23 ---------- 24 Arguments: 25 - whoami && sleep 300 26 Function: 27 cmd.run 28 Returned: 29 Running: 30 |_ 31 ---------- 32 salt02: 33 2840 34 |_ 35 ---------- 36 salt03: 37 2835 38 |_ 39 ---------- 40 salt100: 41 40929 42 |_ 43 ---------- 44 salt01: 45 3500 46 StartTime: 47 2019, Jan 11 22:32:34.549650 48 Target: 49 * 50 Target-type: 51 glob 52 User: 53 root
5.2.2. 方式二
1 [root@salt100 ~]# salt '*' saltutil.running 2 salt100: 3 |_ 4 ---------- 5 arg: 6 - whoami && sleep 300 7 fun: 8 cmd.run 9 jid: 10 20190111223234549650 11 pid: 12 40929 13 ret: 14 tgt: 15 * 16 tgt_type: 17 glob 18 user: 19 root 20 salt02: 21 |_ 22 ---------- 23 arg: 24 - whoami && sleep 300 25 fun: 26 cmd.run 27 jid: 28 20190111223234549650 29 pid: 30 2840 31 ret: 32 tgt: 33 * 34 tgt_type: 35 glob 36 user: 37 root 38 salt03: 39 |_ 40 ---------- 41 arg: 42 - whoami && sleep 300 43 fun: 44 cmd.run 45 jid: 46 20190111223234549650 47 pid: 48 2835 49 ret: 50 tgt: 51 * 52 tgt_type: 53 glob 54 user: 55 root 56 salt01: 57 |_ 58 ---------- 59 arg: 60 - whoami && sleep 300 61 fun: 62 cmd.run 63 jid: 64 20190111223139879350 65 pid: 66 3458 67 ret: 68 tgt: 69 salt01 70 tgt_type: 71 glob 72 user: 73 root 74 |_ 75 ---------- 76 arg: 77 - whoami && sleep 300 78 fun: 79 cmd.run 80 jid: 81 20190111223234549650 82 pid: 83 3500 84 ret: 85 tgt: 86 * 87 tgt_type: 88 glob 89 user: 90 root
5.3. kill 对应的salt进程
1 [root@salt100 ~]# salt '*' saltutil.kill_job 20190111223139879350 2 salt02: 3 salt03: 4 salt100: 5 salt01: 6 Signal 9 sent to job 20190111223139879350 at pid 3458
——————END——————