Ansibleでblockパラメータのテキストをインデントする

Ansibleでblockinfileを使って設定ファイルに追記しようとした時に、blockパラメータのテキストで行頭に空白やタブ文字を入力すると、AnsibleのYAMLパースでエラーとなってしまった。

どうすればよいか調べたところ、|の直後にYAMLのインデントとして認識する文字数を指定できるらしい。

- name: sample
  ansible.builtin.blockinfile:
    path: ******
    block: |2
          行頭の4文字の空白はblockinfileのパラメータとしてのインデント
          5〜6文字目の2文字の空白はblockパラメータとしてのインデント
          残り7〜10文字目の4文字の空白はblockの内容としてpathで指定したファイルへ記載される

これで無事にblockinfileで記載した内容もインデントを揃えることができた。 正確には自動挿入されるコメントもmarkerパラメータを指定してインデントを揃える必要があるので注意。

links

social