返回顶部
首页 > 资讯 > 后端开发 > Python >ansible作为python模块库使用的方法实例
  • 533
分享到

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

实例模块方法 2022-06-04 18:06:34 533人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

前言 ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命

前言

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个小例子希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

--结束END--

本文标题: ansible作为python模块库使用的方法实例

本文链接: https://lsjlt.com/news/13783.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ansible作为python模块库使用的方法实例
    前言 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命...
    99+
    2022-06-04
    实例 模块 方法
  • python使用xlrd模块读取excel的方法实例
    目录一、安装xlrd模块:二、常用方法:1、导入模块:2、打开文件:3、获取sheet:4、获取sheet的汇总数据:5、单元格批量读取:6、特定单元格读取:7、(0,0)转换A1:...
    99+
    2024-04-02
  • Python 操作Excel-openpyxl模块用法实例
    目录openpyxl 的用法实例1.1 Openpyxl 库的安装使用1.2 Excel 的新建、读取、保存1.2.1 新建保存工作簿(覆盖创建)1.2.2 读取保存工作簿1.2.3...
    99+
    2023-05-19
    Python Excel-openpyxl模块使用 Excel-openpyxl用法
  • python email模块的使用实例
    在使用python过程中,需要用的email模块来进行邮件的发送和接收,包含自定义邮件的中文、主题、日期、附件等信息,以下是我使用email模块来发送一个测试报告相关信息的邮件的例子: #!/usr/bin/python # -*- co...
    99+
    2023-01-31
    实例 模块 python
  • 使用Python中的tkinter模块作图的方法
    python简述: Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。Python[1]已经...
    99+
    2022-06-04
    模块 方法 Python
  • Python使用cookielib模块操作cookie的实例教程
    cookielib是一个自动处理cookies的模块,如果我们在使用爬虫等技术的时候需要保存cookie,那么cookielib会让你事半功倍!他最常见的搭档模块就是python下的urllib和reque...
    99+
    2022-06-04
    实例教程 模块 操作
  • Python中os模块的实例用法
    1、说明 os.path.exists():用于判断某个路径(文件或文件夹)是否存在,若存在则返回True,若不存在则返回False。 os.makedirs():用于创建文件夹。传入所欲创建的文件夹的路径即可,没有...
    99+
    2022-06-02
    Python os模块
  • Python使用yaml模块操作YAML文档的方法
    目录1. YAML简介2. 语法规则3. 文件数据结构4. YAML数据格式示例5. 安装yaml库6. 读取YAML6.1 读取键值对或嵌套键值对6.2 读取数组类型6.3 多文档...
    99+
    2023-01-13
    Python使用yaml模块 Python使用yaml模块操作YAML文档
  • python的numpy模块使用实例分析
    今天小编给大家分享一下python的numpy模块使用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Numpy是Nu...
    99+
    2023-06-30
  • python中elasticsearch_dsl模块的使用方法
    目录前言连接elasticsearchelasticsearch_dsl.Searchquery方法filter方法index方法elasticsearch_dsl.queryela...
    99+
    2024-04-02
  • python中sys模块的使用方法
    小编给大家分享一下python中sys模块的使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted...
    99+
    2023-06-14
  • Python中concurrent.futures模块的使用方法
    这篇文章主要介绍了Python中concurrent.futures模块的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明标准库为我们提供了concurrent...
    99+
    2023-06-15
  • Python中模块的使用--binascii模块用法
    目录binascii模块用法binascii模块和进制转换笔记 Python内置函数binascii模块用法 binascii模块用于在二进制和ASCII之间转换 >...
    99+
    2024-04-02
  • python爬虫urllib库中parse模块urlparse的使用方法
    这篇文章主要介绍了python爬虫urllib库中parse模块urlparse的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在python爬虫urllib库中,u...
    99+
    2023-06-14
  • python argparse模块传参用法实例
    目录前言传入一个参数操作args字典传入多个参数改变数据类型位置参数可选参数默认值必需参数前言 argsparse是python的命令行解析的标准模块,内置于python,不需要安装...
    99+
    2024-04-02
  • python copy模块中的函数实例用法
    1、copy.copy()函数可用于复制列表或字典等可变值,复制后的列表和原列表是两个独立的列表。 import copy origin = [1,2,3] new = copy...
    99+
    2024-04-02
  • python学习pymongo模块的使用方法
    前言: pymongo模块是python操作mongo数据的第三方模块,记录一下自己常用到的简单用法。 首先需要连接数据库: MongoClient():该方法第一个参数是数据库所在...
    99+
    2024-04-02
  • python requests模块的使用示例
    目录为什么使用requests:模拟get请求:模拟请求头部信息模拟post请求requests上传文件requests设置代理time模块设置请求超时retrying模块设置刷新c...
    99+
    2024-04-02
  • Python中用psycopg2模块操作PostgreSQL方法
    其实在Python中可以用来连接PostgreSQL的模块很多,这里比较推荐psycopg2。psycopg2安装起来非常的简单(pip install psycopg2),这里主要重点介绍下如何使用。 安...
    99+
    2022-06-04
    中用 模块 操作
  • Python使用Cv2模块识别验证码的操作方法
    目录业务需求需求分析代码一结果分析 代码二代码模块结果呈现总结经验 参考文献业务需求       &n...
    99+
    2023-01-03
    Python Cv2验证码识别 Python 验证码识别 Python Cv2验证码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作