Nag*_*nan 1 ansible ansible-2.x ansible-inventory
我已经定义了所有变量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
Run Code Online (Sandbox Code Playgroud)
现在我有3个环境dev / staging / production。根据环境的不同,我曾经在group_vars下更改vars_file.yml,然后运行ansible-play。
有什么办法可以保留3个文件,例如“ group_vars / dev”,“ group_vars / staging”,“ group_vars / production”,并在我的主站点中指定它。yml
我有3个清单文件,如下所示,并根据环境在播放环境中指定清单文件名
[webclient]
10.20.30.40
[appserver]
10.20.30.41
Run Code Online (Sandbox Code Playgroud)
与其使用保存在单个目录中的清单文件,不如将清单文件放在单独的目录中并放入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
Run Code Online (Sandbox Code Playgroud)
然后指向ansible-playbook呼叫中的目录:
ansible-playbook -i dev <the_rest>
Run Code Online (Sandbox Code Playgroud)