Ansible 将模板中的动态库存数据转换为供应haproxy

Ansible 将模板中的动态库存数据转换为供应haproxy,ansible,ansible-playbook,Ansible,Ansible Playbook,我目前正在使用本地清单文件和ec2.py生成的清单的组合。我正在编写的当前剧本构建并部署了一个modsec nginx代理到ec2实例,这些实例标记为“modec”='nginx-prod' 在nginx配置模板中,我想根据标记“backended”=“web prod”在我们的VPC中循环浏览web后端 upstream backend { {% for host in backends %} server {{ host }} weight=5 {% endfor %}

我目前正在使用本地清单文件和ec2.py生成的清单的组合。我正在编写的当前剧本构建并部署了一个modsec nginx代理到ec2实例,这些实例标记为“modec”='nginx-prod'

在nginx配置模板中,我想根据标记“backended”=“web prod”在我们的VPC中循环浏览web后端

 upstream backend {
   {% for host in backends %}
    server {{ host }} weight=5
   {% endfor %}

}

此操作是否可能,或者我是否必须在另一个过程中使用后端变量生成其他配置模板?

在剧本中为后端定义变量。我仍然不认为动态清单是从缓存中显示出来的,或者因为我在静态中没有对它的定义。然而,我没能打破它,因为它正在工作

---
- hosts: modsec-proxy
  remote_user: admin
  vars:
    backends: "{{ groups['tag_backend_web_prod'] }}"

  tasks:
  - apt_repository: repo='deb http://http.debian.net/debian wheezy-backports main' state=present
    sudo: yes
将变量转储到测试模板中很有帮助

  - name: Dump all vars
    action: template src=files/modsecurity-nginx/templates/dumpall.j2 dest=/tmp/ansible.all
    sudo: yes



EC2 Info
{{ groups['tag_backend_web_prod'] | to_nice_json }}



Module Variables ("vars"):
--------------------------------
{{ vars | to_nice_json }}

Environment Variables ("environment"):
--------------------------------
{{ environment | to_nice_json }}

GROUP NAMES Variables ("group_names"):
--------------------------------
{{ group_names | to_nice_json }}

GROUPS Variables ("groups"):
--------------------------------
{{ groups | to_nice_json }}

GROUPS Variables ("hostvars"):
--------------------------------
{{ hostvars | to_nice_json }}