简单描述ansible的几个元件,比官方简单易懂。官网全文:https://docs.ansible.com/ansible/devel/dev_guide/overview_architecture.html
模块modules
在远端执行的脚本,一般会有输出。
模块实用程序 Module utilities
模块的公共方法。
插件 plugins
在本地执行的脚本,比如对远端输出进行加工。
存货 inventory
资产(主机)清单,可以分组:
[webservers]
www1.example.com
www2.example.com
[dbservers]
db0.example.com
db1.example.com
剧本 playbooks
编排一组节点和工作,举例:
- hosts: webservers
serial: 5 # update 5 machines at a time
roles:- common
- webapp
- hosts: content_servers
roles:- common
- content
多个路径的组件可以被加载使用,如果同名,按如下优先顺序:
Ansible 搜索路径 search path的优先顺序1)命令行的剧本所在目录
如ansible-playbook /path/to/play.yml
则如下路径的组件会被加载:
/path/to/modules
/path/to/module_utils
/path/to/plugins
如play.yml包含 - import_playbook: /path/to/subdir/play1.yml
2)命令行的剧本通过- import_playbook引用的剧本所在目录
则如下路径会被加载:
/path/to/subdir/modules
/path/to/subdir/module_utils
/path/to/subdir/plugins
如果 play.yml运行myrole,Ansible 会附加这些目录(如果它们存在):
3)playbook 引用的角色目录的子目录。
如
/path/to/roles/myrole/modules
/path/to/roles/myrole/module_utils
/path/to/roles/myrole/plugins
示例ansible.cfg字段:
4)ansible.cfg,包括各种插件类型的路径。有关详细信息,请参阅Ansible 配置设置。
DEFAULT_MODULE_PATH
DEFAULT_MODULE_UTILS_PATH
DEFAULT_CACHE_PLUGIN_PATH
DEFAULT_FILTER_PLUGIN_PATH
示例环境变量:
ANSIBLE_LIBRARY
ANSIBLE_MODULE_UTILS
ANSIBLE_CACHE_PLUGINS
ANSIBLE_FILTER_PLUGINS
5) Ansible 发行版的标准目录。
注意:
用户设定会覆盖标准设定。例如,有一个basic.py在用户指定目录中,它将覆盖标准的ansible.module_utils.basic.
如果您在不同的用户指定目录中有多个同名的模块、模块实用程序或插件,则命令行中的命令顺序以及每次运行中包含和角色的顺序都会有影响。