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
パラメータを指定してインデントを揃える必要があるので注意。