Vagrantを触る
TOP > てきとうにこらむ > ゲーム作りとプログラミング日記 > Vagrantを触る
開発環境をサクッと作りたい
開発環境をOS問わずにサッと作りたいと感じるようになったので、Vagrantを触ることにした。
さんこう
練習
$ vagrant init precise32 http://files.vagrantup.com/precise32.box
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
tekitoh-no-MacBook-Air:ubuntu tekitoh$ ls
Vagrantfile
vagrant upしてみる
$ vagrant up
$ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686)
* Documentation: https://help.ubuntu.com/
New release '14.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 06:22:31 2012 from 10.0.2.2
vagrant@precise32:~$
このubuntuは12.04だし、いらないので削除
$ vagrant destroy
Are you sure you want to destroy the 'default' VM? [y/N] y
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives...
box
予めローカル上に保存しておくこともできる。
$ vagrant init
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
tekitoh-no-MacBook-Air:vagrant_getting_started tekitoh$ ls
Vagrantfile
tekitoh-no-MacBook-Air:vagrant_getting_started tekitoh$ vagrant box add precise32 http://files.vagrantup.com/precise32.box
Downloading or copying the box...
Extracting box...te: 2850k/s, Estimated time remaining: 0:00:04)
The box you're attempting to add already exists:
Name: precise32
Provider: virtualbox
そうだ、すでにあるので別にいらないんだった。
Vagrant.configure("2") do |config|
config.vm.box = "precise32"
end
$ vagrant up
$ vagrant ssh
これで入れました。
共有
ホスト側とvagrant側とのファイルの共有ができる。
$ ls /vagrant/
Vagrantfile
$ touch /vagrant/hoge
vagrant@precise32:~$ ls /vagrant/
hoge Vagrantfile
hogeというファイルを作る。ホスト側で見てみる。
$ ls
Vagrantfile hoge
hogeファイルができてた。ホスト側で自分のエディタを使えるというメリットがある。
プロビジョニング
Vagrantfile
config.vm.provision :shell, :path => "bootstrap.sh"
bootstrap.shで、pythonの開発環境を整備する。今回はPython プロフェッショナルプログラミングで必要な環境を整える。
#!/usr/bin/env bash
apt-get install -y build-essential
apt-get install -y libsqlite3-dev
apt-get install -y libreadline6-dev
apt-get install -y libgdbm-dev
apt-get install -y zlib1g-dev
apt-get install -y libbz2-dev
apt-get install -y sqlite3
apt-get install -y tk-dev
apt-get install -y zip
apt-get install -y python-dev
apt-get install -y python-distribute
apt-get install -y python-pip
pip install mercurial
プロビジョニングを実行させる
$ vagrant provision