Saltstack进阶Tips

本文介绍了SaltStack的一些实用技巧,包括如何使用异步执行解决minion端超时问题,以及如何利用pillar变量根据不同的minion系统版本安装相应的补丁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2017年底做了一个关于saltstack的demo,用到了一些比较方便的tips,简单记录一下。

另外吐槽一下saltstack的官方文档,跟ansible一比,真的很垃圾很不方便,加大了学习saltstack的难度。。。有问题,只能自己多琢磨琢磨,多Google看看了。

(一)异步执行

Saltstack执行命令时,minion端经常因为超时没有返回,通过异步执行,直接返回jobId,再查询job执行结果。

# salt -v "SERVER-01" test.ping
Executing job with jid 20180328113510462472
-------------------------------------------

SERVER-01:
Minion did not return. 

加上异步选项–async:

# salt --async "SERVER-01" test.ping
Executed command with job ID: 20180328113742741120

# salt-run jobs.lookup_jid 20180328113742741120
SERVER-01:
    True

异步操作可以和shell相结合,根据job id查询job执行结果,eg:

res=`salt --async -N targets state.sls multiInstall`
jid=`echo $res | head -1| awk -F ' ' '{print $6}' | tr -d ' '

salt-run jobs.lookup_jid $jid

(二)pillar变量

官网相关链接:https://docs.saltstack.com/en/latest/topics/pillar/
Pillar直接看以下示例:

目录结构:
-srv_dir
    -srv_pillar
        -patch.sls
        -top.sls
    -srv_salt
        -install.sls

pillar文件夹:

#cat top.sls
base:
  '*':
    - patch



#cat patch.sls
patch:
info:
  win2008Id: KB1234567
  win2016Id: KB7654321

调用pillar变量:

#cat multiInstall.sls
multiInstall:
  wua.installed:
    #如果minion的系统是2008R2,就安装KB1234567
    {% if grains['osrelease']  == '2008ServerR2' %}
    - name: {{ salt['pillar.get']('patch:info:win2008Id') }} 
    #如果minion的系统是2016,就安装KB7654321
    {% elif grains['osrelease']  == '2016Server' %}
    - name: {{ salt['pillar.get']('patch:info:win2016Id') }}
    {% endif %}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值