码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-02-23 11:10:52      阅读:1714      评论:0      收藏:0      [点我收藏+]

标签:

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)

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

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

标签:

原文地址:http://www.cnblogs.com/xielinux/p/5209010.html

(5)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!