「VirtualBox」+「Vagrant」での仮想環境の構築手順

Ubuntu

この記事では「VirtualBox」と「Vagrant」を使用して、仮想環境を構築する手順について紹介します。

最終目標として、Vagrantを使用して「Ubuntu 18.04」を仮想環境で動かしたいと思います。今回はあくまで「Ubuntu 18.04」を動かすことが目的なため、各種デフォルトの設定で行います。

※ Vagranfileの編集などは他の記事で紹介したいと思います。

Vagrant

Vagrantとは

Vagrant(ベイグラント)とは、仮想マシン環境の構築や管理するためのツールです。

構成情報を記述した設定ファイル(Vagrantfile)を元に、仮想環境の構築から設定までを自動で行うことが出来ます。このため、Vagrantfileがあれば同じ環境の仮想マシンを複数作成したり、複数人で同じ環境を構築することが出来ます。

仮想マシン環境の操作はコマンドで行うこととなりますが、簡単なコマンドで仮想マシンの構築、実行、削除、SSH接続等が可能になります。

vagrant upで仮想マシンを実行している様子

開発環境や検証環境の構築など、途中で失敗しても簡単に一からインストールし直してまっさらな状態に戻して再度やり直すことも可能です。

Vagrantの公式ページ

環境のセットアップ

筆者の環境

参考までに私のインストール環境を紹介します。

OSWindows 10 Home
プロセッサIntel(R) Core(TM) i5-5200U 2.20GHz
メモリ8.00 GB

この記事ではVagrantのプロバイダ(仮想環境)として「VirtualBox」を利用します。

VirtualBoxのインストール

以下よりご自身が使用しているOS用のインストールファイルをダウンロードし、インストールを行ってください。

Virtualboxダウンロード先

Vagrantのインストール

以下よりご自身が使用しているOS用のインストールファイルをダウンロードし、インストールを行ってください。

Vagrantダウンロード先

インストールが完了し再起動したら、以下のコマンドを実行してインストールされていることを確認します。

>vagrant --version
Vagrant 2.2.7
Vagrantのインストールを確認

Vagrantの基本操作

Boxについて

Vagrantでは仮想マシンを実行するテンプレート(OS、ソフトウェアが含まれています)として、Boxと呼ばれるものがあります。Boxを元に仮想環境を構築していきます。

Boxは以下より検索することができ、UbuntuやCentOS等の公式Boxも公開されています。

Vagrant Cloud

試しに「ubuntu」で検索すると複数の候補が出てきます。命名規則として「ユーザ名/Box名」となっています。「ubuntu/trusty64」であれば、Ubuntu公式のUbuntu 14.04(64bit)のBoxであるということが分かります。

どのBoxを使用すればいいかわからない場合は、各OSの公式Boxを使用してみてください。

この記事では、Vagrant公式の「hashicorp/bionic64」を使用します。このBoxではUbuntu 18.04(64bit)が使用出来ます。

Vagrant用のフォルダの作成

「C:\Vagrant」をVagrant用のフォルダとし、この中に各Box用のフォルダを作成することにします。

> mkdir C:\Vagrant\ubuntu1804
> cd C:\Vagrant\ubuntu1804

Vagrantfileの生成

以下のコマンドを実行して「Vagrantfile」を生成します。

> vagrant init hashicorp/bionic64
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.

他のBoxを使用する場合は「vagrant init ユーザ名/Box名」と実行して下さい。

上記コマンドを実行したディレクトリ内に生成されます。今回は「C:\Vagrant\ubuntu1804」内に生成されます。

このVagrantfileを編集すると仮想マシンの構成情報等をカスタマイズすることが出来ますが、この記事ではそのままの状態で実行したいと思います。

仮想マシンの実行

以下のコマンドで仮想マシンを実行することが出来ます。初回はBoxイメージをダウンロードするため時間がかかります。

> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/Vagrant/ubuntu1804
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
vagrant up実行後

Vagrantを使用する場合、プロバイダの操作は必要ありませんがVirtualBoxを開いてみると、仮想マシンが起動しているのが確認出来ます。

VirtualBoxを確認

仮想マシンへSSH接続

以下のコマンドを実行すると、仮想マシンへSSH接続出来ます。

> vagrant ssh
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-58-generic x86_64)Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-58-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Mon Mar  2 08:15:23 UTC 2020

  System load:  0.0               Processes:           88
  Usage of /:   2.5% of 61.80GB   Users logged in:     0
  Memory usage: 10%               IP address for eth0: 10.0.2.15
  Swap usage:   0%

 * Multipass 1.0 is out! Get Ubuntu VMs on demand on your Linux, Windows or
   Mac. Supports cloud-init for fast, local, cloud devops simulation.

     https://multipass.run/

 * Latest Kubernetes 1.18 beta is now available for your laptop, NUC, cloud
   instance or Raspberry Pi, with automatic updates to the final GA release.

     sudo snap install microk8s --channel=1.18/beta --classic

 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch

0 packages can be updated.
0 updates are security updates.


vagrant@vagrant:~$
vagrant ssh 実行後

コマンドプロンプト内で上手くSSH接続出来なかった場合や、他のSSHクライアントで接続したい場合は以下のコマンドを実行して接続先等を確認して下さい。

> vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Vagrant/ubuntu1804/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

上記から必要なところだけ抜き出すと以下のようになっています。環境などによって異なるため必ずコマンドの実行結果を確認して下さい。Vagrantで複数の仮想マシンを立ち上げているときは接続先のポートが変わってきます。

接続先127.0.0.1
ユーザvagrant
接続先ポート2222
鍵ファイルC:/Vagrant/ubuntu1804/.vagrant/machines/default/virtualbox/private_key

※ 接続する際のパスワードは「vagrant」となっています。

上記の情報を元に他のSSHクライアントからもログイン出来ます。

TeraTermで接続

ユーザ名/パスワード

Vagrantを使用して作成した仮想マシンのユーザ名とパスワードは以下のようになっています。

ユーザ名パスワード
vagrantvagrant
rootvagrant

Ubuntuで管理者権限でコマンドを実行する際は、rootユーザではなくコマンドの先頭に「sudo」をつけて実行するのが基本となっているため、rootユーザを使用する機会は少ないかと思います。

ホストOSとゲストOS間のファイル共有

デフォルトでは、ホストOSのVagrantfileがあるフォルダが、ゲストOSの「/vagrant」と共有されるようになっています。

Vagrantの操作コマンド

以下の各コマンドで仮想マシンを操作することが出来ます。

vagrant up仮想マシンの起動
vagrant halt仮想マシンのシャットダウン
vagrant reload仮想マシンの再起動
vagrant supend仮想マシンの一時停止
vagrant resume仮想マシンの一時停止からの復帰
vagrant status仮想マシンのステータスを表示
vagrant destroy仮想マシンの削除(Boxはそのまま)
vagrant ssh仮想マシンにSSHでログイン
vagrant ssh-configSSHでログインする際の設定確認

コメント

  1. […] 「VirtualBox」+「Vagrant」での仮想環境の構築手順 […]

タイトルとURLをコピーしました