- 2014-07-07 (月) 8:00
- Vagrant
JAWS-UG三都物語 2014 にて「開発現場で活用するVagrant」という発表を行いました。
Photo By Yuko Oshima
5 つトラックがあるなか、テクニカルトラックでの発表でした。開放感を感じる会場で、快適にセッションを行うことができました。
発表内容
Vagrant を現場で活用していく上で参考になる情報を、と考えたところ、やはり実際に動くデモが良いと思い、デモを中心にセッションを行いました。
発表資料は、以下です。
デモで利用した Varantfile などは、下記で公開しています。
https://github.com/shin1x1/vagrant-demo-20140705
デモでは、同じ PHP アプリケーションについて仮想環境やプロビジョニングツールを変えて構築を行いました。(実際に一からコードを書く時間が無かったので、できあがったものをお見せする形でした。)
Vagrant と連携ツールの整理
Vagrant の話になると、VirtualBox や Chef など多くのツールが一緒に登場してきます。
こららを頭の中で整理できていないと、カスタマイズしたり、トラブルが発生した際にどれを見れば良いかが分からない、という状況になりがちです。
セッションでは、連携ツールを「仮想環境」と「プロビジョニング」に分けて整理してみました。
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
ありがとうございました!
— mollifier (忍者) (@mollifier) July 5, 2014
Yoの使い方が分からん #jawsug
— 片山 暁雄 (@c9katayama) July 5, 2014
あの議員さんはVagrantがわからなくて会見でうわあああああああってなったのか………! #jawsug #santo
— yamadoo (@MadaYama) July 5, 2014
VargrantDocker入門はこちらで。
http://t.co/PTqQrAcv5d
#jawsug #santo
— s.hiruta (@web_se) July 5, 2014
YOインストールしてみたけど、使い方がわからなくてググってる #jawsug #santo
\
— あみだく (@amidaku) July 5, 2014
デモが素晴らしい!Vagrant、帰ったらすぐ使える勢い #jawsug #santo #track2
— yamadoo (@MadaYama) July 5, 2014
きゃー、新原さーんがVagrantデモ中。あれ?社員がw #jawsug #santo http://t.co/6joHeG6tyV
— Kazutaka Goto ☁ 後藤和貴 (@kaz_goto) July 5, 2014
とてもわかりやすいセッションだけぢ、YO!の使い方がわからないくて送れない件 #jawsug #santo
— ばしし (@rada_bashishi) July 5, 2014
Vagrantの基本が詰まったいいお話。
#jawsug #santo
— f_prg (@f_prg) July 5, 2014
vagrant upのみにこだわるが大切 #jawsug #santo
— kunihiro morita (@morita92hiro) July 5, 2014