select group_var 顶级剧本中的变量文件
select group_var variable file in top level playbook
我已经在 group_vars/all/vars_file.yml
中定义了所有变量,我的剧本如下:
---
# Top level play site.yml
- hosts: webclient
roles:
- common
- nginx
- nvm
- deploy_web_client
- hosts: appserver
roles:
- common
- gradle
- tomcat
- deploy_sb_war
现在我有 3 个开发/暂存/生产环境。根据环境,我曾经更改 group_vars 下的 vars_file.yml,然后 运行 ansible-play。
有什么方法可以保留 "group_vars/dev"、"group_vars/staging"、"group_vars/production" 等 3 个文件,并在我的主 site.yml
中指定它
我有如下 3 个清单文件,根据 ansible-play 期间的环境,我指定了清单文件名
[webclient]
10.20.30.40
[appserver]
10.20.30.41
不要使用保存在单个目录中的清单文件,而是使用单独目录中的清单文件并将 group_vars
放入每个目录中。
.
├── dev
│ ├── group_vars
│ │ └── all
│ │ └── vars_file.yml
│ └── inventory
├── production
│ ├── group_vars
│ │ └── all
│ │ └── vars_file.yml
│ └── inventory
└── staging
├── group_vars
│ └── all
│ └── vars_file.yml
└── inventory
然后指向ansible-playbook
调用中的目录:
ansible-playbook -i dev <the_rest>
我已经在 group_vars/all/vars_file.yml
中定义了所有变量,我的剧本如下:
---
# Top level play site.yml
- hosts: webclient
roles:
- common
- nginx
- nvm
- deploy_web_client
- hosts: appserver
roles:
- common
- gradle
- tomcat
- deploy_sb_war
现在我有 3 个开发/暂存/生产环境。根据环境,我曾经更改 group_vars 下的 vars_file.yml,然后 运行 ansible-play。
有什么方法可以保留 "group_vars/dev"、"group_vars/staging"、"group_vars/production" 等 3 个文件,并在我的主 site.yml
中指定它我有如下 3 个清单文件,根据 ansible-play 期间的环境,我指定了清单文件名
[webclient]
10.20.30.40
[appserver]
10.20.30.41
不要使用保存在单个目录中的清单文件,而是使用单独目录中的清单文件并将 group_vars
放入每个目录中。
.
├── dev
│ ├── group_vars
│ │ └── all
│ │ └── vars_file.yml
│ └── inventory
├── production
│ ├── group_vars
│ │ └── all
│ │ └── vars_file.yml
│ └── inventory
└── staging
├── group_vars
│ └── all
│ └── vars_file.yml
└── inventory
然后指向ansible-playbook
调用中的目录:
ansible-playbook -i dev <the_rest>