- Published on
SaltStack实战之manage、salt-ssh和salt jobs
- Authors
- Name
- 老杨的博客
SaltStack 实战之 manage、salt-ssh 和 salt jobs
[TOC]
1. SALT.RUNNERS.MANAGE
Manage 官方文档: https://docs.saltstack.com/en/latest/ref/runners/all/salt.runners.manage.html#module-salt.runners.manage
salt-run manage.up # 显示当前存活的 minion。 salt-run manage.down # 显示当前未存活的 minion。 salt-run manage.down removekeys=True # 显示未存活的 minion,并将其删除。 salt-run manage.status # 显示当前 up 和 down 的 minion。 salt-run manage.vesions # 显示 master 和所有 minion 的版本。
2. salt-ssh
salt-ssh 官方文档: https://docs.saltstack.com/en/latest/topics/ssh/index.html
配置文件/etc/salt/roster
<Salt ID>: # 目标ID
host: # 远程主机的IP地址或者主机名
user: # 可以登录的用户
passwd: # 可以登录用户的密码(可选)
port: # ssh端口
sudo: # 是否运行sudo,设置True或者False
priv: # ssh私钥的路径,默认是/etc/salt/pki/master/ssh/salt-ssh.rsa
timeout: # 连接ssh时的超时时间
salt-ssh 功能 运行原始 shell 调用:-r
[root@salt-master112 keepalived]# salt-ssh '*' -r 'df -h'
node1:
----------
retcode:
0
stderr:
stdout:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_im75-LogVol01
287G 11G 262G 4% /
tmpfs 3.9G 20K 3.9G 1% /dev/shm
/dev/sda1 477M 69M 383M 16% /boot
node2:
----------
retcode:
0
stderr:
stdout:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_im75-LogVol01
287G 9.5G 263G 4% /
tmpfs 3.9G 12K 3.9G 1% /dev/shm
/dev/sda1 477M 69M 383M 16% /boot
[root@salt-master112 keepalived]#
状态管理:同 salt
Target:支持 glob 及正则
3. salt job
官方文档: https://docs.saltstack.com/en/latest/topics/jobs/
以下是常用的 job 相关的方法: saltutil.running
# 查看当前正在运行的 jobs saltutil.find_job
# 查看指定 jid 的 job saltutil.signal_job
# 指定的 jid 进程发送信号 saltutil.term_job
# 终止指定的 jid 进程(信号为 15) saltutil.kill_job
# 终止指定的 jid 进程(信号为 9)
任务运行时,minion 端/var/cache/salt/minion/proc 下存放 jid 临时文件 master 端/var/cache/salt/master/jobs 默认缓存 24 小时
salt-run jobs.active
# 查看所有 minion 当前正在运行的 jobs(在所有 minions 上运行 saltutil.running) salt-run jobs.lookup_jid
# 从 master jobs cache 中查询指定 jid 的运行结果 salt-run jobs.list_jobs
# 列出当前 master jobs cache 中的所有 job
按照官方文档的描述,计划任务有 3 种配置方式,分别是: * 在 master 配置文件中配置 * 在 minion 配置文件中配置 * 在 pillar 中配置
下面介绍 schedule 在 pillar 中的用法: 我的 pillar 文件夹是 /srv/salt/pillar 首先创建一个 /srv/salt/pillar/top.sls
base:
"*"
- schedule
然后创建 /srv/salt/pillar/schedule.sls
schedule:
test-job:
function: cmd.run
seconds: 10
args:
- 'uptime >> /tmp/uptime.log'
这个调度任务的意思是 每隔 10 秒执行uptime
,将结果追加到/tmp/uptime.log
中。
创建完文件之后执行下面的命令把 pillar 的修改刷到 minion 端去
salt "*" saltutil.refresh_pillar
这样就完成了一个简单的计划任务创建。 想查看 minion 端都有哪些计划任务可以用
salt "*" pillar.get schedule
或者
salt "*" config.option schedule