【问题标题】:Ansible: run role for each member of a list variable?Ansible:为列表变量的每个成员运行角色?
【发布时间】:2016-10-06 12:02:04
【问题描述】:

将变量定义为:

ports:
  - 8092
  - 8093

我想在同一台服务器上部署我的应用程序的两个独立实例,并将 Apache 配置为实例之间的负载平衡器。这是一个伪代码剧本:

- hosts: servers
  roles:
    - app port={{item}}
      with_items: ports
    - configure-apache

似乎with_items 在这种情况下不起作用。

虽然可以运行两次角色,每次都有硬编码的端口,然后硬编码apache 角色使用的端口列表,但我觉得必须有一个更优雅的解决方案单个定义的端口列表?

非常感谢您的建议。

【问题讨论】:

标签: ansible ansible-playbook


【解决方案1】:

为了解决这个问题,我将roles/tasks/main.yml 中的任务移到了一个名为roles/tasks/instance.yml 的新文件中

然后我修改roles/tasks/main.yml 包含:

- include: instance.yml
   with_items: "{{ports}}"
   loop_control:
     loop_var: port

【讨论】:

    猜你喜欢
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多