2015-04-22 4 views
1

В настоящее время я использую комбинацию локальных файлов инвентаризации и инвентаризации ec2.py. Текущая игра, в которую я работаю, строит и развертывает прокси-сервер modsec nginx для экземпляров ec2, которые являются тегами как «modec» = 'nginx-prod'Ansible Динамические данные инвентаризации в шаблоне для обеспечения haproxy

В шаблоне конфигурации nginx я хотел бы затем прокрутить веб-серверы в наш VPC основан на теге "backened" = 'web-prod'.

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

} 

Возможно ли, что эта операция возможна или мне пришлось бы создавать дополнительные шаблоны конфигурации с использованием переменных в другом процессе?

ответ

1

Определение переменной в книжке для бэкэндов. Я все еще не думаю, что динамический инвентарь появляется либо из кэширования, либо потому, что у меня не было определения его в статике. Однако я не смог сломать его, пока он работал.

--- 
- 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 }}