Saltstack异步执行命令(十三)
Saltstack异步执行命令
salt执行命令有时候会有超时的问题,就是命令下发下去了,部分主机没有返回信息,这时候就很难判断命令或任务是否执行成功。因此,salt提供异步执行的功能,发出命令后立即返回一个jid。然后我们就可以根据这个jid来查询任务是否执行成功。
命令行实现异步
参数--async,返回job ID,根据job ID我们可以查询执行结果。
salt --async '*' test.ping

salt-run jobs.lookup_jid 20161117163153353501

-v参数在返回结果的同时,一同返回本次任务的jid,如果超时还是会返回jid
salt -v '*' test.ping

API实现异步
任务执行代码样例,通过async方法执行异步命令获取返回job id,通过job方法查看执行结果。
import requests
import json def async(fun, tgt):
"""
异步任务,获取jid
"""
params = {'client': 'local_async', 'fun': fun, 'tgt': tgt}
headers = {'X-Auth-Token': 登陆时获取的token}
try:
ret = requests.post(https://ip:port/, data=params, headers=headers, verify=False)
ret = json.loads(ret.text)
return ret['return'][0]['jid']
except Exception as err:
print err def jobs_all(jid=None):
"""
job_id=None, 查看salt cache中所有的job任务的执行结果
job_id传值时,查看指定job id的执行结果
"""
headers = {'X-Auth-Token': 登陆时获取的token}
try:
if jid is None:
ret = requests.get(https://ip:port/jobs, headers=headers, verify=False)
else:
ret = requests.get('https://ip:port/jobs' + jid, headers=headers, verify=False)
ret = json.loads(ret.text)
return ret
except Exception as err:
logger.error(err) jid = async('test.ping', '*')
jobs_all()
jobs_all(jid=jid)
查看官方文档获取详细帮助 https://docs.saltstack.com/en/latest/ref/netapi/all/salt.netapi.rest_cherrypy.html#id1
Saltstack异步执行命令(十三)的更多相关文章
- Python开发程序:RPC异步执行命令(RabbitMQ双向通信)
RPC异步执行命令 需求: 利用RibbitMQ进行数据交互 可以对多台服务器进行操作 执行命令后不等待命令的执行结果,而是直接让输入下一条命令,结果出来后自动打印 实现异步操作 不懂rpc的请移步h ...
- Python开发【项目】:RPC异步执行命令(RabbitMQ双向通信)
RPC异步执行命令 需求: 利用RibbitMQ进行数据交互 可以对多台服务器进行操作 执行命令后不等待命令的执行结果,而是直接让输入下一条命令,结果出来后自动打印 实现异步操作 不懂rpc的请移步h ...
- Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar
一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...
- saltstack远程执行命令.md
saltstack 支持在master上向client 远程执行命令,并显示命令执行的结果 命令格式: salt '<操作目标>' <方法> [参数] 示例 示例1 ping检 ...
- 利用 Saltstack 远程执行命令
Saltstack的一个比较突出优势就是具备执行远程命令的功能. 操作方法与func (https://fedorahosted.org/func/)相似,可以帮助运维人员完成集中化的操作平台. ht ...
- Saltstack系列2:Saltstack远程执行命令
命令 命令格式: salt '<操作目标>' <方法>[参数] 例: salt 'wx' cmd.run 'free -m' #查看被控主机内存使用情况 常用参数 针对< ...
- SilkTest高级进阶系列9 – 异步执行命令
我们常常会使用sys_execute函数执行一些外部的程序或者命令来做一些事情,但是由于sys_execute是一个同步的函数,它会等待执行的命令完成后才会返回.在大多数情况下,这个函数足够用了. 但 ...
- SaltStack远程执行命令
编辑fansik_cmd.sls文件: 内容如下: fansik_cmd: cmd.run: - unless: - test -f /tmp/fansik.txt - t ...
- 用python登录远程salt,并执行命令
用python操作saltstack,如果是在本地,则可以用python的salt模块,但如果要操作远程saltstack,则不行,今天就来看看怎么操作. 用python操作远程的saltstack, ...
随机推荐
- ModernUI教程:使用WPF4.0
Modern UI 同时支持WPF4.0和4.5.下载包中包含了这两个版本的程序集.当你使用Nuget下载时,会根据你选择的运行时版本自动选择对应的版本下载.而Visual Studio2012的模板 ...
- SNMP 原理与实战详解
原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...
- C 语言学习的第 03 课:你的 idea 是怎么变成能够执行的程序的
在上一篇文章中,我们说到,C 语言系统应该由程序开发环境,C 语言本身和 C 语言的库组成.且同时说了程序开发环境做了“编写”,“预处理”,“编译”和“链接”这几件事情.但是细节并没有一一呈现.不知道 ...
- js滚动到底部事件
window.innerHeight表示窗口高度 $(document).height()返回文档高度 $(document).scrollTop()返回滚动条与顶部的距离,在最上部时为0,在最下部时 ...
- [转]run for a girl
上了四个星期决不情愿的自习,终于找到了她上自习的规律, 每个星期五肯定在主教楼525第三排中间,其实第一眼看见她已经喜欢她了,在她周围坐了十天之后更觉得她是我喜欢的那种女孩, (不是每天都能见到她), ...
- 【Javascript】好用的js弹层插件,layerUI
官网:layerUI 中文手册:layerAPI
- Linux下安装libiconv使php支持iconv函数
libiconv组件安装好了可以让我们php支持iconv函数了,这个函数的作用就是字符编码强制转换了,下面和111cn小编一起来看一个Linux中安装libiconv使php支持iconv函数的例子 ...
- PHP之function_handling 函数
function_handling 函数 function_handling 函数 需求: 编写一个函数,传入的参数个数不确定,请求出其和. 使用到 以下几个函数: 代码说明: 函数的参数可以是另外一 ...
- Java--笔记(3)
21.当涉及到继承时,按照如下顺序执行: (1).执行父类的静态代码块 (2).执行子类的静态代码块 (3).执行父类的构造代码块 (4).执行父类的构造函数 (5).执行子类的构造代码块 (6).执 ...
- 如何配置全世界最小的 MySQL 服务器
配置全世界最小的 MySQL 服务器——如何在一块 Intel Edison 为控制板上安装一个 MySQL 服务器. 介绍 在我最近的一篇博文中,物联网,消息以及 MySQL,我展示了如果 Part ...