電波ビーチ

☆(ゝω・)v

vagrant + virtualbox 事始

IaaSを調べてる一環です。

0. 環境

VirtualBox

VirtualBoxは(使ったこと無いけど)いつのまにか入れていた

$ VBoxManage -v
5.2.22r126460

vagrant

vagrantとかいうのを入れる。

$ brew cask  install vagrant
$ vagrant -v
Vagrant 2.2.0

次はローカル開発環境の構築だ。どうも最近はVagrantを使うのが主流のようである。  LinuxのISOイメージをダウンロードして、VirtualBox上にインストールして、ネットワークデバイスを有効にして、sshdの設定して、共有ディレクトリの設定して……みたいなめんどくさい作業がほぼ自動でできるようだ。  vagrant box addでOSのイメージファイルを追加して、vagrant initでVagrantファイルを作って、vagrant upするだけでOSが起動する。そしてvagrant sshSSH接続までできる。なにそれすごい。  Vagrantファイルをリポジトリで管理できるし、チーム開発のときはあらかじめ環境構築しておいたboxファイルをメンバーに配布して、vagrant upしてね、だけで済むのか。PuppetやChefなんかのプロビジョニングツールを組み合わせればさらにいろいろできるし。 https://qiita.com/katanov/items/1d99d27844392e380ec7#vagrant

仮想マシンの簡単な構築や、どこでも同じ環境を再現できるように仮想マシンを管理するためのコマンドラインツールです。 Rubyで実装されていて、WindowsMac OS XLinuxで動作します。 Vagrant自体には仮想化機能は無く、VirtualBoxなどの仮想化ソフトのフロントエンドとして機能し、仮想化ソフトの操作を簡単なコマンドで代行してくれます。
https://qiita.com/ozawan/items/160728f7c6b10c73b97e#vagrant%E3%81%A3%E3%81%A6%E3%81%AA%E3%81%AB

してみると、昔はVirtualBoxでそういう設定をいちいちしていたが、vagrantのおかげで楽になった、ということらしい。自分はvirtualbox自体使ってないので、現時点ではその程度の理解。

Provider

vagrantはべつにVirtualBox専用というわけではなくて、VMWareとかParallelsみたいな仮想化ソフトとかAWSなんかも扱える。VirtualBoxとかVMWareとかParallelsとかAWSvagrantではプロバイダーと呼んでいるらしい。プロバイダーはデフォルトではVirtualBoxだが、ここ https://www.vagrantup.com/docs/providers/basic_usage.html#default-provider にあるようにいくつかの方法で変更が可能。

1. 作業ディレクト

適当に作る。

$ mkdir -p Vagrant/handson_by_debian
$ cd Vagrant/handson_by_debian

名前どおり、今回はDebianでいくことにした。

2. 【Vagrant】Boxを探す、いれる、起動

Box

VirtualBoxでは入れるOSのisoイメージを用意してそれをぶち込んでセットアップ、という作業がある。VagrantのBoxを使えばそんなの必要なくなる。

Boxとはいろんな設定が最初から入っているファイル、という感じ。OSやら設定やらでたくさんあるのは容易に想像がつくが、https://app.vagrantup.com/boxes/search で探せる。適当にDebianで検索していちばんDLされているやつを選んだ。

仮想化ソフトでちまちまやっていったメモリとか容量とかの設定はこのBoxファイルに予め入っているらしい。これも後述するVagrantfileで変更が可能。

入れる

ちなみに入れ方(init)は上記のvagrantup.comの欲しいBoxをクリックすれば丁寧に教えてくれる。

$ vagrant init debian/jessie64
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.

そうすっとVagrantfileが作られているので覗いてみる。コメントアウトは表示させないようにすると

$ cat Vagrantfile | grep -v "#" | grep -v "^\s*$"
Vagrant.configure("2") do |config|
  config.vm.box = "debian/jessie64"
end

ちなみにこの中身も上記のvagrantup.comの対象のBoxページの"Vagrantfile"ってとこにまんま書かれている。

起動

vagrant upで起動。最初はふつうに時間がかかる。

成功したらVirutalBoxを立ち上げると、ちゃんと作られているし動いている。 undefined.jpg

vagrant ssh

なんか最初からssh接続できるっぽい。

$ vagrant ssh

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
vagrant@jessie:~$ 

次回

接続。