「自分のPCはWindowsだけど、Linuxの開発環境が欲しい」
「サーバ間の処理をしたいため、複数の開発環境が欲しい」
など、開発環境を構築する際、色々な要件があると思います。そういう時に便利なツールが、「Vagrant」です。
Vagrantとは、仮想環境構築ツールのことで、開発環境やテスト環境を構築に適しています。Vagrantを使うことにより、冒頭の要件を満たす開発環境を構築することができます。また、Vagrantは仮想化ソフトウェアと組み合わせる必要があるため、VMwareやVartualBoxなどと組み合わせて使う必要があります。
今回は、Vagrant+VartualBoxを使って、Windows上にCentOS7の開発環境を構築してみます。各ツールのインストールから、開発環境にログイン可能になるまでの手順を紹介していきます。
目次
Vagrantインストール
Vagrant公式サイトのDOWNLOADからWindows版のインストーラをダウンロードします。ダウンロードしたインストーラを実行し、インストーラの指示に従いインストールします。
VirtualBoxインストール
Virtualbox公式サイトのDownloadsからWindows版のインストーラをダウンロードします。Vagrant同様、ダウンロードしたインストーラを実行し、インストーラの指示に従いインストールします。
Vagrantで開発環境を構築
Vagrant+VartualBoxのインストールが完了しましたら、VagrantでCentOS7の開発環境を構築してみましょう。開発環境の構築というのは、厳密に言いますと、VartualBoxに仮想マシンを作成するということです。
仮想マシンを作成するには「box」が必要です。boxとは、仮想マシン起動の際にベースとなるイメージファイルです。今回はVagrant Cloudにあるboxを使います。Vagrant Cloudとは、Vagrantで使えるboxを提供するクラウドサービスです。
Vagrantコマンド一覧
まず、Vagrantコマンド一覧を見てみましょう。基本的な操作は、表のコマンドを覚えておけば十分かと思います。他のコマンドについては「vagrant -h」で確認するか、VagrantのCOMMAND-LINE INTERFACEを確認してみましょう。
コマンド | 説明 |
---|---|
vagrant init | vagrntの初期化(Vagrantfileの作成) |
vagrant up | 仮想マシン起動 |
vagrant status | 仮想マシンの状態確認 |
vagrant halt | 仮想マシン停止 |
vagrant destroy | 仮想マシン削除 |
vagrant ssh | 仮想マシンにログイン |
vagrant ssh-config | 仮想マシンのログインに必要な設定情報を確認 |
vagrant -h | Vagrantコマンドの確認 |
Vagrantの設定ファイルを作成・編集
それでは、Vagrantの設定ファイルを作成してみましょう。Vagrantの設定ファイルは「Vagrantfile」というファイルです。まず、任意の場所に作業用フォルダを作成し、vagrantの初期化(Vagrantfileの作成)をします。
$ mkdir centos7 #作業用フォルダ作成 $ cd centos7 #作業用フォルダへ移動 $ vagrant init 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の編集をします。メモ帳などテキストエディタで以下の箇所を編集します。
編集箇所 | 説明 |
---|---|
config.vm.box = "[box名]" | 使用するboxを設定 |
config.vm.network "private_network", ip: "[IPアドレス]" | 仮想マシンにホストからのアクセス用IPアドレス設定 |
config.vm.synced_folder = "[ホストOS]", "[仮想マシン]", "[オプション] | ホストOSと仮想マシンの共有フォルダ設定 |
boxは先ほど紹介しました「Vagrant Cloud」から「centos/7」を使います。
IPアドレスはデフォルトで「192.168.33.10」が記載されています。仮想マシンの作成が1台目であれば、コメントアウトを削除して使用しましょう。2台目以降はIPを変更する必要があります。
共有フォルダは使う予定がなければ、コメントアウトを削除し、「disabled: true」のオプションを付与して無効にします。
=== # Every Vagrant development environment requires a box. You can search for # boxes at https://atlas.hashicorp.com/search. config.vm.box = "centos/7" #「centos/7」というboxを記載 === # Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network "private_network", ip: "192.168.33.10" #先頭の「#」(コメントアウト)を削除 === # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. # config.vm.synced_folder "../data", "/vagrant_data" config.vm.synced_folder ".", "/vagrant", disabled: true #「disabled: true」のオプションで、共有フォルダ設定を無効
なお、共有フォルダをWindowsで使用する場合は、ホストOSに「rsync」をインストールするか、ゲストOSに「Guest Additions」をインストールする必要があります。また、明示的に共有フォルダ設定を無効にしないと、Vagrant起動時に以下のエラーが表示されます。共有フォルダの設定は「共有フォルダを使える状態にする」または「共有フォルダを無効にする」ことが必須です。
$ vagrant up # 「共有フォルダを使える状態」または「共有フォルダを無効」をしていない場合、 # rsyncが見つからないというエラーが表示される "rsync" could not be found on your PATH. Make sure that rsync is properly installed on your system and available on the PATH.
仮想マシンを起動
Vagrantfileの編集が完了しましたら、仮想マシンを起動します。初めて起動する際にはboxのダウンロード、仮想マシンの作成を行った後、起動します。
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'centos/7' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0
仮想マシンにログイン
Windowsはデフォルトでsshが使えないため、sshクライアントソフト(Tera Termなど)をインストールするか、OpenSSHをインストールする必要があります。
sshが使えるようになりましたら、「vagrant ssh」で仮想マシンにログインできます。
$ vagrant ssh [vagrant@localhost ~]$
sshがインストールされていない場合は、以下のエラー内容が表示されます。
$ vagrant ssh # sshが実行できないというエラーが表示される `ssh` executable not found in any directories in the %PATH% variable. Is an SSH client installed? Try installing Cygwin, MinGW or Git, all of which contain an SSH client. Or use your favorite SSH client with the following authentication information shown below:
sshクライアントソフトを使う場合は、以下の内容で仮想マシンにログインできます。
項目 | 値 |
---|---|
IPアドレス | 「config.vm.network」で設定したIPアドレス |
ポート | 22 |
ユーザ名 | vagrant |
パスワード | 無し(rootのパスワードは「vagrant」) |
秘密鍵 | .vagrant/machines/default/virtualbox/private_key |
パスワードや秘密鍵の場所はboxによって異なります。基本はパスワードを聞かれましたら「vagrant」で問題ないです。秘密鍵の場所は「vagrant ssh-config」コマンドの「IdentityFile」で確認できます。
まとめ
Vagrant+VartualBox を使い、WindowsにCentOS7の開発環境を構築をしました。boxを変更することにより、ubuntuなど異なるOSで開発環境を構築することもできます。
Vagrant+VartualBoxをインストールするだけで、手軽に開発環境を構築・削除ができますので、ぜひ試してみましょう。