Vagrant+CentOS7.3+Ansible

概要

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ディレクトリを用意して、hostssite.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接続情報を確認してみると良いかもです。

参考