CentOS7環境を2つ構築する方法／Windows10 + VirtualBox + Vagrant

##はじめに
この記事では**Windows10**で、VirtualBoxとVagrantを利用して、仮想マシン**CentOS7**を2つ構築する手順について説明する。

##環境
- ホストOS：Windows10
- ゲストOS：CentOS7 2台（client, server）
- 仮想マシン構築ツール：VirtulaBox、Vagrant

###環境構築の方法について

環境構築は、**VirtuallBox**と**Vagrant**とを組み合わせた方法を使う。

Vagarntを使う理由は、VirtualBoxを直接さわらなくても、コマンドプロンプト上でコマンド操作や必要なファイルの設定をするだけで、ネットワーク設定や仮想マシンの構築が簡単にできるためだ。

環境構築後の仮想マシンへの接続はコマンドプロンプトからSSH接続してLinuxのコマンド操作ができる。もちろん、TeraTermやPuTTYを使ってSSH接続することも可能。


##前準備

###VirtualBox(Windows版)のダウンロード＆インストール

VirtualBoxの最新版は以下URLよりダウンロードする。
https://www.virtualbox.org/wiki/Downloads

ダウンロード後、PCにインストールする。

###Vagrant(Windows版)のダウンロード＆インストール

Vagrantの最新版は以下URLよりダウンロードする。
https://www.vagrantup.com/downloads.html

ダウンロード後、PCにインストールする。
インストールが完了したら、コマンドプロンプトを開いて次のようにコマンドを打つ。
インストールした vagrant のバージョンが表示されればインストール完了。

```plaintext:コマンドプロンプト
C:¥>vagrant -v
Vagrant 2.2.10
```

##CentOS7環境を2つ構築する手順

### Vagrantfileの作成

任意のディレクトリで`vagrant init`コマンドと打つと、Vagrantfileが作成される。

```plaintext:コマンドプロンプト
D:\hoge>vagrant init

D:\hoge>dir
2020/10/20  18:25             3,080 Vagrantfile
```

###Vagrantfileの編集

Vagrantfileを以下のように編集する。

```ruby:Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "centos/7"

  config.vm.define :client do | client |
    client.vm.hostname = "client"
    client.vm.network :private_network, ip: "192.168.33.10"
  end

  config.vm.define :server do | server |
    server.vm.hostname = "server"
    server.vm.network :private_network, ip: "192.168.33.20"
  end

  ...
```

####仮想マシンの構築

Vagrantfile編集後は、`vagrant up`コマンドを打てば、約2～3分でCentOS7が2台作成される。

```plaintext:コマンドプロンプト
D:\hoge>vagrant up --provider=virtualbox
Bringing machine 'client' up with 'virtualbox' provider...
Bringing machine 'server' up with 'virtualbox' provider...
==> client: Importing base box 'centos/7'...
==> client: Matching MAC address for NAT networking...
==> client: Checking if box 'centos/7' version '1905.1' is up to date...
～～～　省略　～～～
==> server: Setting hostname...
==> server: Configuring and enabling network interfaces...
==> server: Rsyncing folder: /cygdrive/d/hoge/ => /vagrant
```
#### 仮想マシンの起動状態の確認
`vagrant status`コマンドで仮想マシンの状態を確認できる。
`running`となっていれば起動成功。

```plaintext:コマンドプロンプト
D:\hoge>vagrant status
Current machine states:

client                    running (virtualbox)
server                    running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
```
###仮想マシンに接続
構築した仮想マシンへの接続は`vagrant ssh`コマンドを使う。
root権限のパスワードのデフォルトは`vagrant`。
以下のように、コマンドプロンプトからCentOS環境にSSH接続できた。

```plaintext:コマンドプロンプト
D:\hoge>vagrant ssh client
[vagrant@client ~]$
[vagrant@client ~]$ su -
Password:
[root@client ~]#
[root@client ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
```

以上。