Ansible使用--extra-vars进行条件包含

Mat*_*ttM 11 ansible-playbook

我正在使用Ansible来部署可能分发或不分发服务的环境.我想条件性地包括基于我传递给ansible-playbook的论据的剧本.

create_server.yml

---
- include: launch_ec2_instance.yml

- include install_postgres.yml
  when {{db}} == "Y"

- include install_redis.yml
  when {{redis}} == "Y"
Run Code Online (Sandbox Code Playgroud)

这是我如何调用create_server.yml

ansible-playbook create_server.yml -i local --extra-vars "db=Y redis=N"
Run Code Online (Sandbox Code Playgroud)

有可能这样做,如果是这样,怎么样?

Ric*_*ico 14

是.这是可能的.您在when语句中缺少冒号(:).

---
- include: launch_ec2_instance.yml

- include install_postgres.yml
  when: {{ db }} == "Y"

- include install_redis.yml
  when: {{ redis }} == "Y"
Run Code Online (Sandbox Code Playgroud)

您还可以省略大括号({{}}):

---
- include: launch_ec2_instance.yml

- include install_postgres.yml
  when: db == "Y"

- include install_redis.yml
  when: redis == "Y"
Run Code Online (Sandbox Code Playgroud)