首页 文章

键/值键中的Ansible变量

提问于
浏览
4

我将env变量传递给ansible playbook中的Docker容器,如何在env的键/值中的键中设置Ansible变量?

所以这:

- name: webproxy container
  docker_container:
    name: "webproxy"
    image: "webproxy"
    env:
      SERVICE_443_NAME: "webproxy"

成为这个:

- name: webproxy container
  docker_container:
    name: "webproxy"
    image: "webproxy"
    env:
      SERVICE_{{ port_number }}_NAME: "webproxy"

2 回答

  • 6

    使用JSON表示法定义包含环境变量的字典:

    - name: webproxy container
      docker_container:
        name: "webproxy"
        image: "webproxy"
        env: '{ "SERVICE_{{ port_number }}_NAME": "webproxy" }'
    
  • -1

    这个答案是另类,我希望这对你有帮助 .

    main.yml

    ---
    - name: test
      hosts: localhost
      vars:
        port_number: 443
    
      pre_tasks:
        - name: make the playbook from template
          template:
            src: /path/to/webproxy.j2
            dest: /path/to/webproxy_vars.yml
    
      tasks:
        - include_vars: /path/to/webproxy_vars.yml
        - name: webproxy container dummy
          shell: echo $SERVICE_{{ port_number }}_NAME
          environment: "{{ env }}"
    

    webproxy.j2 ,它与main.yml放在同一目录下

    ---
    env:
      SERVICE_{{ port_number }}_NAME: "webproxy"
    

相关问题