Ansible の YAML で「:」を使う方法

  • 28
    Like
  • 4
    Comment
More than 1 year has passed since last update.

Ansible で YAML ファイルの中で値の部分にコロンを入れると Syntax Error でコケます。
例えば /etc/sudoerslineinfile モジュールで書き換えようとして NOPASSWD: という文字列を入れちゃうとエラーになります。バックスラッシュではエスケープできませんでした。

ERROR: Syntax Error while loading YAML script, ...
Note: The error may actually appear before this position: line 1, column 63

これを回避する方法、それはコロンを変数に入れること...

group_vars/all
colon: ':'
NG
- lineinfile: >
    regexp='^%wheel'
    line='%wheel ALL=(ALL) NOPASSWD: ALL'
    dest=/etc/sudoers
OK
- lineinfile: >
    regexp='^%wheel'
    line='%wheel ALL=(ALL) NOPASSWD{{colon}} ALL'
    dest=/etc/sudoers

あ、でもこの例(sudoers)の場合は /etc/sudoers.d/ にファイルを置く方法にするのが良いと思います。