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://www.cnblogs.com/shhnwangjian/p/6074445.html

salt 执行命令等待_saltstack异步执行命令相关推荐

  1. salt远程执行python脚本_SaltStack远程执行Windows job程序(黑窗口)填坑经过

    近期接到领导通知,要将公司内的所有Windows服务添加到自动发布系统中,由于这种服务很多,节点分布散乱,每次都是由开发主管手动替换(虽然他们自己开发了自动打包替换工具,但仍需要一台一台登陆到服务器上 ...

  2. js等待异步执行完再执行_Spring Boot 之异步执行方法

    前言: 最近的时候遇到一个需求,就是当服务器接到请求并不需要任务执行完成才返回结果,可以立即返回结果,让任务异步的去执行.开始考虑是直接启一个新的线程去执行任务或者把任务提交到一个线程池去执行,这两种 ...

  3. linux flock 命令安装,在Linux上使用flock命令控制程序的异步执行

    最近我常常需要同时ssh给若干台电脑做许多需要等待,而且可以同时进行的工作.例如: 让远端电脑同时更新套件 同时传送小档案给远端的电脑(时间大部分在ssh认证) 然而之后的动作又需要在确认上述工作完毕 ...

  4. linux 脚本的异步执行,shell命令同步异步

    问题:在 shell 下有 A B C D 四个命令,需要先执行 A 再执行 B C 最后执行 D 其中, B C 耗时较多, 但是,互不干扰,可以同步执 子进程 和 wait ./A ./B &am ...

  5. python等待执行完毕 再继续执行_如何等待一个函数内部异步执行完毕再执行另外一个函数?...

    问题描述 有两个函数f1和f2,其中f1中有异步操作,执行完f1接着执行f2,因为f1内部有异步操作,所以会先执行完f2,再执行f1里的异步,如何等待f1异步执行完再执行f2. 备注:执行方式为f1( ...

  6. Linux并行执行权限,如何在Linux中使用flock控制程序的异步执行

    最近我常常需要同时ssh给若干台电脑做许多需要等待,而且可以同时进行的工作.例如: 1.让远端电脑同时更新套件 2.同时传送小档案给远端的电脑(时间大部分在ssh认证) 然而之后的动作又需要在确认上述 ...

  7. typescript 判断异步执行已经结束_vue进阶系列——用typescript玩转vue和vuex

    用过vue的朋友大概对vuex也不陌生,vuex的官方解释是专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. ...

  8. C#异步执行方法的几种方式

    C#异步编程资料 基于任务的异步模式 (TAP) 是基于 System.Threading.Tasks 命名空间中的 System.Threading.Tasks.Task 和 System.Thre ...

  9. php异步处理shell,如何在Linux和Windows环境中使用PHP执行Shell命令而无需等待结果(异步)...

    在许多情况下, 你宁愿使用控制台而不是UI来执行php脚本, 但是在某些情况下, 使用UI是触发操作的唯一方法. 可能你已经知道如何使用PHP执行bash任务, 但是如果你的任务太繁重且完成时间太长怎 ...

最新文章

  1. C#网页自动登录和提交POST信息的多种方法
  2. Django打造在线教育平台_day_4: 找回密码
  3. Python Day8
  4. 启明云端1.54寸串口屏使用经验分享
  5. tomcat.apache startup.bat闪退两种解决方法
  6. MongoDB - 它是什么?从哪里来?
  7. remote API和regular API 的区别
  8. 机器学习笔记(三十二):集成学习、随机森林
  9. 【面向代码】学习 Deep Learning(一)Neural Network
  10. python填充excel单元格颜色_openpyxl给excel填充颜色
  11. 地震勘探原理(二)之时距曲线
  12. 软考-SMTP是什么意思
  13. 管道,Linux命令,Windows命令,cmd命令,tmux,vim,shell,bash,sh文件,bat文件
  14. 微信平台小游戏AVG开发教程入门
  15. C# 下 Webp格式转jpg格式详解
  16. 原生js之 省市区三级联动
  17. 《浪潮之巅》笔记之五
  18. 震惊!2021年数十个技术领域图谱曝光,包含Golang、区块链、人工智能、架构师等领域学习路线
  19. Maven仓库配置中央仓库
  20. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图散点(气泡)组件【2】 - 福建省

热门文章

  1. Console.js:彩蛋和作弊码
  2. Mac下安装及使用rz、sz远程上传下载文件
  3. 无法绑定由多个部分组成的标识符“System.Data.DataRowView”
  4. ASP.NET中网站访问量统计方法
  5. mysql命令行的一些小技巧
  6. nyoj904 search
  7. hdu 2833(Floyd + dp)
  8. hdu 1881 毕业bg
  9. 滴水穿石-05数组排序
  10. [转]Oracle 初始化参数之cursor_sharing