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