全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

ansible作为python模块库使用的方法实例

前言

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

主要包括:

      (1)、连接插件connection plugins:负责和被监控端实现通信;

      (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

      (3)、各种模块核心模块、command模块、自定义模块;

      (4)、借助于插件完成记录日志邮件等功能;

      (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

Asible是运维工具中算是非常好的利器,我个人比较喜欢,可以根据需求灵活配置yml文件来实现不同的业务需求,因为不需要安装客户端,上手还是非常容易的,在某些情况下你可能需要将ansible作为python的一个库组件写入到自己的脚本中,今天的脚本脚本就将展示下ansible如何跟python脚本结合,也就是如何在python脚本中使用ansible,我们逐步展开。

先看第一个例子:

#!/usr/bin/python 
import ansible.runner
import ansible.playbook
import ansible.inventory
from ansible import callbacks
from ansible import utils
import json
 
# the fastest way to set up the inventory
 
# hosts list
hosts = ["10.11.12.66"]
# set up the inventory, if no group is defined then 'all' group is used by default
example_inventory = ansible.inventory.Inventory(hosts)
 
pm = ansible.runner.Runner(
 module_name = 'command',
 module_args = 'uname -a',
 timeout = 5,
 inventory = example_inventory,
 subset = 'all' # name of the hosts group 
 )
 
out = pm.run()
 
print json.dumps(out, sort_keys=True, indent=4, separators=(',', ': '))

这个例子展示我们如何在python脚本中运行如何通过ansible运行系统命令,我们接下来看第二个例子,跟我们的yml文件对接。

简单的yml文件内容如下:

- hosts: sample_group_name
 tasks:
 - name: just an uname
 command: uname -a

调用playbook的python脚本如下:

#!/usr/bin/python 
import ansible.runner
import ansible.playbook
import ansible.inventory
from ansible import callbacks
from ansible import utils
import json
 
### setting up the inventory
 
## first of all, set up a host (or more)
example_host = ansible.inventory.host.Host(
 name = '10.11.12.66',
 port = 22
 )
# with its variables to modify the playbook
example_host.set_variable( 'var', 'foo')
 
## secondly set up the group where the host(s) has to be added
example_group = ansible.inventory.group.Group(
 name = 'sample_group_name'
 )
example_group.add_host(example_host)
 
## the last step is set up the invetory itself
example_inventory = ansible.inventory.Inventory()
example_inventory.add_group(example_group)
example_inventory.subset('sample_group_name')
 
# setting callbacks
stats = callbacks.AggregateStats()
playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY)
runner_cb = callbacks.PlaybookRunnerCallbacks(stats, verbose=utils.VERBOSITY)
 
# creating the playbook instance to run, based on "test.yml" file
pb = ansible.playbook.PlayBook(
 playbook = "test.yml",
 stats = stats,
 callbacks = playbook_cb,
 runner_callbacks = runner_cb,
 inventory = example_inventory,
 check=True
 )
 
# running the playbook
pr = pb.run() 
 
# print the summary of results for each host
print json.dumps(pr, sort_keys=True, indent=4, separators=(',', ': '))

总结

以上就是为大家展示的2个小例子希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# python  # 模块库  # 标准库模块  # ansible  # 入门  # python ansible自动化运维工具执行流程  # python中Ansible模块的Playbook的具体使用  # ansible-playbook实现自动部署KVM及安装python3的详细教程  # Python自动化运维之Ansible定义主机与组规则操作详解  # python自动化之Ansible的安装教程  # python ansible服务及剧本编写  # python将ansible配置转为json格式实例代码  # python开发的自动化运维工具ansible详解  # 多个  # 等功能  # 自己的  # 的是  # 是一个  # 第一个  # 如何在  # 第二个  # 自定义  # 非常好  # 就将  # 可以根据  # 来实现  # 主要包括  # 比较喜欢  # 先看  # 配置文件  # 客户端  # 实现了  # 情况下 


相关文章: 建站之星会员如何解锁更多建站功能?  如何在建站之星绑定自定义域名?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  Android滚轮选择时间控件使用详解  如何高效利用亚马逊云主机搭建企业网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  建站之星安装模板失败:服务器环境不兼容?  如何在景安服务器上快速搭建个人网站?  创业网站制作流程,创业网站可靠吗?  ,交易猫的商品怎么发布到网站上去?  如何选择域名并搭建高效网站?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何制作网站标识牌,动态网站如何制作(教程)?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何撰写建站申请书?关键要点有哪些?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  如何在腾讯云服务器上快速搭建个人网站?  网站制作员失业,怎样查看自己网站的注册者?  如何快速查询网站的真实建站时间?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  简单实现Android验证码  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  建站主机类型有哪些?如何正确选型  常州企业建站如何选择最佳模板?  小型网站制作HTML,*游戏网站怎么搭建?  南宁网站建设制作定制,南宁网站建设可以定制吗?  ppt制作免费网站有哪些,ppt模板免费下载网站?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  如何快速搭建高效可靠的建站解决方案?  建站之星云端配置指南:模板选择与SEO优化一键生成  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  完全自定义免费建站平台:主题模板在线生成一站式服务  再谈Python中的字符串与字符编码(推荐)  如何快速搭建个人网站并优化SEO?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  建站之星如何取消后台验证码生成?  建站之星后台密码遗忘如何找回?  宁波自助建站系统如何快速打造专业企业网站?  制作网站的模板软件,网站怎么建设?  SQL查询语句优化的实用方法总结  ,怎么用自己头像做动态表情包?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  如何挑选优质建站一级代理提升网站排名?  建站之星各版本价格是多少?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  如何通过可视化优化提升建站效果? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。