web-dev-qa-db-fra.com

Comment bien répartir sur plusieurs lignes les conditionnelles longues avec OR sur ansible?

Je sais déjà que si vous avez de longues conditions avec et entre elles, vous pouvez utiliser des listes pour les diviser sur plusieurs lignes.

Pourtant, je ne connais aucune solution pour le cas où vous avez OR entre eux.

Exemple pratique tiré de la vie réelle:

when: ansible_user_dir is not defined or ansible_python is not defined or ansible_processor_vcpus is not defined

Cette ligne est moche et difficile à lire, et ne correspondrait clairement pas à une colonne de 79.

Comment pouvons-nous le réécrire pour le rendre plus facile à lire?

8
sorin

Utilisez l'opérateur de pliage YAML >

when: >
  ansible_user_dir is not defined or 
  ansible_python is not defined or 
  ansible_processor_vcpus is not defined

Comme l'indique la documentation ansible:

Les valeurs peuvent s'étendre sur plusieurs lignes à l'aide de | ou >. Couvrant plusieurs lignes à l'aide d'un littéral bloc scalaire | inclura les sauts de ligne et les espaces de fin. Utilisation d'un scalaire bloc plié > repliera les nouvelles lignes dans les espaces; il est utilisé pour faciliter la lecture et la modification de ce qui autrement serait une très longue ligne. Dans les deux cas, l'indentation sera ignorée.

Des informations supplémentaires peuvent être trouvées ici:

13
JGK