Vagrant + Ansible で冪等性のある環境構築をしやすくする為の構造に着目してみます。
Contents
Vagrant + Ansible
Vagrant
Vagrantとは、仮想環境の構築や共有を行うツールです。
Vagrant については下記をご参照ください。
http://vistylee.com/virtualbox-vagrant-box/
Ansible
Ansibleは、オープンソースの構成管理ツールです。
Ansibleについては下記をご参照ください。
設定
playbook
yaml ファイルにロールの仕組みを使用して設定分けを行います。
例では、LEMP 環境を構築します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
--- - hosts: 192.168.33.11 become: yes user: vagrant roles: - ubuntu - htop - nginx - php7 - memcached - git - composer - mysql |
各ロール配下には、tasks, defaults, mata, handlers などのディレクトリを設置します。全て必須ではありませんので、必要に応じて設置していきます。main.yml に設定を書いていきますが、さらに分割したい場合などは、xxx.yml などに分割して main.yml で include させます。
構成
1 2 3 4 5 6 7 |
roles/ |_ git/ |_ tasks/ |_ main.yml |_ xxx.yml |_ defaults/ |_ main.yml |
ssh config
vagrant の ssh 接続設定を下記コマンドで簡単に config ファイルに追記できます。
1 |
vagrant ssh-config --host web >> ~/.ssh/config |
まとめ
Playbook を使用して分割することで、肥大化をさけ、分り易く構造化することができます。
また、設定の変更や、構造化されることで、チーム開発時の現状把握にもプラスになります。