概要
AnsibleでVagrantの環境構築をする最初の一歩です。 プロビジョニングができる環境を整えます。
環境
- Vagrant1.9.1
- CentOS7.3
- Ansible2.2.1.0
CentOS7.3のVagrnat Boxを用意する
任意のディレクトリ(例として今回はcentos7.3)にてVagrant環境を構築します。
vagrant box add https://atlas.hashicorp.com/centos/boxes/7
vagrant init
ここまでのディレクトリ構成
※デフォルトのbox名にスラッシュが入っているのでリネームしたほうがいいかもです。
AnsibleのインストールとProvisioningの準備
Homebrewかpipかgithubからソースを持ってくるか色々やり方があります。 いずれかの方法でansbileをホストOS側にインストールします。 私は何となくpipでインストールしました。
インストールは割愛します。
Ansibleのインストールが完了したら、provisioningディレクトリを用意して、hosts、site.ymlの2つのファイルを作成します。
それから、ansibleでvagrantにsshをするので、sshの設定ファイルを開発ディレクトリ直下に用意しておきます。
vagrant ssh-config > ssh.config
※ssh.configの場所は任意の場所でOK
hostsの中身
site.ymlの中身
ここまでのディレクトリ構成
※ssh.configは~/.ssh/configに記述するなど必ずしもこのディレクトリ内でなくともいいと思います。
AnsibleでProvisioning
プロビジョニングを実行してみます。
vagrant provision
すごーーい! たのしーーー!!
ハマったところ
vagrantにansibleでsshする時に結構ハマったのですが、teratailの質問に助けられました。 vagrantにansbileでsshしようとすると失敗する
所感
とりあえずローカル環境でAnsibleを使ったプロビジョニングができる環境が整ったので、 タレづくりに専念できそうです。 VPSなどホスト別にプロビジョニングができるように設定したり、ベストプラクティスをかじっておく必要がありそうです。 次回オレオレLaravel環境のタレを作って記事にしたいと思います(予定)
追記
vagrant destroyを実行して vagrant upで再構築すると、ssh-configのポート番号が変わる場合があるみたいです。
ある日突然プロビジョニングできなくなった!なんて時はssh接続情報を確認してみると良いかもです。