Ansibleのコードレビュー項目

Ansible

Ansibleのコードレビューしようとした時に調べても、あまり記事が見つからず悩んでいる人がいると思います。
こちらの記事ではAnsibleのコードレビューをするときに必要な確認項目について書いています。
実際に自分が仕事でAnsibleを書く時や、コードレビューをするときにこちらを参考にしています。

コードレビューの確認項目

確認した項目をざっくり分けますと以下4つになります

  1. モジュールを使用をしているか?
  2. roleを正しく分割しているか?
  3. ディレクトリ構成を正しくしているか
  4. 各環境の設定はyamlファイルだけで行われているか?

各項目についてそれぞれ説明していきます

モジュールを使用をしているか?

モジュールを使用する理由として、Ansibleは手続き的に処理を書いていくのではなく、最終的な状態を宣言的に書いていくことを目的にしているため。
そうすることで冪等性が担保される。

Roleを正しく分割しているか?

Roleは基本的に機能単位で作成し、それによって別のプロジェクトで再利用したり、共有することができるためRoleを分割正しく分割しておく必要がある。

ディレクトリ構成が正しいか?

Ansibleのディレクトリ構成については以下のURLを参考にする
特にtemplatesとfilesは間違えやすいので注意する

ベストプラクティス — Ansible Documentation

各環境の設定はyamlファイルだけで行われているか?

各環境の設定はyamlファイルでのみ管理する。
nginx、mysqlなどの設定ファイルは環境ごとには作成せずに、Jinja2テンプレートファイルをtemplatesディレクトリ配下に作成して、yamlで宣言した変数を埋め込むようにする。

まとめ

Ansibleのコードレビュー項目について説明をしてきました。
項目数は少ないですが、確認項目を守ってAnsibleをコーディングするのが大変です。
それでも確認項目を守ってコーディングことで保守しやすくなるので頑張っていいただけたらと思います。
Ansible以外にも、Linuxで使用頻度の高いコマンドや、Go言語の記事について書いていますので、興味がありましたら、そちらも見てもらえたらと思います。

【おすすめ記事のリンク】

コメント

タイトルとURLをコピーしました

Fatal error: Uncaught JSMin_UnterminatedStringException: JSMin: Unterminated String at byte 727: "現場でAnsibleのコードレビューをする時に、何を見たら良いかわからなく、検索しても出てこないことがありました。 in /home/c5287456/public_html/engineer-want-to-grow.com/wp-content/plugins/autoptimize/classes/external/php/jsmin.php:214 Stack trace: #0 /home/c5287456/public_html/engineer-want-to-grow.com/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(152): JSMin->action(1) #1 /home/c5287456/public_html/engineer-want-to-grow.com/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(86): JSMin->min() #2 /home/c5287456/public_html/engineer-want-to-grow.com/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(257): JSMin::minify('{"@context":"ht...') #3 [internal function]: AO_Minify_HTML->_removeScriptCB(Array) #4 /home/c5287456/public_html/engineer-want-to-grow.com/wp-content/plugins/autoptimize/classes/external/php/ao-minify-html.php(108): preg in /home/c5287456/public_html/engineer-want-to-grow.com/wp-content/plugins/autoptimize/classes/external/php/jsmin.php on line 214