使用 Ansible 如何用 Jinja2 替换变量

With Ansible how can I replace a variable with Jinja2

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

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

我无法将其删除 'deploylist/REL-78' 因为我正在传入 'jira_ticket' 如果我对变量 ('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)

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

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

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