我正在尝试编写一个非常灵活的剧本,它根据主机所在的环境针对主机。我使用了尽可能多的变量,因此剧本可以以最小的更改重用于其他项目/环境。
我有一个 application.yml
---
- name: Prepare app-server for "The app"
hosts: "{{'env'}}_super_app"
vars:
vars_files:
- "environments/{{env}}.yml"
sudo: yes
tasks:
- command: echo {{env}}
roles:
- common
- nginx
- php5-fpm
- nodejs
- newrelic
- users
- composer
- name: Install and configure mysql for "The super app"
hosts:
- "{{env}}_super_db"
vars:
vars_files:
- "environments/{{env}}.yml"
sudo: yes
roles:
- common
- mysql
- newrelic
Run Code Online (Sandbox Code Playgroud)
这是剧本目录结构:
??? environments
? ??? prod.yml << environment specific vars
? ??? stag.yml << environment …
Run Code Online (Sandbox Code Playgroud)