使用 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
的参数字符串化。
我需要替换一个通过 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
的参数字符串化。