Ansible playbook

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フォルダだけです。 ほかは必要がなければ、使わないので削除します。

デプロイ方法(ステージング環境の場合)


## 感想

簡単にデプロイできるようになった。
この記事をシェア

弊社では、一緒に会社を面白くしてくれる仲間を募集しています。
お気軽にお問い合わせください!