A-A+

Ansible Python API

2014年10月20日 Python 暂无评论 阅读 26,073 views 次

以下是ansible api简单的示例:

vim aa.py

  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. import json
  4. aa={
  5.         "AA" : {
  6.                 "hosts" : ['192.168.0.41']
  7.             }
  8.         }
  9. print json.dumps(aa)

aa.py是一个Dynamic Inventory脚本,当然,也可以不用这个脚本,直接用ansible默认的hosts就行 关于Dynamic Inventory可以参考:http://www.linuxyw.com/388.html   以下是ansible python api脚本 vim bb.py

  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. import ansible.runner
  4. aa = ansible.runner.Runner(
  5.         module_name = 'shell',        #调用shell模块,这个代码是为了示例执行shell命令
  6.         module_args = 'hostname',     #shell命令
  7.         host_list = 'aa.py',          #host文件路径,我这调用的是dynamic inventory脚本,
  8.         pattern = 'AA',               #host组名,需要执行shell命令的ip组,AA是在上面aa.py中定义的
  9.         )                             #其它没写的参数,都为是系统默认的
  10. bb = aa.run()
  11. print bb

 


 

脚本执行结果:

{'dark': {}, 'contacted': {u'192.168.0.41': {u'cmd': u'hostname', u'end': u'2014-10-20 10:17:55.703254', u'stdout': u'drfdai2', u'changed': True, u'start': u'2014-10-20 10:17:55.697105', u'delta': u'0:00:00.006149', u'stderr': u'', u'rc': 0, 'invocation': {'module_name': 'shell', 'module_args': 'hostname'}}}}

 

返回的stdout对应的value就是我们要的shell结果

给我留言

Copyright © linux系统运维 保留所有权利.   Theme  Ality 粤ICP备13023035号-1

用户登录

分享到: