ansible-lint で品質の基準をそろえる
Pro会員限定上級約40分6レッスン
レビューで毎回同じ指摘をするのはやめて、機械に任せます。新しく入った人が書いたロールに ansible-lint をかけ、違反を読み、プロファイルの段階(basic・moderate・safety・shared・production)ごとに直し、本当に例外にすべき箇所だけを理由付きで noqa にして、CI に通る状態にします。
対象者: プレイブックのレビューで同じ指摘を繰り返している方 / CI に ansible-lint を入れたい方
前提知識: ロールの依存関係と argument_specs 修了程度
この教材を終えると、できるようになること
- ansible-lint の違反一覧とまとめの表から、どのファイルのどの行を、どの段階で直すべきかを読み取れるようになる。
- jinja[spacing] と name[casing] を直し、--profile moderate で通ることを確かめられるようになる。
- package-latest・risky-shell-pipe・risky-file-permissions の危険を説明し、直せるようになる。
- 違反を直すべきか、noqa で例外にすべきかを判断し、commit.yml を production の基準で通せるようになる。
- report ロールのすべての違反を直し、CI と同じコマンド(引数なしの ansible-lint)を通せるようになる。
修了後の姿: 大規模・複数チームで使えるAnsibleコードを設計・テスト・配布し、変更をエラーを出さずに安全に本番へ流せる自動化エンジニアへ。
Chapter 1違反を読み、段階ごとに直す
ansible-lint の出力の読み方、プロファイル、よくある違反の直し方、noqa の使いどころを練習します。
- ansible-lint の出力を読むルール名・場所・プロファイルの3つを読む約5分(有料会員限定)
- basic と moderate の違反を直すJinja2 の括弧の内側に空白を入れ(basic)、名前は大文字で始める(moderate)約7分(有料会員限定)
- safety の違反を直すlatest・パイプの失敗・パーミッション未指定は、事故のもと約9分(有料会員限定)
- 直すか、理由を書いて例外にするかnoqa は「ルールが想定していない正しい使い方」にだけ使う約8分(有料会員限定)
- リポジトリ全体を CI に通す設定どおり(production)で、引数なしの ansible-lint が 0 で終わる約8分(有料会員限定)
Chapter 2確認クイズ
ansible-lint の使い方の理解度をチェック。