2017-05-05 66 views
1

選擇group_var變量文件我在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的環境,然後運行安全播放。

有什麼辦法,我可以保持3個文件,如「group_vars的/ dev」,「group_vars /分期」,「group_vars /生產」,在我的主要site.yml指定它

我有3個清單文件作爲下面,並且根據ansible播放過程中對環境我指定的目錄文件名

[webclient] 
10.20.30.40 

[appserver] 
10.20.30.41 
+0

友好的建議:不要使用組對環境的分離,使用不同的庫存。 –

+0

是的,我確實有單獨的庫存文件,並在執行命令期間使用該文件,通過編輯問題更新了我的庫存 –

回答

3

而不是使用保存在一個單一的目錄清單文件中,在不同的目錄中使用清單文件,並把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>