小编Has*_*tux的帖子

Ansible - 如何使用循环设置 var

我想创建一个复杂的变量(nginx_ssl_vhosts_list),并使用另一个简单变量(reverse_proxy_ssl)的循环,但我无法让它工作。是否可以有类似以下代码的内容,或者我应该使用自定义插件吗?

这是我认为它会如何工作的:

- hosts: localhost
  gather_facts: no
  connection: local
  vars:
    reverse_proxy_ssl:
      - name: foo.org
        frontport: 443
        fronturl : /
        backend: http://192.168.1.1:8080
      - name: bar.org
        frontport: 443
        fronturl : /
        backend: http://192.168.1.2:443
    nginx_ssl_vhosts_list:
      - listen: "{{ item.frontport }} ssl"
        server_name: "{{ item.name }}"
        access_log: "{{ item.name }}.access.log"
        error_log: "{{ item.name }}.error.log"
        extra_parameters: |
          location {{ item.fronturl }} {
            proxy_pass {{ item.backend }};
          }
          ssl_certificate     {{ item.name }}.crt;
          ssl_certificate_key {{ item.name }}.key;
      with_items: "{{ reverse_proxy_ssl }}"
  tasks:
    - debug: msg="{{ nginx_ssl_vhosts_list }}"
Run Code Online (Sandbox Code Playgroud)

ansible

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

ansible ×1