ansible.builtin.fileのmodeパラメータは頭に0が必要
多分ほとんどのケースでは気にすることもなく0755とか0644とか書くと思うんですが、特殊な属性を付ける必要があるときに困るよ、という話。 世の中にはSUIDとかSGIDとかスティッキービットとかいう、特殊な属性がありまして、例えば基本のファイルパーミッションが0755でSUIDを指定したいという場合はchmodで言うとchmod 4755 path/to/fileといった感じになるんですけれども、ansible.builtin.fileのmodeパラメータでは以下の様に書くとパーサが10進数として解釈して訳の分からんことになってしまいます。 1 2 3 ansible.builtin.file: path: path/to/file mode: 4755 これはこう書く必要があります: 1 2 3 ansible.builtin.file: path: path/to/file mode: 04755 もしくはこう: 1 2 3 ansible.builtin.file: path: path/to/file mode: '4755' これは例えば、結構古いAnsible playbookなんかで、 1 file: path=path/to/file mode=4755 とか書いていたやつを書き直したりしたときに注意が必要です。 まぁ、公式ドキュメントに書いてある んですけど、そうは言ってもみんなそんなに細かいところまで読んでないでしょ、という。 You must either add a leading zero so that Ansible’s YAML parser knows it is an octal number (like 0644 or 01777) or quote it (like ‘644’ or ‘1777’) so Ansible receives a string and can do its own conversion from string into number. ...