Home > アーカイブ > 2014-07

2014-07

「開発現場で活用するVagrant」を発表しました

この記事の所要時間: 616

JAWS-UG三都物語 2014 にて「開発現場で活用するVagrant」という発表を行いました。

jawsug-santo-2014
Photo By Yuko Oshima

5 つトラックがあるなか、テクニカルトラックでの発表でした。開放感を感じる会場で、快適にセッションを行うことができました。

発表内容

Vagrant を現場で活用していく上で参考になる情報を、と考えたところ、やはり実際に動くデモが良いと思い、デモを中心にセッションを行いました。

発表資料は、以下です。

開発現場で活用するVagrant from Masashi Shinbara

デモで利用した Varantfile などは、下記で公開しています。

https://github.com/shin1x1/vagrant-demo-20140705

デモでは、同じ PHP アプリケーションについて仮想環境やプロビジョニングツールを変えて構築を行いました。(実際に一からコードを書く時間が無かったので、できあがったものをお見せする形でした。)

Vagrant と連携ツールの整理

Vagrant の話になると、VirtualBox や Chef など多くのツールが一緒に登場してきます。

こららを頭の中で整理できていないと、カスタマイズしたり、トラブルが発生した際にどれを見れば良いかが分からない、という状況になりがちです。

セッションでは、連携ツールを「仮想環境」と「プロビジョニング」に分けて整理してみました。

開発現場で活用するVagrant-1

vagrant up だけ、にこだわる

セッションでもお話したのですが、Vagrant で開発環境を構築する際に大事なのは、「vagrant upコマンドだけで環境を作る」ということです。

デモでは、Ansible でプロビジョニングを行う箇所もあったのですが、Ansible はホスト側にはインストールせず、ゲスト側(仮想マシン)にシェルスクリプトでインストールして、仮想マシン内でローカルコネクションでプロビジョニングを行うようにしました。

provision = <<-EOT
    rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
    yum -y install ansible libselinux-python
    ansible-playbook /vagrant/provision/vagrant.yml --connection=local
EOT

config.vm.provision :shell, :inline => provision

Vagrant で開発環境を作れば、チーム内で誰の環境でも同じ環境を持つことができます。

それなのに、Vagrant や VirtualBox など最低限なツール以外のものをホストに要求すると、それらをインストールする手間も発生しますし、ホストの差異による挙動の違いやバージョンにも気を払う必要が出てきます。

仮想マシン内に閉じ込めておけば、インストールは自動で行うことができ、考慮すべきプラットフォームも一つ(仮想マシンのみ)で済みます。

せっかく、Vagrant で開発環境の構築が自動化されているのに、それを動かすためのツールで手間がかかるというのはもったいない気がします。

これはコマンドについても同じです。環境構築ではvagrant upのみを実行するようにします。それ以外のコマンドはプロビジョニングに含めて、仮想マシン内で実行します。

Vagrant で開発環境を作るのであれば、ホストには、必要最低限(Vagrant と VirtualBox)のツールだけをインストールして、vagrant upコマンドだけで構築ができるようにプロビジョニングの内容を組み立てるようにしましょう。

発表中に Yo をもらう

セッション開始前に、Yo のアカウントを公開して、発表中に少しでも「いいね!」と思う箇所があれば、Yo を送って下さいと呼びかけてみました。

会場では、そもそも Yo をインストールしている方が数人だけだったのですが、デモの際に何度も Yo を送ってもらいました。

ポケットの中で、iPhone が震える度に、「あー伝わってるなあ」と安心することができ、楽しくセッションを進めることができました 😀

これ、意外に嬉しいので、発表される方は、試してみると良いですよ。

Yo を送って下さったみなさん、ありがとうございましたm(_ _)m

さいごに

おかげさまで Vagrant に関する発表を、とお声がけ頂く機会が何度もあるので、色々と手を変え品を変えといった感じで試行錯誤しながらやっているところです。

このあたりは変化も早く、色々と新しい内容が出てくるので、毎回資料を作りながら発見もあり、面白いですね。

やはり今後は Docker との絡みが面白くなりそうなので、また機会があれば話してみたいと思います。

セッション中に頂いた tweet

ありがとうございました!

  • コメント (Close): 0
  • トラックバック (Close): 0

Home > アーカイブ > 2014-07

検索
フィード
メタ情報

Return to page top