ansible剧本中的when条件下有多个值

ansible剧本中的when条件下有多个值,ansible,Ansible,只有当选定的服务器(从外部变量派生)不等于给定的ip(在when条件下)时,我才需要运行shell脚本,这里的问题是有很多ip我可以在when条件下添加所有ip列表,但是列表太大,这会导致冗长的剧本。是减少代码行数的最佳方法。现在的剧本是 - name: Copy self sign certificate script copy: src: ../playbooks/self_sign_cert.sh dest: /tmp/self_sign_ce

只有当选定的服务器(从外部变量派生)不等于给定的ip(在when条件下)时,我才需要运行shell脚本,这里的问题是有很多ip我可以在when条件下添加所有ip列表,但是列表太大,这会导致冗长的剧本。是减少代码行数的最佳方法。现在的剧本是

 - name: Copy self sign certificate script
      copy:
        src: ../playbooks/self_sign_cert.sh
        dest: /tmp/self_sign_cert.sh
        mode: 0755
      ignore_errors: yes
      when:  selected_server != '10.0.0.1' and selected_server != '10.0.0.2' and  selected_server != '10.0.0.3' and selected_server != '10.0.0.4' and selected_server != '10.0.0.4' and selected_server != '10.0.0.5' and selected_server != '10.0.0.6' and selected_server != '10.0.0.7'
比如说

-主机:10.0.0.2,10.0.0.98,10.0.0.99
变量:
黑名单:
- 10.0.0.1
- 10.0.0.2
- 10.0.0.3
任务:
-调试:
msg:“将文件复制到{inventory\u hostname}”
时间:目录\u主机名不在黑名单中
给予

任务[调试]*********************************************************************
跳过:[10.0.0.2]
确定:[10.0.0.98]=>
msg:将文件复制到10.0.0.98
确定:[10.0.0.99]=>
msg:将文件复制到10.0.0.99

感谢@Vladimir的快速响应,这对我很有帮助。