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 sshでSSH接続までできる。なにそれすごい。 Vagrantファイルをリポジトリで管理できるし、チーム開発のときはあらかじめ環境構築しておいたboxファイルをメンバーに配布して、vagrant upしてね、だけで済むのか。PuppetやChefなんかのプロビジョニングツールを組み合わせればさらにいろいろできるし。 https://qiita.com/katanov/items/1d99d27844392e380ec7#vagrant
仮想マシンの簡単な構築や、どこでも同じ環境を再現できるように仮想マシンを管理するためのコマンドラインツールです。 Rubyで実装されていて、Windows、Mac OS X、Linuxで動作します。 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とかAWSをvagrantではプロバイダーと呼んでいるらしい。プロバイダーはデフォルトでは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を立ち上げると、ちゃんと作られているし動いている。
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:~$
次回
接続。