python执行ad_hoc
import shutil
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
import ansible.constants as C def ad_hoc(inventory_fname, hosts, module, args):
Options = namedtuple('Options', ['connection', 'module_path', 'forks', 'become', 'become_method', 'become_user', 'check', 'diff'])
options = Options(connection='ssh', module_path=[''], forks=10, become=None, become_method=None, become_user=None, check=False, diff=False)
loader = DataLoader()
passwords = dict()
inventory = InventoryManager(loader=loader, sources=inventory_fname)
variable_manager = VariableManager(loader=loader, inventory=inventory)
play_source=dict(
name="my ansible play",
hosts=hosts,
gather_facts='no',
tasks=[
dict(action=dict(module=module, args=args), register='shell_out'),
dict(action=dict(module='debug', args=dict(msg='{{shell_out.stdout}}')))
]
)
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=passwords,
)
result = tqm.run(play)
finally:
if tqm is not None:
tqm.cleanup() shutil.rmtree(C.DEFAULT_LOCAL_TMP, True) if __name__ == '__main__':
inventory_fname = ['myansible/hosts']
hosts = "webservers"
module = "shell"
args = "ls -ld /home"
ad_hoc(inventory_fname, hosts, module, args)
ad_hoc(inventory_fname, 'dbservers', module, 'mkdir /tmp/mydemo')
python执行ad_hoc的更多相关文章
- Python执行系统命令的方法 os.system(),os.popen(),commands
os.popen():用python执行shell的命令,并且返回了结果,括号中是写shell命令 Python执行系统命令的方法: https://my.oschina.net/renwofei42 ...
- python执行linux的shell命令
python执行shell脚本常用的方法 import os val=os.system("shell语句") >>> val=os.system(" ...
- python执行mysqldump命令
本文简单讲述如何利用python执行一些sql语句,例如执行mysqldump命令,进行数据库备份,备份成sql文件 #!/usr/bin/python#导入os模块import os#导入时间模块i ...
- python执行shell获取硬件参数写入mysql
最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python ...
- python执行方式及变量
.python执行方式 (1)交互式:调试方便,无法保存代码 (2)命令行方式:可以永久保存代码 (3)python执行阶段 先启动python解释器,解释器像文本编辑器一样将文件内容从硬盘读到内存, ...
- Mysql学习---使用Python执行存储过程
使用Python执行存储过程 使用Python执行存储过程[2部分]: 1.执行存储过程,获取存储过程的结果集 2.将返回值设置给了 @_存储过程名_序号 = #!/usr/bin/env pyt ...
- python执行linux和window的命令
linux: python执行shell脚本常用的方法 import os val=os.system("shell语句") >>> val=os.system ...
- Python执行Linux系统命令方法
Python执行Linux系统命令的4种方法 (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码代码如下: system(command) -> ...
- python执行linux命令的两种方法
python执行linux命令有两种方法: 在此以Linux常用的ls命令为例: 方法一:使用os模块 1 2 3 shell# python >> import os >> ...
随机推荐
- 【解决方法】You seem to have the current working directory in your LD_LIBRARY_PATH environment variable.
参考地址:https://blog.csdn.net/qq_24755999/article/details/78722788 You seem to have the current working ...
- Arm-Linux 移植 QT5.9 带 tslib,QT-creator配置
平台 : Ubuntu 16.04 QT :5.9.8 tslib : 1.4arm-gcc ...
- [Vue]vue-router嵌套路由(子路由)
总共添加两个子路由,分别命名Collection.vue(我的收藏)和Trace.vue(我的足迹) 1.重构router/index.js的路由配置,需要使用children数组来定义子路由,具体如 ...
- (五)Struts之Action类基础(二)
上一章节末((三)Struts之Action类基础(一))介绍了如何获取用户输入数据的获取.接着就是在Struts中怎么把数据响应给用户端,这就必须要求我们把数据放到作用域中,然后才能显示到用户浏览器 ...
- 奇妙的算法【7】-贪婪算法-dp
问题1描述:[贪婪算法,Dijistra算法] ①有一只兔子要从一个N*N的二维矩阵方格中从上跳到下面: ②每次只能向左或向下,越过一个方格,跳到下一个方格中: ③被越过的方格中的数值,表示该兔子越过 ...
- sql 触发器里,发生错误,回滚提示错误语句
SET @msg='错误消息'; RAISERROR(@msg, 16, 1); ROLLBACK TRANSACTION; ...
- windows的一些常用指令
持续更新中..... 1.清除系统内 DNS 的缓冲 : nslookup baidu.com 2.修改hosts文件 : 位置 运行 -> C:/windows/system32/ ...
- Xcode8 1 创建coreData的ManagedObject后,报错 linker command failed with exit code 1
Xcode8 1 创建coreData的ManagedObject后,报错 使用Xcode 8.1 创建coreData的ManagedObject后,报错. duplicate symbol OBJ ...
- extern c 解释
extern "C"修饰的变量和函数是按照c的方式编译的 如果想用c++方式编译c代码,需要特殊标识 方法 #if defined(__cplusplus) || defined( ...
- 4.NIO的非阻塞式网络通信
/*阻塞 和 非阻塞 是对于 网络通信而言的*/ /*原先IO通信在进行一些读写操作 或者 等待 客户机连接 这种,是阻塞的,必须要等到有数据被处理,当前线程才被释放*/ /*NIO 通信 是将这个阻 ...