在运行ansible剧本时,我将提供额外的变量,尤其是用于传递多个值的 modules 变量。
ansible-playbook abc.yml --extra-vars "status=enable modules='redis apache zookeeper'"
当额外var中的模块具有“ redis”时,我想运行以下任务
- name: fetch ports
shell: ll | grep -i "ports"
when: modules == "redis"
但是,即使额外vars中的模块具有“ redis”,上述任务也会被跳过。任何帮助将不胜感激。
答案 0 :(得分:1)
您提供的modules
变量是一个字符串,有2个选项:
redisv2 apache zookeeper
之类的字符串,它将验证为true。第二个选项,方法如下:
- name: fetch ports
shell: ll | grep -i "ports"
when: '"redis" in modules.split(" ")'
希望有帮助。