この記事では「VirtualBox」と「Vagrant」を使用して、仮想環境を構築する手順について紹介します。
最終目標として、Vagrantを使用して「Ubuntu 18.04」を仮想環境で動かしたいと思います。今回はあくまで「Ubuntu 18.04」を動かすことが目的なため、各種デフォルトの設定で行います。
※ Vagranfileの編集などは他の記事で紹介したいと思います。
Vagrant
Vagrantとは
Vagrant(ベイグラント)とは、仮想マシン環境の構築や管理するためのツールです。
構成情報を記述した設定ファイル(Vagrantfile)を元に、仮想環境の構築から設定までを自動で行うことが出来ます。このため、Vagrantfileがあれば同じ環境の仮想マシンを複数作成したり、複数人で同じ環境を構築することが出来ます。
仮想マシン環境の操作はコマンドで行うこととなりますが、簡単なコマンドで仮想マシンの構築、実行、削除、SSH接続等が可能になります。
開発環境や検証環境の構築など、途中で失敗しても簡単に一からインストールし直してまっさらな状態に戻して再度やり直すことも可能です。
Vagrantの公式ページ
環境のセットアップ
筆者の環境
参考までに私のインストール環境を紹介します。
OS | Windows 10 Home |
プロセッサ | Intel(R) Core(TM) i5-5200U 2.20GHz |
メモリ | 8.00 GB |
この記事ではVagrantのプロバイダ(仮想環境)として「VirtualBox」を利用します。
VirtualBoxのインストール
以下よりご自身が使用しているOS用のインストールファイルをダウンロードし、インストールを行ってください。
Vagrantのインストール
以下よりご自身が使用しているOS用のインストールファイルをダウンロードし、インストールを行ってください。
インストールが完了し再起動したら、以下のコマンドを実行してインストールされていることを確認します。
>vagrant --version
Vagrant 2.2.7
Vagrantの基本操作
Boxについて
Vagrantでは仮想マシンを実行するテンプレート(OS、ソフトウェアが含まれています)として、Boxと呼ばれるものがあります。Boxを元に仮想環境を構築していきます。
Boxは以下より検索することができ、UbuntuやCentOS等の公式Boxも公開されています。
試しに「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を使用する場合、プロバイダの操作は必要ありませんが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:~$
コマンドプロンプト内で上手く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クライアントからもログイン出来ます。
ユーザ名/パスワード
Vagrantを使用して作成した仮想マシンのユーザ名とパスワードは以下のようになっています。
ユーザ名 | パスワード |
vagrant | vagrant |
root | vagrant |
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-config | SSHでログインする際の設定確認 |
コメント
[…] 「VirtualBox」+「Vagrant」での仮想環境の構築手順 […]