如何在ansible上使用OR来很好地分割多行长条件?

sor*_*rin 7 ansible ansible-lint

我已经知道,如果你和他们之间有很长的条件,你可以使用列表将它们分成多行.

尽管如此,我不知道你们之间有OR的情况有任何解决方案.

现实生活中的实际例子:

when: ansible_user_dir is not defined or ansible_python is not defined or ansible_processor_vcpus is not defined
Run Code Online (Sandbox Code Playgroud)

这条线难看且难以阅读,显然不适合79列.

我们如何重写它以使其更容易阅读?

JGK*_*JGK 11

使用YAML折叠操作符 >

when: >
  ansible_user_dir is not defined or 
  ansible_python is not defined or 
  ansible_processor_vcpus is not defined
Run Code Online (Sandbox Code Playgroud)

正如ansible文件所述:

值可以使用|或跨越多行>.使用Literal Block Scalar 跨越多|行将包括换行符和任何尾随空格.使用折叠块标量 >会将换行符折叠到空格; 它习惯于制作更容易阅读和编辑的长线.在任何一种情况下,缩进都将被忽略.

其他信息可以在这里找到: