1、hosts和-e中定义
在hosts自定义模块中新添加了一个字段
vi hosts
[test]
10.10.10.10 iswar=true
[all:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=123456
在命令行传递参数
ansible-playbook test.yaml -i hosts -e "iswar=true"
iswar这个变量想在yaml中进行when判断
方法一:
when: "{{ iswar }} == true"
这个样子可以使用,但是会报一个warning
"[WARNING] when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ iswar }} == true"
方法二:
when: iswar == "true"
但是下面两种方式就不行,这两种都不会进行判断
when: iswar == true
when: "iswar == true"
2、在vars_files中定义
cat test_module/test_module.yaml
iswar: true
vars_files: test_module/test_module.yaml
iswar这个变量想在yaml中进行when判断
方法一:
when: "{{ iswar }} == true"
还是会报那个warning
方法二:
when: iswar == true
#注意此处true不能有"",如果有""则不判断
其他方式几乎都不判断