使用另一个变量作为键YAML访问字典

Ash*_*nan 5 yaml ansible

我的要求是:部署环境作为额外的变量传递到剧本,例如:dev,qa或prod

我有一个名为DEPLOY_URL的变量

根据env变量的值,DEPLOY_URL必须更改.

我尝试过以下操作:

DEPLOY_URLS: 
   "dev": "xyz"
   "prod" : "abc"
   "qa" : "123"

DEPLOY_URL: "{{DEPLOY_URLS['{{DEPLOY_ENV}}']}}"
Run Code Online (Sandbox Code Playgroud)

价值永远不会正确.有没有办法使用另一个变量作为密钥访问字典?(使用YAML和ansible)

Kon*_*rov 16

试试这个: DEPLOY_URL: "{{ DEPLOY_URLS[DEPLOY_ENV] }}"

  • 使用 `{{` 启动 jinja2 [expression](http://jinja.pocoo.org/docs/dev/templates/#expressions)。您应该在表达式中按名称引用变量。 (2认同)