新人研修2018 Vagrantを使ってみよう

## はじめに

* Vagrantを使って、VirtualBox上にCentOS7.5をインストールする手順です。
* Vagrant自体の説明は研修のテキストを参照してください。

---

## 想定する環境

* Windows7(32bit,64bit) 
* Proxy環境下での構築を前提としています。

---

### さっそく始めましょう

---

### VirtualBoxのインストール

* [Oracle VirtualBox Download](http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp)からダウンロードしてインストールします。
* 2018年6月26日時点の最新版は5.2.12です。
* 特筆すべき点はありませんので、次へ次へでインストールしてください。

---

### Vagrantのインストール

* [ここから](https://www.vagrantup.com/downloads.html)ダウンロードしてインストールします。
* 2018年6月26日時点の最新版は2.1.1です。
* 特筆すべき点はありませんので、次へ次へでインストールしてください。

---

### プロキシの設定

* boxファイルをダウンロードするときにインターネットに接続しますが、プロキシ設定が必要となります。
* コンピュータ - プロパティ - システム詳細設定 - 環境変数 - 新規 でhttp_proxyとhttps_proxyを設定してください。(http://から記載します）

---

### プラグインのインストール

* コマンドプロンプトで以下のコマンドを実行します。
* このプラグインはVagrant管理下のOS起動時にプロキシを自動的に設定してくれるプラグインです。たとえばyum,wget,curl利用時にproxyの設定をする必要が無くなります。
* コマンドプロンプトでvagrantコマンドが使用できない場合は、パスが通っていない可能性があります。コンピュータ - プロパティ - システム詳細設定 - 環境変数 - システム環境変数「Path」を編集し、「C:\HashiCorp\Vagrant\bin」を追加してください。

```
c:\vagrant> vagrant plugin install vagrant-proxyconf
```

---

### プラグインがインストールできたことを確認

* vagrant-proxyconf が表示されれば成功です。

```
c:\vagrant> vagrant plugin list
vagrant-proxyconf (1.5.2)
```

---

### Vagrantを使って<br/>CentOSを起動してみよう

---

#### １．ディレクトリを作成する

C:¥vagrant¥centos75ディレクトリを作成します

---

#### ２．Vagrantfileを作る

* C:¥vagrant¥centos75¥Vagrantfileというファイルを作成。
* PROXY_HOST,PROXY_PORTは環境に合わせて変更

```Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.define "test" do |node|
        node.vm.box = "bento/centos-7.5"
        node.vm.hostname = "test"
        node.vm.network :private_network, ip: "192.168.1.10"
  end
  config.ssh.insert_key = false
  config.vm.provider :virtualbox do |vb|
     vb.gui = false
     vb.memory = 512
  end
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http = "http://PROXY_URL:PROXY_PORT/"
    config.proxy.https = "http://PROXY_URL:PROXY_PORT/"
    config.proxy.no_proxy = "localhost,127.0.0.1,192.168."
  end
end
```

----

#### ３．CentOSを起動します。

* コマンドプロンプトでvagrant up

```
c:\vagrant\centos75>vagrant up
Bringing machine 'test' up with 'virtualbox' provider...
==> test: Importing base box 'bento/centos-7.5'...
==> test: Matching MAC address for NAT networking...
・・・・
==> test: Mounting shared folders...
    test: /vagrant => C:/vagrant/centos75
```

* うまく起動できた人は「動作確認」の章まで飛ばしてください。(32bitOSを使っている人はうまくいかないかも）

---

#### 起動がうまくいかない人は、次の手順を試してみてください。

---

#### vagrantエラーあるあるを確認する

* vagrant起動時にcurlを叩くが、dllがないと言われることがあるらしい - [VagrantでBox追加時にエラーが出た時の話](http://blog.naba.biz/entry/2016/01/19/220230)


---

#### boxファイルをダウンロード

* boxファイル(OSイメージ)をダウンロードして、c:\centos-7.5という名前で配置。

```
https://app.vagrantup.com/bento/boxes/centos-7.5/versions/201806.08.0/providers/virtualbox.box
```

---

#### boxファイルをvagrantに認識させる

* コマンドプロンプトで以下を実行。successfullyが表示されること。

```
c:\vagrant\centos7.3>vagrant box add bento/centos-7.5 file:///C:/centos7.5
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'bento/centos-7.5' (v0) for provider:
    box: Unpacking necessary files from: file:///C:/centos7.5
    box: Progress: 100% (Rate: 5305M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'bento/centos-7.5' (v0) for 'virtualbox'!
```

---

#### boxファイルが認識できていることを確認

* コマンドプロンプトでvagrant box listを実行
* bento/centos-7.5 (virtualbox, 0)が表示されていることを確認

```
c:\vagrant\centos75>vagrant box list
bento/centos-7.5 (virtualbox, 0)
```

---

#### CentOSを起動します。

* コマンドプロンプトでvagrant up

```
c:\vagrant\centos75>vagrant up
Bringing machine 'test' up with 'virtualbox' provider...
==> test: Importing base box 'bento/centos-7.5'...
==> test: Matching MAC address for NAT networking...
・・・・
==> test: Mounting shared folders...
    test: /vagrant => C:/vagrant/centos75
```


---

## 動作確認

---

### 起動確認

* 無事起動できていることを確認する。
* コマンドプロンプトでvagrant statusを実行し、runningになっていることを確認

```
$ vagrant status
Current machine status:

test running (virtualbox)
```

---

### ログイン確認

* teratermでSSHログインできることを確認

IPアドレス：192.168.1.10
ユーザID:vagrant
パスワード:vagrant

これでインストールは完了です。

---

###プロキシ設定確認

* ncコマンドをインストール

```
$ sudo yum -y install nc
```

* ncコマンドが動くことを確認（localhost:22が疎通できることを確認）

```
$ nc -v -z localhost 22
Connection to localhost 22 port [tcp/ssh] succeeded!
```

---

### 以上で終わりです。