Windows+VirtualBox+Vagrant2017/08/07LinuxvagrantVirtualBoxWindows最近会社で仮想マシンつくっては壊してつくっては壊してって作業が増えてきて、もう手作業じゃやってられないのでVagrantをためしてみました。作って壊してならDockerがぴったりだしおうちで使ってるから学習コスト低くてええやんって思ったんだけど、会社のPCに入れていい仮想環境はVirtualBoxだけで、直にDockerをいれちゃいけないので仕方なくこうなりました。Vagrantとは仮想化基盤への操作を自動化するツール。主な用途は仮想マシンの作成の自動化。EC2、Hyper-V、Docker、LXCなどなど。VagrantのインストールVirtualBoxはもうインストールしてあるものとします。Vagrantを以下からインストール。インストール時のコンフィグは特にいじらずそのまま。最後に再起動させられます。以下より好きなOSのBoxファイルを検索します。BoxファイルってのはOSイメージが入ったisoファイルみたいな認識でOKです。CloudってのはそのBoxを誰でも置いておくことができるとこって認識でOKです。https://app.vagrantup.com/boxes/searchおれはCentOS6.9に用事があったのでCentOSとかで検索しました。CentOS/6が最新版で中身が6.9だとのことなのでこの「CentOS/6」というタグをメモっておきます。そんでそのタグを使ってコマンドプロンプトで以下のコマンドを入力。CenOS/61ちょっと待つとどの仮想化基盤のBoxイメージを持ってきますかと聞かれます。desktopの4種類がありました。3つ目のVirtualBoxを選択するため「3」と入力。ダウンロードが走ります。終わったら以下のコマンドでダウンロードできたか確認。Vagrantfileの作成Box名を指定して、Vagrantfileを以下のコマンドで初期化・作成します。Vagranfileってのは仮想マシン作成時のメモリ割り当て量とか仮想NIC設定とかの仮想マシンインストール設定を記述したファイル。これをもとにVagrantが仮想マシンの作成を自動化してくれます。Vagrantfileの編集コマンドプロンプトの作業ディレクトリにVagrantfileが作成されているはずなので、テキストエディタで編集します。これいろいろいじれそうなのでお盆の宿題にします。メモリ割り当て量と、NICまわりだけ設定しておきます。(略)#下記をアンコメントしブリッジアダプタ作成。#ipアドレスとサブネット、MACアドレスを追記で指定。#サブネットとMACアドレスの指定は任意。"080027000001"#下記を追記し、今回追加したブリッジアダプタのデフォゲを仮想マシンのシェルを利用して追加。"1024"end(略)12345678910111213141516171819202122232425262728293031デフォゲ設定は仮想マシン作成後に仮想マシンのシェルから設定するように書きました。これくらいVargrantのデフォルトの機能でやってくれんかなと思うんですけど、Vagrantは仮想化基盤の操作をラップするものなので、仮想化基盤からいじれないものは基本的にいじれないんでしょう。ちなみにですが、eth0はBoxファイルの設定としてNATアダプタにすでに割り当てられていましたので、今回追加したブリッジアダプタはeth1として割り当てられます。eth0はVagrantが仮想マシン構築後にシェルを呼び出してコマンドをたたくときにsshで利用するっぽいです。rsyncの無効化vagrantは仮想マシン構築中にホスト側のコマンドプロンプト作業ディレクトリをゲスト側にrsyncでマウントしてくれる設定になっています。ありがたいんですが、この作業ディレクトリ内に日本語が含まれるファイルやディレクトリが存在すると、2バイト文字の性で起動後しばらくするとエラー吐いて勝手にシャットダウンしてなんとBoxを削除してしまいます。基本的に無効にしておきましょう。下記を適当なとこに追記します。Box起動いよいよ以下のコマンドでBoxを起動。up1作業ディレクトリ内に存在するVagratfileの内容に従い、だばーっと処理内容が流れます。VirtualBoxのコンソールからログインネームvagrant、パスワードvagrantでログインできて無事いろいろできてるか確認。ちなみにvagrantユーザはパスワードなしでsudo使えます。ssh秘密鍵のありかVagrantで構築される仮想マシンのsshdは、デフォルトでssh公開鍵認証のみを許可しており、パスワードログインを行うことができません。upした作業ディレクトリからみた以下の相対パスにあります。Box削除つくった仮想マシンで好きなことをやります。やりたいことが終わり、仮想マシンが不要になった際にそれを削除するコマンドがこちら。destroy1これで仮想マシンを破棄できます。VirtualBoxコンソールから直で削除するのと一緒です。仮想マシン作成後に加えられたあらゆる変更も破棄されます。upするたびに、Vagrantfileに従ってまっさらな仮想マシンがコマンド一発で作成できるようになります。仕組みを学んでいくのもいいけど、こういう便利なツールの使い方も随時勉強して、効率よく物事を進めていきたい。