概要
今まで、VirtualBoxで手動起動させていたVMをVagrantを使って起動できるようにとした時のvagrantについて備忘録を残します。
本稿は、
VirtualBox&Vagrantのインストール → 公開されているboxをlistに登録 → 登録したboxからVM起動
の流れで書いています。
また、VirtualBox,Vagrantのローカルへのインストールについてはインストーラが公式からダウンロードできますので簡単に書いています。
(boxのカスタマイズと既存VMのbox化、Vagrantfile内の設定項目について は別途 投稿できればいいなと思っています。)
インストール
ローカル環境
- Windows 8.1 64bit
VirtualBox
以下のリンクからインストーラをダウンロードする。
リンク
- インストーラ
VirtualBox-5.0.20-106931-Win.exe
任意の場所にインストールし、VirtualBox を起動できることを確認。
Vagrant
以下のリンクからインストーラをダウンロードする。
リンク
- インストーラ
vagrant_1.8.5.msi
こちらも任意の場所にインストールします。
コマンドプロンプト や PowerShell で以下を実行し、バージョンが表示されることを確認。
vagrant -v
表示されない場合は、Pathが通っていないことが考えられますので、
"システムの詳細設定" から "Vagrantをインストールした配下のbin" に環境変数を通してください。
boxのダウンロードとlistへの登録
現段階ではまだVMを起動できません。VMのイメージファイルの集まった"box"が必要になります。
今回は、Vagrantのサイトで配布されているboxイメージを使って作成していきます。
(boxのカスタマイズについては別途投稿できればと思っています。)
以下 コマンドプロンプト もしくは PowerShell で実行します。
vagrant box add centos/7
実行すると、メタデータをここからロードするから、providerを選んで! と、出力されます。
ここは "2) VirtualBox" を選んでください。
1) libvirt
2) virtualbox
3) vmware_fusion
4) vmware_workstation
Enter your choice:
providerを選ぶと、**"boxファイルのダウンロード"と"boxのlistへの登録"**が実行されます。
successfullyが表示されていれば登録が正常に完了しています。
boxのlistを以下で確認してください。
vagrant box list
centos/7 (virtualbox, xxxx.xx)
さあ、起動まであと少しです!!
Vagrantfileの作成
ここで作成するもの
- Vagrantfile:起動するVMの定義ファイル
- .vagrantフォルダ:起動するVMの情報が格納されるフォルダ
では、作っていきましょう。
Vagrantfileとはvagrantで起動するVMの定義ファイルです。任意のフォルダに移動して、登録したboxを"init"します。
vagrant init centos/7
initすることでフォルダ内にVagrantfileが作成されていますので確認してください。
出力はVagrantfileをこのフォルダに置いたよ!ファイルのコメントだけでなくvagrantup.comも読んでね!と書いてあります。
今回はVagrantfileの変更は行わずそのまま起動させてみます。
(Vagrantfileの中については別途 投稿できればと思っています。)
VMの起動
Vagrantfileがあるフォルダに移動して以下を実行しVMを起動させます。
初回実行時に**.vagrantフォルダ**を作成し、VMの情報を配置します。
vagrant up
※
vagrant up
時に様々なエラーが出ることが予想されますので、都度 対処は必要になります。
以下 よく起きそうなエラーの対処法を記述します。rsyncのエラーが出る場合:
ダウンロードしたboxのVagrantfileの設定が悪さをしている可能性があります。
そのため、起動するVMのVagrantfileで設定を上書きしてあげます。
ダウンロードしたboxのVagrantfileはユーザホームの vagrant.d\boxes 内にダウンロードされていますので、syncしているフォルダを確認してください。
config.vm.synced_folder ".", "syncしているフォルダ", disabled: true
sshの認証でエラーが出る場合:
vagrantユーザの "公開鍵を格納する .ssh ディレクトリ" or "公開鍵" のパーミッションが間違っています。
VBoxでVMを起動します。ログイン画面から、vagrantユーザのパスワード認証でログインしパーミッションを変更してあげることで、vagrantで起動できるはずです。
出力された項目を見てみると、なんとなくわかると思いますが、
vagrant というユーザで 127.0.0.1(host)の2222ポートにssh接続しています。
(2222が埋まっている場合は2200などに変わります)
接続はVM(guest)の22ポートへPortForwardingされたあと、VMの各種設定をこなしています。
これで、VMの起動ができたので あとは、TeraTerm や poderosa などのクライアントでssh接続できれば問題なしです。
VMへのssh接続
接続情報
- 接続先:localhost
- ポート:2222
- ユーザ:vagrant
- パスワード:vagrant(デフォルトパスワード)
VMの停止
停止は以下で出来ます。
vagrant halt
(出力にgraceful shutdown
と出力されています。優雅にシャットダウンをしてくれる...
パワーオフではなくゲストOS側で shutdown -h now
してくれているのだろう、多分...)