使用Ansible如何用Jinja2替换变量

时间:2015-08-21 18:36:16

标签: jinja2 ansible

我需要替换一个通过CLI传递给它的额外参数的变量。

./deploy.yml -e 'jira_ticket=REL-78'

我无法将其删除&deploylist / REL-78'因为我传递了jira_ticket'如果我对varible进行硬编码(' REL-78'),它可以很好地工作。

- name: Set fact
  set_fact: deploy_list"{{ item | replace('deploylist/{{ jira_ticket }}/', '')"
  with_items: ' {{ modules_to_deploy.value }}'
  register: deploy_list_result

ok: [127.0.0.1] => (item=deploylist/REL-78/api)
ok: [127.0.0.1] => (item=deploylist/REL-78/ariaapi)
ok: [127.0.0.1] => (item=deploylist/REL-78/ariaquery)
ok: [127.0.0.1] => (item=deploylist/REL-78/ariaserver)
ok: [127.0.0.1] => (item=deploylist/REL-78/dashboardidp)
ok: [127.0.0.1] => (item=deploylist/REL-78/oracle)
ok: [127.0.0.1] => (item=deploylist/REL-78/uisp)
ok: [127.0.0.1] => (item=deploylist/REL-78/ui)

1 个答案:

答案 0 :(得分:7)

这个怎么样......(我还添加了=并关闭}}

- name: Set fact
  set_fact: deploy_list="{{ item | replace('deploylist/'+jira_ticket+'/', '') }}"
  with_items: modules_to_deploy.value
  register: deploy_list_result

请注意,您不必对with_items的参数进行字符串化。