Ansible playbook
2025年 09月 15日 月曜日
Ansible playbook
発端
親会社のWebシステム(Ruby on Rails)をAWS環境へデプロイする際に、簡単にデプロイしたいので、なにか便利なものがないかと探していたところ、Ansible Playbook を見つけました。
他のプロジェクトでAnsibleを使っていたので、このプロジェクトでも使ってみようと思ってやってみました。
Ansible Playbookとは
構成管理ツールである Ansible において、自動化したい一連のタスクを定義するためのファイルのことです。Playbook は YAML 形式で記述され、人間が読みやすく、理解しやすい特徴があります。主に以下の要素で構成されています。
Plays: 一つ以上の「プレイ」を含みます。各プレイは特定のホストグループに対してタスクを実行する設定です。
Tasks: 各タスクは特定のモジュールを使用して実行される個別のアクションです。命令の実行順序を指定でき、システムの構成を希望する状態に導きます。
Roles: 役割ごとにタスク、ファイル、テンプレート、変数などを整理して管理する方法です。特に大規模なプロジェクトや複雑な構成を扱う場合に便利です。
Variables: タスクで使用するデータをパラメーター化して柔軟性を持たせます。
Handlers: 特定のタスクが変更を行ったときにトリガーされるアクションを定義します。例えば、設定ファイルを変更した後にサービスを再起動する場合などに用います。
インストール
Macの場合は、brew でインストールできます
brew install ansible
Ansible Playbook の書き方
このコマンドを実行すると、必要なものが出来上がります
ansible-galaxy init infra/ansible/roles/app-staging
※app-stagingは、ステージング環境用で作った
こんな感じで、ファイル群ができます。
.
└── infra
└── ansible
└── roles
└── app-staging
├── README.md
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
でも、本当に必要なのは、tasksフォルダだけです。 ほかは必要がなければ、使わないので削除します。
デプロイ方法(ステージング環境の場合)
## 感想
簡単にデプロイできるようになった。