检查Ansible include中的多个条件
我的主要职责是.yml检查Ansible include中的多个条件,ansible,ansible-role,Ansible,Ansible Role,我的主要职责是.yml more tasks/main.yml --- - include: ssl_pull.yml when: ACTION == 'renewal' - include: ssl_gen.yml when: ACTION == 'generate' - include: ssl_push.yml when: ACTION == 'install' - include: ssl_install.yml when: ACTION == 'install' 我
more tasks/main.yml
---
- include: ssl_pull.yml
when: ACTION == 'renewal'
- include: ssl_gen.yml
when: ACTION == 'generate'
- include: ssl_push.yml
when: ACTION == 'install'
- include: ssl_install.yml
when: ACTION == 'install'
我想让用户能够通过多种操作,如续订和安装,因此它包括
- include: ssl_pull.yml
- include: ssl_push.yml
- include: ssl_install.yml
我知道如何为ACTION变量传递一个值,如下所示
ansible-playbook -v -i /web/hosts.txt site.yml -e "ACTION=renewal"
如何传递一个或多个值并基于传递的值包含文件
您能建议我需要对命令/yml进行哪些更改吗?是您想要的吗
您可以将任务标记为:
- include: ssl_pull.yml
tags: renewal
- include: ssl_push.yml
tags: install
- include: ssl_install.yml
tags: install
然后使用-t
参数指定标记:
ansible-playbook -v -i /web/hosts.txt site.yml -t "renewal,generate"
如果由于某些原因不能使用标记,我们也可以对vars执行类似的操作 将变量指定为逗号分隔的值:
ansible-playbook -v -i /web/hosts.txt site.yml -e "ACTIONS=renewal,generate"
并更新条件以按逗号拆分变量:
- include: ssl_pull.yml
when: "'renewal' in ACTIONS.split(',')"
你在找什么
您可以将任务标记为:
- include: ssl_pull.yml
tags: renewal
- include: ssl_push.yml
tags: install
- include: ssl_install.yml
tags: install
然后使用-t
参数指定标记:
ansible-playbook -v -i /web/hosts.txt site.yml -t "renewal,generate"
如果由于某些原因不能使用标记,我们也可以对vars执行类似的操作 将变量指定为逗号分隔的值:
ansible-playbook -v -i /web/hosts.txt site.yml -e "ACTIONS=renewal,generate"
并更新条件以按逗号拆分变量:
- include: ssl_pull.yml
when: "'renewal' in ACTIONS.split(',')"
设计用于执行此类任务选择
如果你真的不想使用标签,你可以在额外的变量中传递一个JSON对象:
ansible-playbook --inventory-file /web/hosts.txt site.yml \
--extra-vars '{"ACTIONS": ["renewal", "install"]}'
然后针对阵列进行测试:
- include: ssl_pull.yml
when: "'renewal' in ACTIONS"
设计用于执行此类任务选择
如果你真的不想使用标签,你可以在额外的变量中传递一个JSON对象:
ansible-playbook --inventory-file /web/hosts.txt site.yml \
--extra-vars '{"ACTIONS": ["renewal", "install"]}'
然后针对阵列进行测试:
- include: ssl_pull.yml
when: "'renewal' in ACTIONS"
这不是实现标记的目的吗?这不是实现标记的目的吗?My site.yml没有包含。它有三个角色,每个角色都是main.yml有include语句。没关系。你太棒了。。感谢您访问tipMy站点。yml没有包含。它有三个角色,每个角色都是main.yml有include语句。没关系。你太棒了。。谢谢你的提示