zoukankan      html  css  js  c++  java
  • ansible 自动化(3)

    批量执行playbooks

    远程批量命令执行的另外一种方式是用playbooks;
    这里是playbooks的官方文档:http://docs.ansible.com/playbooks.html
    这里有ansible的playbooks示例:https://github.com/ansible/ansible-examples

    在python中使用ansbile API

    以上执行ansible模块的方式都是在命令行中直接调用,如果对返回结果需要进一步处理,可以在程序中通过API调用的方式来使用ansible模块:
    比如,以上在命令行中调用scripts的模块的方式在API中调用:

    import ansible.runner
    results = ansible.runner.Runner(
    pattern='myservers', forks=5,
    module_name='script', module_args='/opt/app/target.sh',
    ).run()

    这里是官方给出的一个详细示例,直接运行一次,将result全部打印出来,会有直观的了解:

    #!/usr/bin/python
    
    import ansible.runner
    import sys
    
    # construct the ansible runner and execute on all hosts
    results = ansible.runner.Runner(
    pattern='*', forks=10,
    module_name='command', module_args='/usr/bin/uptime',
    ).run()
    
    if results is None:
       print "No hosts found"
       sys.exit(1)
    
    print "UP ***********"
    for (hostname, result) in results['contacted'].items():
    if not 'failed' in result:
    print "%s >>> %s" % (hostname, result['stdout'])
    
    print "FAILED *******"
    for (hostname, result) in results['contacted'].items():
    if 'failed' in result:
    print "%s >>> %s" % (hostname, result['msg'])
    
    print "DOWN *********"
    for (hostname, result) in results['dark'].items():
    print "%s >>> %s" % (hostname, result) 
  • 相关阅读:
    团队作业(三):确定分工
    团队作业(二):项目选题
    团队冲刺DAY3
    团队冲刺DAY4
    团队冲刺DAY6
    团队冲刺DAY1
    团队冲刺DAY5
    团队冲刺DAY7
    团队作业(四):描述设计
    【自学Spring Boot】什么是Spring Boot
  • 原文地址:https://www.cnblogs.com/ligao/p/6207803.html
Copyright © 2011-2022 走看看