Ansible python API使用实例

本文介绍了Ansible作为自动化运维工具的Python API使用,重点放在2.6及以上版本。相较于2.0之前的简单API,2.6版本后的API更复杂但更灵活,允许更底层的操作。文章提供了基础的使用指南,帮助开发者理解和应用Ansible的Python接口。
摘要由CSDN通过智能技术生成

Ansible 是一个开源的自动化运维工具,可以实现批量主机命令、脚本等的批量执行,方便快捷,被管理主机不需要部署代理,具体请见官网https://www.ansible.com/

这里简单介绍一下其提供的python API如何使用。Ansible目前已经发布多个版本,不同版本的API变化较大,在2.0的版本以前,ansible的API十分简单。通过大概十几行代码就可以模拟通过ad-hoc的方式运行annsible命令的。但是在2.0及以后的版本,难度突然陡增,与此同时更多的更加底层的东西被开放给一般开发,虽然复杂了,但是也更加灵活了。

2.0以前使用请参考https://www.cnblogs.com/franknihao/p/9009110.html

本文介绍的API是基于ansible 2.6以上。

#!/usr/bin/env python
 
from collections import namedtuple
 
from ansible.executor.task_queue_manager import TaskQueueManager
from ansible.inventory import Inventory
from ansible.parsing.dataloader import DataLoader
from ansible.playbook.play import Play
from ansible.plugins.callback import CallbackBase
from ansible.vars import VariableManager
from ansible.executor.playbook_executor import PlaybookExecutor
 
 
# Create a callback object so we can capture the output
class ResultsCollector(CallbackBase):
 
    def __init__(self, *args, **kwargs):
        super(ResultsCollector, self).__init__(*args, **kwargs)
        self.host_ok = {}
        self.host_unreachable = {}
        self.host_failed = {}
 
    def v2_runner_on_unreachable(self, result):
        self.host_unreachable[result._host.get_name()] = result
 
    def v2_runner_on_ok(self, result, *args, **kwargs):
        self.host_ok[result._host.get_name()] = resul
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值