web-dev-qa-db-fra.com

Comment ajouter des espaces au début du bloc dans le blockinfile d'Ansible?

J'ai trouvé ceci problème blockinfile , où un utilisateur a suggéré d'ajouter un nombre après le "|" dans le "bloc: |" mais donne une erreur de syntaxe. Fondamentalement, je veux utiliser le module blockinfile pour ajouter un bloc de lignes dans un fichier, mais je veux que le bloc soit en retrait de 6 espaces dans le fichier. Voici la tâche

- name: Added a block of lines in the file
  blockinfile:
  dest: /path/some_file.yml
  insertafter: 'authc:'
  block: |
    line0
      line1
      line2
      line3
        line4

Je m'attends à

  authc:
    line0
      line1
      line2
      line3
        line4

mais obtenez

  authc:
line0
  line1
  line2
  line3
    line4

L'ajout d'espaces au début des lignes ne le fait pas. Comment puis-je accomplir cela?

14
Chris F

Comment puis-je accomplir cela?

Reportez-vous à cette réponse

En général, il est plus canonique d'utiliser des fichiers modèles.

0
techraf

Vous pouvez utiliser une fonctionnalité YAML appelée "Indicateur d'indentation de bloc":

- name: Added a block of lines in the file
  blockinfile:
  dest: /path/some_file.yml
  insertafter: 'authc:'
  block: |2
      line0
        line1
        line2
        line3
          line4

Il s'agit du 2 après le |

Références:

37
antex