ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

ansible源码分析之第一遍

2019-06-05 10:51:02  阅读:307  来源: 互联网

标签:bin __ 第一遍 lib ansible 源码 setuptools import


源码

git clone https://github.com/ansible/ansible.git

git checkout release1.8.0

切换到1.8.0版本

目录结构

bin目录下面会放一些ansible脚本,也就是我们日常中实现的ansible 命令ansible-playbook

lib目录下就是ansible的核心库。

docs目录下就是一些帮助文档 对应ansible-doc命令的输出

setup.py就是安装工具了。

setup.py

ansible的安装过程都在此目录中定义。一起来看看此源码中的内容把

 1 #!/usr/bin/env python
 2 import os
 3 import sys
 4 from glob import glob
 5 #直接把上面目录结构 lib添加到环境变量中,方便后续直接import
 6 sys.path.insert(0, os.path.abspath('lib'))
 7 from ansible import __version__, __author__
 8 try:
###如果没有安装 下面这些库就直接退出,提示安装 9 from setuptools import setup, find_packages 10 except ImportError: 11 print "Ansible now needs setuptools in order to build. " \ 12 "Install it using your package manager (usually python-setuptools) or via pip (pip install setuptools)." 13 sys.exit(1) 14#定义一下包相关的东西,名字、描述信息、作者、邮箱、官网url、即依赖库、 15 setup(name='ansible', 16 version=__version__, 17 description='Radically simple IT automation', 18 author=__author__, 19 author_email='michael@ansible.com', 20 url='http://ansible.com/', 21 license='GPLv3',
#ansible核心库 paramiko 可以参考https://www.cnblogs.com/Nolover/p/8745446.html中的demo 22 install_requires=['paramiko', 'jinja2', "PyYAML", 'setuptools', 'pycrypto >= 2.6'],
#库和源码映射位置,比如ansible库 对应 lib/ansible 下的源代码。
23 package_dir={ 'ansible': 'lib/ansible' }, 24 packages=find_packages('lib'), 25 package_data={ 26 '': ['module_utils/*.ps1'], 27  },
###把bin下面的几个文件映射车成脚本,这样在linux上就是可执行命令了 28 scripts=[ 29 'bin/ansible', 30 'bin/ansible-playbook', 31 'bin/ansible-pull', 32 'bin/ansible-doc', 33 'bin/ansible-galaxy', 34 'bin/ansible-vault', 35 ], 36 data_files=[], 37 )

 

 

标签:bin,__,第一遍,lib,ansible,源码,setuptools,import
来源: https://www.cnblogs.com/Nolover/p/10978244.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有