🎃
Ansibleのlintに片っ端から対応していく
この文書は何か
OSの変更に伴い、古かったAnsibleのバージョンを上げる。
使用していたAnsibleコードが6年前くらいからメンテナンスされていなかったので、作り替える。
これまでのバージョンとこれから
ansible 2.9.27 → ansible 2.15.4
Use FQCN for builtin module actions (pip).
FQCN(完全修復クラス)を使おう。
Jinja templates should only be at the end of 'name'
名前に変数({{ test }})を使うのは推奨されない。
Commands should not change things if nothing needs doing
command, shellなどがwhen, createsなどで条件つき実行になっていない場合警告される。
Truthy value should be one of [false, true]
yesと記載していたものをfalse, trueにする。
Forbidden implicit octal value "0644"
ダブルクォートで囲む。
File permissions unset or incorrect.
ファイルの権限設定がない
Shells that use pipes should set the pipefail option
コマンドにset -o pipefail
を追加する。
Use shell only when shell functionality is required
shellが必要でないのにshellを使っている。command
などに修正。
Use failed_when and specify error conditions instead of using ignore_errors.
ignore_errors: trueにしない。
No new line character at the end of file
$[0] 'block' is a required property
playbookのtaskを記載していたmain.yamlを/tasks配下に置いていたことが原因。/playbooks配下に置く。
Unsupported parameters for (basic.py) module: become. Supported parameters include: chdir, editable, executable, extra_args, name, requirements, state, umask, version, virtualenv, virtualenv_command, virtualenv_python, virtualenv_site_packages.
ansible.builtin.pip
にbecome: true
を設定していたので、moduleが設定されていないと表示された。
参考
Discussion