使用过滤器default并测试绳子的长度.例如,给定库存
shell> cat hosts
host_a
下面的 playbook
shell> cat pb.yml
- hosts: all
tasks:
- debug:
msg: |
-- Start
{% if my_user_id|default('')|length > 0 %}
DELETE FROM user_data WHERE userId = {{ my_user_id }};
{% endif %}
-- End
如果my_user_id未定义或为空,将跳过DELETE FROM ...
shell> ansible-playbook pb.yml
PLAY [all] ***********************************************************************************
TASK [debug] *********************************************************************************
ok: [host_a] =>
msg: |-
-- Start
-- End
PLAY RECAP ***********************************************************************************
host_a: ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
如果my_user_id不为空,则包括SQL命令
shell> ansible-playbook pb.yml -e my_user_id=12
PLAY [all] ***********************************************************************************
TASK [debug] *********************************************************************************
ok: [host_a] =>
msg: |-
-- Start
DELETE FROM user_data WHERE userId = 12;
-- End
PLAY RECAP ***********************************************************************************
host_a: ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
在模板中使用if条件.