Windows7にVirtualBoxとVagrantで仮想環境を構築する手順です。
#1. 背景
新しく開発環境を構築しようと思いました。
その際、VirtualBoxとVagrantでの仮想環境が使いやすいと聞き、採用。
情報を検索すると比較的多くヒットしたので、これを参考にすればすんなり行くかと思ったのですが、ゲストOS起動段階で、以下のエラーが発生。
The executable 'cygpath' Vagrant is trying to run was not
found in the %PATH% variable. This is an error. Please verify
this software is installed and on the path.
メッセージの通り、単にCygwinが入ってなかったことが原因だっただけなので、特に難しいことはありませんでした。しかし、Cygwinが必要という情報は日本語では出てこなかったので一応、私の環境で行った手順を記述します。
#2. 前提条件
- ホストOS:Windows 7 Professional(64ビット)
- ゲストOS:CentOS 7.0 x64
- VirtualBox:5.1.22
- Vagrant:1.9.4
#3. 各種インストール
##3-1 VirtualBoxのインストール
以下から、Windows用のインストーラをダウンロードする。
https://www.virtualbox.org/wiki/Downloads
普通に「Windows hosts」を選べばOK。
ダウンロード完了後、実行してインストールする。
いろいろ聞かれるけど、通常はそのまま進めていけば問題なし。
不要かもしれないけど、念のためエクステンションパックも導入。
Oracle VM VirtualBox Extension Pack の横にある
「All supported platforms 」を選択してダウンロード&インストール。
##3-2 Vagrantのインストール
以下から、Windows用のインストーラをダウンロード。
https://www.vagrantup.com/downloads.html
「Universal (32 and 64-bit)」をクリックしてダウンロード。
こちらもダウンロード完了後、実行してインストール。
こちらも特に変更せずにインストールすれば問題なし。
##3-3. Cygwinのインストール
以下から、インストーラをダウンロード。
https://www.cygwin.com/
こちらもダウンロード後、実行してインストールするだけなのですが、
少し複雑なので、わからない方は他の記事等を検索して、インストールしてください。
また、パスを通しておく必要もあるので、ご注意。
#4. 仮想マシンの作成
##4-1. ゲストOSをVirtualBoxへ登録する
コマンドプロンプトを起動し、以下のようなコマンドを実行する。
vagrant box add {登録名} {ファイルURL}
私の場合、CentOS7.0なので、以下のコマンドを実行。
vagrant box add CentOS70 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
なお、別のゲストOSを登録する場合は、以下を参照。
http://www.vagrantbox.es/
##4-2. vagrantfileの編集
まず、任意の場所にフォルダを作成する。
ここでは、C:¥Users¥userにCentOSフォルダを作成したものとして進めます。
続いて、以下のコマンドを実行して、vagrantファイルを作成する。
ただし、2行目の"CentOS70"は、4-1での登録名に適宜修正して実行すること。
C:¥Users¥user> cd CentOS
C:¥Users¥user¥CentOS> vagrant init CentOS70
CentOSディレクトリ内に作成されたvagrantファイルを以下のように編集する。
#コメントアウトを外す
config.vm.network "private_network", ip: "192.168.33.10"
#5. ゲストOSの起動・停止
##5-1. 起動
以下のコマンドを実行して、ゲストOSを起動する。
C:¥Users¥user¥CentOS> vagrant up
※なお、ここでCygwinが入っていないorパスが通っていないと、記事冒頭に記載したエラーが発生しました。
##5-2. ゲストOSへの接続
TeraTerm等を使ってゲストOsへSSH接続する。
接続情報は以下の通り。
- 接続先:192.168.33.10
- ポート:22
- SSHバージョン:SSH2
- ユーザ名:vagrant
- パスワード:vagrant
##5-3. 停止
以下のコマンドを実行して、ゲストOSを停止する。
C:¥Users¥user¥CentOS> vagrant halt
#6. その他の環境設定
vagrantファイルを編集することで、様々な設定を行えます。
以下に例を挙げます。
#ホストOSとゲストOSでディレクトリを共有する
#複数共有した場合は、そのまま複数行記述するだけ
config.vm.synced_folder "ゲストOS側のパス", "ホストOSのパス"
#ゲストOSの使用メモリを変更する
#コメントアウトを外して、値を変更する
vb.memory = "1024"
ゲストOS起動中の場合は、以下のコマンドでリロードする。
C:¥Users¥user¥CentOS> vagrant reload
#余談
今回、CentOS 7.0を選択したのですが、どうやらCentOS 7.0では
serviceコマンドとchkconfigコマンドが非推奨らしく、systemctlコマンドが推奨されているようです。
chkconfigコマンドは
systemctl {enable/disable} {service name}
serviceコマンドは
systemctl {start/stop/restart/status} {service name}
のように実行するみたいです。
例えば、Apacheの起動は以下のようになります。
#systemctl enable httpd
#systemctl start httpd