Ansible API封装

前言

在前面的文章中,我详细的总结了使用Ansible来执行命令和YAML脚本,除了这些外,Ansible还对外提供了Python API接口,以便我们能进行二次开发,也就意味着我们可以通过Python来调用这些接口完成更强大的功能,虽然Ansible现有提供的模块功能已经很强大了,但是我们总有我们个性化的需求,个性化的场景。

很可惜的是,Ansible提供的接口文档缺失的可怜,很多东西只能去靠猜,对于我们作为一个非深度使用者来说,这的确有点痛苦,有点浪费时间,所以这篇文章我就不直接说Ansible的API了,而是介绍一个网上牛人封装的包,通过对Ansible API的封装,提供了非常全面的文档和案例,非常适合我们去把玩。

最可恶的是Ansible API不是向下兼容的,所以找个中间包就很有必要的,这就是我下面要说的ansible-runner包。

ansible-runner介绍

这个包是ansible-runner,主页地址:https://github.com/ansible/an...。这个包对Ansible的API进行了封装,并提供了更简洁的操作方式。对于简单的命令,我们可以这样执行:

import ansible_runner


r = ansible_runner.run(quiet=True, json_mode=True, private_data_dir='/tmp/data', host_pattern='web', module='shell', module_args='free -h')

对于playbook,我们可以这样执行:

import ansible_runner


r = ansible_runner.run(quiet=True, json_mode=True,private_data_dir='/tmp/data', host_pattern='web', playbook='/home/yanggd/ansible/yaml/whenTest.yaml')

总之就是很简单,用起来很舒服的那种。

总结

一开始,我还在努力的研究原生的API,但是越看越恶心,文档不齐全,只能这里收集一点,那里看一点,完全没法系统的学习,后来索性就直接放弃了,就直接看ansible-runner,好东西,值得推荐。


人生是个圆,有的人走了一辈子也没有走出命运画出的圆圈,其实,圆上的每一个点都有一条腾飞的切线。

c22e6a89f17edc02bf80c098f4492c54.jpeg

玩代码、玩技术

长按识别二维码,关注“果冻想”

如果觉得还不错,可以点个“在看”哦~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值