ansible api调用

例子:
#!/usr/bin/python
import json
from collections import namedtuple
from ansible.parsing.dataloader import DataLoader
from ansible.vars.manager import VariableManager
from ansible.inventory.manager import InventoryManager
from ansible.playbook.play import Play
from ansible.executor.task_queue_manager import TaskQueueManager
from ansible.executor.task_result import TaskResult
from ansible.plugins.callback import CallbackBase

class ResultCallback(CallbackBase):
	def v2_runner_on_ok(self, result, **kwargs):
		host = result._host
		print(json.dumps({host.name: result._result}, indent=4))

Options = namedtuple(‘Options‘, [‘connection‘, ‘module_path‘, ‘forks‘, ‘become‘, ‘become_method‘, ‘become_user‘, ‘check‘, ‘diff‘])
loader = DataLoader()
options = Options(connection=‘smart‘, module_path=None, forks=2, become=None, become_method=None, become_user=None, check=False, diff=False)
#connection参数,如果执行本地节点用‘local‘, 远端节点用‘smart‘
#passwords = dict(vault_pass=‘xxxxx‘)    #密钥方式取消这步
results_callback = ResultCallback()

inventory = InventoryManager(loader=loader, sources=[‘hosts‘])
variable_manager = VariableManager(loader=loader, inventory=inventory)
#variable_manager.set_inventory(inventory)

play_source = dict(
	name = "Ansible Play",
	hosts = ‘webserver‘,
	gather_facts = ‘no‘,
	tasks = [
		dict(action=dict(module=‘shell‘, args=‘df -Th‘), register=‘shell_out‘),
	]
)

play = Play().load(play_source, variable_manager=variable_manager, loader=loader)

tqm = None
try:
	tqm = TaskQueueManager(
		inventory=inventory,
		variable_manager=variable_manager,
		loader=loader,
		options=options,
		passwords=None,
		stdout_callback=results_callback,
		)
	result = tqm.run(play)
	print(result)
finally:
	if tqm is not None:
		tqm.cleanup()
时间: 2024-11-01 15:56:40

ansible api调用的相关文章

Facebook Oauth2.0 API调用方法

这些天搞了下Facebook API的东东,在官方网站下弄了一些接口,下面简单的把facebook的调用流程以及常用接口书序一下 :-)  当然在使用facebook api之前要有facebook账号以及在facebook上注册一个自己的应用  1.登录鉴权 https://graph.facebook.com/oauth/authorize?client_id=8888888888888&redirect_uri=http://www.mywebsite.com&scope=user_

PHP实现人人OAuth登录和API调用

人人开放平台给出的PHP SDK,个人感觉写的不怎么样,而且在我的电脑上运行不出来,总是113错误,查文档竟然还没有这个错误码,于是只好自己按照官方给出的文档,用PHP自己实现了一下.代码如下文,没有作封装,只是走了一下流程.如果是仅仅用于人人连接这样的登录验证和简单的API调用,也不是很有必要封装.作为使用人人API的一个PHP示范吧.自己写代码的过程中也参考了官网的SDK代码和DEMO代码. 说明: 1.使用了HttpClient类发起Get和Post请求,文件下载地址http://scri

翻译api调用

<?php function language($value,$from="auto",$to="auto") { $value_code=urlencode($value); #首先对要翻译的文字进行 urlencode 处理 $appid="YourApiKey"; #您注册的API Key $languageurl = "http://openapi.baidu.com/public/2.0/bmt/translate?cl

(转)Sphinx中文分词安装配置及API调用

这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂时不要选择原版Sphinx(对中文的支持不是很好).又因为服务器所用 MySQL在当时编译时并没有编译Sphinx扩展,而重新编译MySQL并加入Sphinx暂时又无法实现(项目用到了多台服务器,在不影响现有业务的 情况下不可能去重新编译MySQL的),所以采用的是程序通过API来外部调用Sphin

Hbase java API 调用详解

Hbase java API 调用 一. hbase的安装 参考:http://blog.csdn.net/mapengbo521521/article/details/41777721 二.hbase访问方式 Native java api:最常规最高效的访问方式. Hbase shell:hbase的命令行工具,最简单的接口,适合管理员使用 Thrift gateway:利用thrift序列化结束支持各种语言,适合异构系统在线访问 Rest gateway:支持rest风格的http api

spark2.x由浅入深深到底系列六之RDD java api调用scala api的原理

RDD java api其实底层是调用了scala的api来实现的,所以我们有必要对java api是怎么样去调用scala api,我们先自己简单的实现一个scala版本和java版本的RDD和SparkContext 一.简单实现scala版本的RDD和SparkContext class RDD[T](value: Seq[T]) {   //RDD的map操作   def map[U](f: T => U): RDD[U] = {     new RDD(value.map(f))   

VC++中用API调用对话框资源

关键技术: 对于资源的载入须要几个API函数,以下分别介绍这几个API函数. a) FindResource 用来在一个指定的模块中定位所指的资源,语法例如以下: HRSRC FindResource(HMODULE hModule, LPCRSTR lpName, LPCTSTR lpType); 參数说明: (1)hModule: 包括所须要的资料的模块句柄.假设是程序本身,则能够设置为NULL; (2)lpName: 能够使资源名称或者资源ID. (3)lpType:资源类型.在这里也就是

阿里云api调用做简单的cmdb

阿里云api调用做简单的cmdb 1 步骤 事实上就是调用阿里api.获取可用区,比方cn-hangzhou啊等等.然后在每一个区调用api 取ecs的状态信息,最好写到一个excel里面去.方便排序排版. 2 示意图 3 源代码 https://github.com/gqdw/cmdb/tree/master

xmprpc实现bugzilla api调用(无会话保持功能,单一接口请求)

xmprpc实现bugzilla4   xmlrpc api调用(无会话保持功能,单一接口请求),如需会话保持,请参考我的另外一篇随笔(bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能 (2015-06-08 18:53)) 第一步: 在pom.xml中导入 (如果不是maven工程,直接去下载jar包引入即可) <dep