ansible代码分析第一篇--主文件—ansible分析

2016年2月23日,学习,分析ansible代码

ansible是一种运维中使用的批量部署的工具,它本身是一种框架,具体的部署和架构分析,下面这篇文章讲的不错。

http://os.51cto.com/art/201409/451927_all.htm

首先分析主文件ansible,代码和注释如下:

1、 from __future__ import (absolute_import, division, print_function)
2、 __metaclass__ = type

3、 __requires__ = [‘ansible‘]

第一行引入了3个模块,具体的作用如下

absolute_import  使用相对或绝对路径来导入模块,参考这篇文章: http://taoyh163.blog.163.com/blog/static/1958035620074111276292/

division   精确除法, 参考这篇文章: http://www.cnblogs.com/feixingfei/archive/2011/12/18/2297596.html

print_function  打印函数

这行中的__future__是python语法, 解释如下:

Python提供了__future__模块,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。详见:

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820023084e5263fe54fde4e4e8616597058cc4ba1000

第二行感觉解释挺复杂,可以参考这篇文章:

http://www.cnblogs.com/huangcong/archive/2011/08/28/2156307.html   3.2部分

第三行是判断依赖库,依赖文件都是在ansible这个目录下面

try:
    import pkg_resources
except Exception:
    pass

原来代码里有英文解释,说是引入这个包保证库版本和路径的准确,暂时这么理解吧。

import os
import sys
import traceback
 
from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError
from ansible.utils.display import Display
from ansible.utils.unicode import to_unicode

引入了常用的包

class LastResort(object):
    def display(self, msg):
        print(msg, file=sys.stderr)
 
    def error(self, msg, wrap_text=None):
        print(msg, file=sys.stderr)

定义了一个类,最后输出结果排序。

时间: 2024-12-07 05:34:44

ansible代码分析第一篇--主文件—ansible分析的相关文章

实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析

转自:http://www.cnblogs.com/fengyun99/p/3541249.html 关于XMPP组件的文章,先休息两天,好歹已经完整的写了一份. 这两天,先实现一套关于web微信扫描二维码页面登录的试验,因为这种模式在我们的很多业务场景里大有前途. 首先介绍一下web微信登录的过程 手机必须运行微信,并且合法登录 打开web微信的页面,展示一个二维码 用手机微信的扫描功能扫描该二维码 页面立即显示手机已扫描 手机显示是否确认登录,点击确认 页面登录 这个过程将传统的web登录转

Mysql索引优化分析-第一篇

1.性能下降SQL慢 执行时间长 等待时间长 查询语句写的烂 索引失效(单值,复合) 关联查询太多join(设计缺陷或不得已的需求) 服务器调优及各个参数设置(缓冲\线程数等) 2.常见通用的join查询 2.1SQL执行顺序 2.1.1手写 2.1.2机读 2.1.3总结 2.2Join图 2.3建表SQL 2.4 7种Join 3.索引简介 3.1什么是索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构. 可以得到索引的本质:索引是数据结构 可以简单

对volley的初步分析第一篇

进入android世界已经快要两年了,放眼望去,在这两年的android世界里,自己多少也成长了点,一路上磕磕碰碰,即使现在的我还是android学术界里最垫底的那一位,但还是阻挡不了我对未来android世界的探索的脚步,自从上次我坚定不移的辞掉了我的工作后,我发现这真的是我做得最正确的决定没有之一,我不知道当初我为什么要这么做,但是我只知道我耳边有这么个声音告诉我,世界那么多大,你真的该去看看了,我不想每天就码着烂掉牙的几行代码,一些被自己反复使用的封装的工具类,最可怕的是自己完全没有推陈出

《梦断代码》第一篇总结

第0章讲述了作者年少时迷恋一款游戏,在这个游戏上可以自己打补丁,可以改造游戏的设计模式:当他年老一些时,他的一个项目濒临绝境,不计时间的去完善要发布的站点第一个版本:之后科技兴盛发展,人们发现目前用的是软件时间:每学习.使用一种编程语言后,都以“Hello World”作为第一个程序,虽然这程序一无所用,但是可以起到鼓励作用:软件就是麻烦一堆,我们对软件的需求,远甚于对它的仇恨,所以我们梦想着更新更好的东西. 第1篇写一个Chandler团队开会议时提到完成版本更新的时间不够,大家都要死定了来开

U-BOOT-2016.07移植 (第一篇) 初步分析

U-BOOT-2016.07移植 (第一篇) 初步分析 目录 U-BOOT-201607移植 第一篇 初步分析 目录 编译和移植环境 更新交叉编译工具 1 下载arm-linux-gcc 443 2 安装arm-linux-gcc 443 安装环境Ubuntu 910 下载u-boot-201607并解压 分析顶层Makefile 1 找出目标依赖关系 2 总结 初次编译u-boot 1 配置 2 编译 分析u-boot启动流程 1 分析startS 2 分析crt0S 3 总结 1. 编译和移

QQ2010协议分析系列(二) - 登录之第一篇(0x0091)

QQ2010协议分析第一篇 测试QQ:597789809 昵称:浪子无情 尝试QQ服务器IP:112.95.240.125 client IP:222.35.174.5(我的外网IP) 密码:这个算了吧 Send: 看到下面的数字很迷茫吧,不用着急,我慢慢解释 下面的文本是HEX字符串,是常用网络16进制文本方式. QQ常用消息包结构: 包头:02 //表示包的开头 1F 57 //QQ版本代码,这里表示QQ2010sp3版本 00 91 //包命令 58 16      //这个不是固定的,表

第一篇:SOUI是什么?

概述 用C++做产品最痛苦的是什么?肯定是做UI. SOUI的使命就是把痛苦的UI变化成快乐的UI. 什么?UI还能快乐?脑子进水了吗? 当你看完这个系统教程的时候相信你面对UI至少不会再痛苦.你可以对于PM说,UI?Just SO SO! 闲话少说,进入正题. SOUI是什么?SOUI是启程软件(其实就是我个人了,:)开发的一个C++ DirectUI库. 虽然DirectUI不是什么新技术,但是要把UI做好,DirectUI确实是目前为止最有效的解决方案. SOUI不是一个新项目,它是基于本

Matrix源码分析之第一篇

Matrix源码分析之第一篇 概述 前几天腾讯将一款Android应用性能监控的框架matrix开源了,源码地址在https://github.com/Tencent/matrix,作者是微信终端团队.matrix到底是什么?据官方说法如下:Matrix 是一款微信研发并日常使用的 APM(Application Performance Manage),当前主要运行在 Android 平台上. Matrix 的目标是建立统一的应用性能接入框架,通过各种性能监控方案,对性能监控项的异常数据进行采集

第一篇博客--记面陌陌科技计算机视觉算法工程师被刷经历(附面试过程中被问倒的一些算法题分析)

求职季,真的会让一个人变得有些不一样吧,比如我,对于一个菜鸟来说,最近一段时间焦虑不安外加有点自闭... 前段时间在校内网上看到了陌陌科技内推计算机视觉算法工程师和机器学习算法工程师的消息,抱着试试的心态整理了一份简历按照提供的邮箱投出去了,我想这次应该又是石沉大海了吧,谁想在一周前闷热的一天在嘈杂的餐厅接到了陌陌科技HR的电话,一周后的周五下午4点在西安的一家咖啡馆参加面试.我问清了时间地点并道谢了HR后并挂了电话继续吃饭. 好吧,这周每天都有各个公司的笔试,外加这周周五上午的组会轮到我做组会