ansible 最佳实践2 — 项目目录
0 条评论当 Inventory 以及角色比较庞大的时候,为了方便管理和维护,推荐使用官方建议的目录结构来组织很多 role 和 playbook 文件。
- 如果用 role 封装了playbook,并且任务依赖文件或者依赖其它的任务时,建议使用目录结构管理。
- 假如是一个简单的独立任务,只使用playbook文件即可,这样方便在其它地方进行引用。
# 下面是官网最佳实战中推荐的目录结构
project/
├── production # 生产环境服务器的资产清单文件
├── devlop # 开发环境的资产清单文件
├── test # 测试环境的资产清单文件
├── group_vars/
│ ├── group1 # 组 group1 的变量文件
│ └── group2 # 组 group2 的变量文件
├── host_vars/
│ ├── hostname1 # 主机 hostname1 定义的变量文件
│ └── hostname2 # 主机 hostname2 定义的变量文件
├── library/ # 如果有自定义模块,放在此目录下
├── filter_plugins/ # 如果有自定义的过滤插件,放在此目录下
├── site.yml # 运行 playbook 的统一入口文件
├── webservices.yml # 特殊任务的 playbook
├── dbservices.yml # 特殊任务的 playbook
├── roles/ # role存放目录
│ ├── common/ # common 角色目录
│ │ ├── tasks/
│ │ │ └── main.yml
│ │ ├── handles/
│ │ │ └── main.yml
│ │ ├── templates/
│ │ │ └── xxx.conf.j2
│ │ ├── files/
│ │ │ ├── xxx.sh
│ │ │ └── xxx.py
│ │ ├── vars/
│ │ │ └── main.yml # common 角色定义的变量文件
│ │ ├── defaults/
│ │ │ └── main.yml # common 角色定义的默认变量文件(优先级低)
│ │ └── meta/
│ │ └── main.yml
│ ├── webtier/ # 其它角色目录
│ ├── fooapp/ # 其它角色目录
│ ├── logapp/ # 其它角色目录
