ansible剧本中的when条件下有多个值
只有当选定的服务器(从外部变量派生)不等于给定的ip(在when条件下)时,我才需要运行shell脚本,这里的问题是有很多ip我可以在when条件下添加所有ip列表,但是列表太大,这会导致冗长的剧本。是减少代码行数的最佳方法。现在的剧本是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
- 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的快速响应,这对我很有帮助。