本日はAWESOME-COPILOTの技術調査枠です。
AWESOME-COPILOTのドキュメントを読みながら実際に操作を試して記事に残します。
今回はカスタムインストラクションの一つAnsible Conventions and Best Practicesについてです。
Ansible Conventions and Best Practices
Ansible Conventions and Best PracticesはAnsibleの規約とベストプラクティスです。
Ansibleはサーバーやクラウド環境の構築・設定・アプリ配備などを自動化するためのIT構成管理ツールです。
以下のページからAnsible Conventions and Best Practicesのインストールボタンをクリックして取得します。
github.com
インストールボタンを押してAnsible Conventions and Best Practicesをダウンロードします。
すると.github/instructions配下にインストラクションがインストールされます。

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
本インストラクションをインストールすると、'**/*.yaml, **/*.yml'などのAnsibleのプレイブックや設定ファイルへルールを適用します。
本インストラクションはAnsibleのYAMLファイル編集時のみCopilotが以下ルールを参照します。
Ansibleの基本ルールを優先
CopilotはAnsibleをインフラ構成管理ツールとして正しく使う前提で補完・提案をします。
- 変更可能な構成を コードとして明示する
- 可能な限り idempotent(冪等性が担保された)モジュールを利用する
- shell, command, raw など汎用コマンドは必要時のみ推奨する
- 説明的な task 名を付ける(例: Install nginx, Configure app)
タスクの命名ガイド
プレイブックの可読性と一貫性を高くするため、Copilotに生成させるタスク名には以下ルールを優先します。
- 分かりやすい動詞から開始する(Install, Configure, Copy など)
- タスク名は大文字始まり・ピリオドを省略する
- roleタスク名に role名を含めない(Ansibleが自動で表示するため)
変数管理・グループ化の提案
メンテナンスしやすいPlaybookを生成するために、Copilotは以下のような変数管理の良い書き方を提案します。
- group_vars で属性に応じた変数定義
- 関連変数をまとまりで整理する
- 余計な冗長記述を避ける
インベントリ・タグ・リソース設計
柔軟性を持たせた設計提案を行うため、ファイルや環境設計についてもCopilotは次のようなルールを反映します。
- dynamic inventory の利用を推奨(クラウド環境などで柔軟性を担保)
- タグ付けで環境や機能・場所に応じてフィルタリング可能な設計
秘密情報管理(Vault など)
秘密情報の扱いについて次のルールを明示します。
- Ansible単体で扱う場合はAnsible Vaultを使う
- 変数を vault 内に正しく分離し、参照する用に構造化する
- 他ツール(例: Hashicorp Vault、AWS Secrets Manager)との連携を推奨する
スタイルとYAMLの一貫性
読みやすくレビュー性の高いコードを提案するため、CopilotはAnsible YAM を生成する際に以下のコードスタイルの一貫性を優先します。
- 2スペースインデント
- ブロックやセクションごとに空行で視認性を確保する
- snake_caseで変数を命名する
- マルチライン構文を優先して可読性を高める
- シングルクォートを優先し、二重引用符は必要時のみ使用する
変数・タスクのソート順と構成順
レビューやdiffの可読性を向上するため、Copilotはプレイブック内の要素を一定順序で整える提案をします。
- ホストブロックやタスクの順序を標準化する
- キーやオプションをアルファベット順で整列する
- taskの一般順序(name → module → params → loop → tag)を維持する
Lint・チェックの促進
生成されたコードを検証するため、Copilotは次のツール利用を提案します。
- ansible-lintでコード品質チェック
- yamllintでYAMLの構文チェック
- ansible-playbook --syntax-checkで実行前検証
- ansible-playbook --check --diffでドライラン