保藏本站 保藏本站
真钱棋牌网主页 - 软件测验 - 常用手册 - 站长东西 - 技能社区
主页 > python > 正文

主页 - PHP - 数据库 - 操作体系 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS指令 - jQuery - CSS款式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

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完结下载整个ftp目录的办法
前语最近由于事务需求,就写了这个脚本,脚本完结的使命是从FTP上下载一个目录,我们都知道从FTP上下载一个文件可用用get指令,下载多个文件能够

详解运用pymysql在python中对mysql的增修改查操作(归纳)
这一次将运用pymysql来进行一次对MySQL的增修改查的悉数操作,相当于对前五次的总结:先查阅数据库:现在编写源码进行增修改查操作,源码为:#!/usr/b

python:socket传输大文件示例
文件能够传输,可是比照传输前后的文件:socket_test.txt,结尾有一些不一致服务端代码:#!/usr/bin/python#-*-coding:utf-8-*-importsysreload(sys)sys.setdefaultencoding("utf

本周排行

更新排行

强悍的草根IT技能社区,这儿应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 ystekkfj.com. All Rights Rreserved  京ICP备05050695号