Ansible:为列表变量的每个成员运行角色?
变量定义为:Ansible:为列表变量的每个成员运行角色?,ansible,ansible-playbook,Ansible,Ansible Playbook,变量定义为: ports: - 8092 - 8093 我想在同一台服务器上部署我的应用程序的两个独立实例,并将Apache配置为实例之间的负载平衡器。下面是一个伪代码剧本: - hosts: servers roles: - app port={{item}} with_items: ports - configure-apache 似乎带有\u项的在此上下文中不起作用 虽然可以对角色运行两次,每次都使用硬编码端口,然后对apache角色使用的端口列
ports:
- 8092
- 8093
我想在同一台服务器上部署我的应用程序的两个独立实例,并将Apache配置为实例之间的负载平衡器。下面是一个伪代码剧本:
- hosts: servers
roles:
- app port={{item}}
with_items: ports
- configure-apache
似乎带有\u项的在此上下文中不起作用
虽然可以对角色运行两次,每次都使用硬编码端口,然后对apache
角色使用的端口列表进行硬编码,但我觉得必须有一个更优雅的解决方案,使用单一定义的端口列表
感谢您的建议。为了解决这个问题,我将roles/tasks/main.yml
中的任务移动到一个名为roles/tasks/instance.yml
然后我修改了roles/tasks/main.yml
以包含:
- include: instance.yml
with_items: "{{ports}}"
loop_control:
loop_var: port
可能重复的