Vagrantではboxと呼ばれる仮想マシンの雛形をダウンロードして、ローカルパソコンに仮想マシンをたちあげることができます。
boxの配布サイトの一つであるVgrant Cloud(ベイグラント・クラウド)から、boxを検索し追加する方法を具体的な手順を初心者向けに解説します。
box(ボックス)を追加しvagrantで仮想マシンを立ち上げるまでの手順を説明します。
ここでは、「CentOS7(セントOS)」のBOXを追加していきます。
目次
前提条件
OS はMac OS です。
本記事は、VagrantとVirtualBoxがインストール済であることが前提です。
Vagrant box(ベイグラントのボックス)とは?
Vagrantのboxとは仮想マシンのテンプレート(雛形)のことです。
Linuxには、ディストリビューションといって複数の種類があり、その中でもシェアが大きくよく使わているのはUbuntu、Debian、CentOSの3つです。
これらのOSの雛形を「box」として取得し仮想マシンを立ち上げることができます。
Vagrantのboxはどこから探すのか?
Vagrantのboxは以下のサイトから探すことができます。
- https://www.vagrantup.com/(Vagrantの公式サイト)
- https://app.vagrantup.com/boxes/search(Vgrant Cloud)
- http://www.vagrantbox.es/(Vagrantの非公式サイト)
今回は「Vgrant Cloud」からboxを追加する方法を説明します。
Vgrant Cloud(ベイグラント・クラウド)とは?
「Vagrant Cloud(ベイグラント・クラウド」とは、Vagrantで使えるBoxを検索できるクラウドサービスです。Vagrant Cloudを使うと、Boxの導入が簡単できます。
Vgrant Cloud利用の条件
Vgrant Cloudを使うためには、Vagrant 1.5以降のバージョンが必要です。
Vgrantをインストール済の場合もターミナルから以下のコマンドでVagrantが1.5以上あるか確認しておきましょう。
vagrant -v
Vagrant 1.9.7
Vagrantのアップデートが必要な場合、具体的な方法は、「MacでVagrantのバージョンアップする方法」を参考にしてください。
Vgrant Cloudのboxを追加する方法
Vgrant Cloudからboxを検索し追加する方法を説明します。
Vgrant Cloudにアクセスし、利用したいBOXを探します。今回は、CentOS7 を導入します。
「CentOS/7」をクリックしてください。
以下の画面が表示されたら、「new」タブをクリックします。
すると、box追加のための、コマンドが表示されます。
表示された「vagrant init centos/7」をコピーしておきましょう。
Vgrant Cloudのboxを追加する方法
ディレクトリの準備
仮想マシンを管理するための、ディレクトリの準備します。
今回は、「vagrant」ディレクトリに下の「centos7」という名前のディレクリを作成します。
名前の付け方はos名とバージョンなど、後からみてもわかりやすい名前をつけるとよいでしょう。
ターミナル、もしくはiTerm2を開き、以下のコマンドを実行していきます。
「 mkdir」コマンドを実行し、ディレクトリ(フォルダ)を作成します。
mkdir -p vagrant/centos7
「cd」コマンドを実行し、作成したディレクトリに移動します。
cd vagrant/centos7
vagrant box の追加
さきほどVgrant Cloudからコピーしておいた「vagrant init centos/7」コマンドを実行しboxを追加します。
書式は、「vagrant init」 の後に[ベンダー名]/[Box名]を指定する構造になっています。
vagrant init centos/7
コマンドを実行すると、Boxの追加と初期化が同時に行えます。
vagrant init centos/7
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.
「ls」コマンドを実行して、ディレクトリの中を確認してみましょう。
ls
Vagrantfile
「Vagrantfile」が作成されていることが確認できました。
「Vagrantfile」とは仮想マシンへの接続情報などが記載されたVagrantの設定ファイルです。
追加したboxの確認
追加したVagrant boxを確認するには、「vagrant box list」コマンドを実行します。
今回追加して以外にもBOXがある場合、一覧で表示されます。
vagrant box list
vagrant起動
vagrantを起動させ、仮想マシンに接続してみましょう。
Vagrant起動
以下のコマンドを実行しVagrantを起動させます。
vagrant up
すると、「Bringing machine ‘default’ up with ‘virtualbox’ provider…」と表示され、文字列が流れ起動がスタートします。
初回のvagrant起動にはかなり時間がかかるため、待ちます。
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
==> default: Loading metadata for box 'centos/7'
default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v1707.01) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1707.01/providers/virtualbox.box
==> default: Successfully added box 'centos/7' (v1707.01) for 'virtualbox'!
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'centos/7' is up to date...
==> default: Setting the name of the VM: centos7_default_1502894494300_93994
==> default: Fixed port collision for 22 => 2222. Now on port 2202.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2202 (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:2202
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection reset. Retrying...
default: Warning: Remote connection disconnect. Retrying...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
==> default: [vagrant-hostsupdater] Checking for host entries
==> default: Rsyncing folder: /Users/takanori/vagrant/centos7/ => /vagrant
Vagrant起動状態を確認
正常にVagrantが起動しているか状態を確認するために、「vagrant status」コマンドを実行します。
vagrant status
Current machine states:
default running (virtualbox)
「running」と表示されたら、vagrantは正常に起動できています。
vagrantに接続
立ち上げた仮想マシンに以下のコマンドで接続します。
vagrant ssh
プロンプトの表示が以下のように変わったら、仮想マシンにログインできている状態を表します。
[vagrant@localhost ~]$
CentOSのバージョン確認
インストールされているCentOSのバージョン情報を確認してみましょう。
バージョン確認のためには「cat /etc/lsb-release」コマンドを実行します。
[vagrant@localhost ~]cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
CentOSのバージョンは「7.3.1611」がインストールされていることが確認できました。
ホストOSとゲストOSにどちらにいるか?
ホストOSとは自分のパソコンを指します。ゲストOSとは立ち上げた仮想マシン上のOS(今回でいえばCentOS)を指します。
ターミナルのプロンプト(コマンド入力待ち画面)の表示でホストOSのゲストOSのどちらにいるか見分けることができます。
ホストOSにいる場合はプロンプト表示は以下↓になります。
[コンピューター名]:[ユーザー名]
仮想マシンにいる場合のプロンプト表示は以下↓になります。
[vagrant@localhost ~]$
仮想マシンからログアウト
仮想マシン(ゲストOS)から抜けるには、「exit」コマンドを実行します。
[vagrant@localhost ~]exit
ログアウト
Connection to 127.0.0.1 closed.
仮想マシンからログアウトするとプロンプト(コマンド入力待ち画面)表示が以下ように変わります。
ゲストOS側からホストOS側に戻ったことが確認できます。
[コンピューター名]:[ユーザー名]$
追加したVagrantのboxの実態はどこにある?
追加した、Vagrant box は「home/.vagrant.d/boxes」に格納されています。
「.(ドット)」から始まるフォルダは隠しファイルとなっているため、通常Finderから見ることはできません。ターミナルから確認が必要です。
ホストOSにいる状態で、ターミナルから「ls」コマンドでフォルダの中を確認してみましょう。
ls ~/.vagrant.d/boxes centos-VAGRANTSLASH-7
追加したbox「centos-VAGRANTSLASH-7」が確認できました。
一つのboxに対して、複数の仮想マシンを構築可能
追加した1つのboxに対して、複数の仮想マシン立ち上げることができます。
必ずしも、1つのboxに対して仮想マシンは1つというわけでありません。
最後に
boxの配布サイトのひとつ、「Vgrant Cloud」からLinuxのディストリビューションの一つCentOSのboxを探し、vagrantで仮想マシンを立ち上げるまでの手順を説明しました。
CentOSの仮想マシンの立ち上げができたら、次はWEBサーバーをインストールしてみましょう。
- 仮想マシン(centOS7)にWebサーバーApacheをインストールしブラウザからWEBページを表示確認する方法
- 仮想マシン(centOS7)にWebサーバーNginxをインストールしブラウザからWEBページを表示確認する方法