key/value 键中的 Ansible 变量
Ansible variable in key/value key
我正在将 env 变量传递给 ansible 剧本中的 Docker 容器,如何在 env 的 key/value 中的键中设置 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"
这个答案是另类的,希望对你有帮助。
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"
使用JSON 表示法定义带有环境变量的字典:
- name: webproxy container
docker_container:
name: "webproxy"
image: "webproxy"
env: '{ "SERVICE_{{ port_number }}_NAME": "webproxy" }'
我正在将 env 变量传递给 ansible 剧本中的 Docker 容器,如何在 env 的 key/value 中的键中设置 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"
这个答案是另类的,希望对你有帮助。
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"
使用JSON 表示法定义带有环境变量的字典:
- name: webproxy container
docker_container:
name: "webproxy"
image: "webproxy"
env: '{ "SERVICE_{{ port_number }}_NAME": "webproxy" }'