仕事でAnsible周りを担当することになったので、チュートリアルを参考にしながらAnsibleを学びました。
成果物や悩んだこと、参考になったサイトをアウトプットしておきます。
成果物
Ansible を用いてLAMP環境を構築して、WordPress をインストール・設定する Playbook を書きました。
実務を想定してベストプラクティスのディレクトリ構成を採用しています。
構成としては
- Nginx
- PHP-FPM
- MongoDB
- WordPress
を Ubuntu Server 22.04.2 LTS にプロビジョニングした形になります。
リポジトリはこちらになります。
https://github.com/mopeneko/ansible-practice
悩んだこと
include
が廃止されていた
参考にしたサイトでは include
を用いてファイル分割が行われていましたが、現時点の最新バージョン(v2.15.3)では import_playbook
と import_tasks
を用いて行うようです。
参考: https://docs.ansible.com/ansible/2.9_ja/user_guide/playbooks_reuse_includes.html
unarchive
モジュールはローカルのファイルをソースとする
WordPress パッケージを解凍する際に unarchive
モジュールを用いたのですが、どうやらこれはローカル(=Ansible を実行するホスト)のファイルをコピーするようです。
これを無効化するためには copy=no
を指定する必要があります。
参考になったサイト
公式ドキュメントが一番参考になりました。
モジュールの説明から使用例まで書かれていますし、ベストプラクティスの説明も細かいです。
業務でも世話になることが多いだろうと感じました。
https://docs.ansible.com/ansible/2.9_ja/index.html
まとめ
今回初めてベアボーンのプロビジョニングを自動化しました。
作業中とても楽しかったので、今後はAnsible ValutやAWXに触れてみたり、Terraformのような他のIaCツールも勉強したいです。
本来2日で完了させるはずが3日かかってしまったのが悔しいですが、貴重な経験になったと感じています。