【超入門】Vagrantで仮想マシンを動かす

2021.07.18
2024.03.24
サーバー
CentOSLinuxUbuntu

はじめに

Vagrantの入門として、超基本的な使い方の解説と実際にCentOSとUbuntuの仮想マシンを構築したいと思います。

Vagrantfileについても基本だけ触れたいと思います。

Vagrantとは

Vagrantとは、仮想マシンを簡単に構築、管理できるツールとなります。

仮想マシン自体の構築をするわけではないので、Virtual BoxやVMWareなどの仮想化ソフトと一緒に動くようになっています。

Vagrantには以下のような特徴があります。

  • 仮想環境を簡単に構築できる
  • Vagrantfileを作成すれば同じ環境を何度も構築できる
  • チームで同じ環境をそれぞれの端末で構築できる
  • テストのための使い捨ての環境を何度も同じ環境で構築できる

Vagrantのインストール

Vagrantで仮想マシンを構築するためにはVirtual Boxが必要なため、下記からダウンロードしてインストールしておきます。

Downloads – Oracle VirtualBox

Virtual Boxがインストールされていれば、Vagrantを下記からダウンロードしてインストールします。

Install | Vagrant | HashiCorp Developer

Install | Vagrant | HashiCorp Developer

Explore Vagrant product documentation, tutorials, and examples.

Vagrantがインストールされたかは、下記のコマンドで確認します。

1vagrant -v

基本的な使い方

まずはVagrantの超基本的な使い方について解説します。

まずは、Vagrantを利用するためのディレクトリを作成し,そこでVagrantの初期化をします。

初期化ではBoxと呼ばれる仮想マシンのベースイメージを指定して、初期化します。ここでは、hashicorp/bionic64というBoxを指定してます。

1❯ vagrant init hashicorp/bionic64

初期化が完了すると、Vagrantfileというファイルが作成されます。

Vagrantfileが作成されたら、仮想マシンの起動をします。

1❯ vagrant up

仮想マシンが起動したら、sshできるようになります。公開鍵の登録などをしなくても、vagrant sshですぐにsshできるようになっています。

1❯ vagrant ssh

仮想マシンでの作業が終われば、仮想マシンを削除、またはシャットダウンします。

1# 削除
2❯ vagrant destroy
1# シャットダウン
2❯ vagrant halt

CentOSを動かしてみる

実際にCentOSを動かしてみます。

任意のディレクトリを作成し、CentOSのBoxを指定してvagrantの初期化をします。

1❯ vagrant init centos/7

長めのコメントが含まれていますが、下記のようなVagrantfileが作成されます。

1Vagrant.configure("2") do |config|
2  config.vm.box = "centos/7"
3end

仮想マシンを起動します。

1❯ vagrant up

あとはsshして仮想マシン上で作業するだけです。sshするとvagrantというユーザでsshしていることがわかります。

1❯ vagrant ssh
2[vagrant@localhost ~]$

利用後は仮想マシンを削除、もしくはシャットダウンします。

1❯ vagrant destroy
1❯ vagrant halt

仮想マシンを削除しても、Vagrantfileは残るので、再度vagrant upすれば仮想マシンが起動します。

Ubuntuを動かしてみる

次は、Ubuntuを動かしてみます。

任意のディレクトリを作成し、UbuntuのBoxを指定してvagrantの初期化をします。

1❯ vagrant init ubuntu/xenial64

CentOSと同じように、下記のようなVagrantfileが作成されます。

1Vagrant.configure("2") do |config|
2  config.vm.box = "ubuntu/xenial64"
3end

仮想マシンを起動します。

1❯ vagrant up

sshして仮想マシンに入ります。

1❯ vagrant ssh
2Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-189-generic x86_64)
3
4 * Documentation:  https://help.ubuntu.com
5 * Management:     https://landscape.canonical.com
6 * Support:        https://ubuntu.com/advantage
7
80 packages can be updated.
90 updates are security updates.
10
11New release '18.04.5 LTS' available.
12Run 'do-release-upgrade' to upgrade to it.
13
14
15vagrant@ubuntu-xenial:~$

利用後は仮想マシンを削除、もしくはシャットダウンします。

1❯ vagrant destroy
1❯ vagrant halt

Vagrantfileの設定

vagrant initで作成されるVagrantfileについて簡単に解説します。

Vagrantfileとは、仮想マシンの構築時の設定を記述するファイルです。

Boxの指定やネットワークの設定、sshの設定など仮想マシン構築時の設定を記述することでvagrant upしたときに同じ設定の仮想マシンを簡単に構築できるようになっています。

構成のバージョン

下記の部分は構成のバージョンが2であることを示しています。この中に各種設定を記述していきます。

1Vagrant.configure("2") do |config|
2  # ...
3end

マシンの設定

config.vmはマシンの設定ができます。

例えば、

  • config.vm.box
  • config.vm.network

などがあります。

1Vagrant.configure("2") do |config|
2  config.vm.box = "ubuntu/xenial64"
3end

他にも色々設定があります。

Vagrantfile | Vagrant | HashiCorp Developer

Vagrantfile | Vagrant | HashiCorp Developer

The primary function of the Vagrantfile is to describe the type of machine required for a project, and how to configure and provision these machines. Vagrantfiles are called Vagrantfiles because the actual literal filename for the file is "Vagrantfile".

まとめ

Vagrantを利用すると、

  • 仮想環境を簡単に構築できる
  • Vagrantfileを作成すれば同じ環境を何度も構築できる
  • チームで同じ環境をそれぞれの端末で構築できる
  • テストのための使い捨ての環境を何度も同じ環境で構築できる

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee