Vagrantfileに設定したprivate_networkが有効にならなかったときの対処

# はじめに
Windows10にVagrantをを入れてCentOS7をインストールしよう([1](https://qiita.com/erik_t/items/d7f7abbf7deafa4c6fe4)、[2](https://qiita.com/erik_t/items/909efb63fd389f486ec3)、[3](https://qiita.com/erik_t/items/2e3c43cfe8731621b82d)、[4](https://qiita.com/erik_t/items/8d006b599815c8fbf38b)、[5](https://qiita.com/erik_t/items/9fbe7b5630b1f62893a1)、[6](https://qiita.com/erik_t/items/11f24633f4248e4f33f0))の方法で
いくつも仮想環境を作ったり消したりしていたのですが、
ある時Vagrantfileに設定したprivate_networkが有効にならないという現象が起こったので対処法を調べました。

# 使用ツール
- Tera Term

# 原因
Vagrantfileのprivate_network設定に`auto_config:false`を記載していなかったため、
Vagrantが自動でネットワークを設定してしまっていたためでした。

IPアドレスがそれぞれ
`192.168.33.10`、`192.168.33.20`、`192.168.33.30`、`192.168.33.40`
の4つの仮想環境を作成し、`192.168.33.30`、`192.168.33.40`の仮想環境を消して、
`192.168.33.50`の仮想環境を新たに作ったら、
Vagrantが新しく作った仮想環境に`192.168.33.30`のIPアドレスを振ってしまい、
「`192.168.33.50`を設定したはずなのに、なぜ`192.168.33.30`になってしまうの？」
と悩むことになったのです。

# 修正手順
[1. Vagrantfileの修正](https://qiita.com/erik_t/items/0f61b293408fd7707037#1-vagrantfile%E3%81%AE%E4%BF%AE%E6%AD%A3)
[2. Vagrantfile再読み込み](https://qiita.com/erik_t/items/0f61b293408fd7707037#2-vagrantfile%E5%86%8D%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF)
[3. 仮想環境にログインしてネットワーク確認](https://qiita.com/erik_t/items/0f61b293408fd7707037#3-%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%A6%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E7%A2%BA%E8%AA%8D)
[4. デバイスの状態確認](https://qiita.com/erik_t/items/0f61b293408fd7707037#4-%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E7%8A%B6%E6%85%8B%E7%A2%BA%E8%AA%8D)
[5. デバイスの接続プロファイルの詳細を確認](https://qiita.com/erik_t/items/0f61b293408fd7707037#5-%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E6%8E%A5%E7%B6%9A%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E8%A9%B3%E7%B4%B0%E3%82%92%E7%A2%BA%E8%AA%8D)
[6. ipv4.addressesに指定したいIPアドレスを設定](https://qiita.com/erik_t/items/0f61b293408fd7707037#6-ipv4addresses%E3%81%AB%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84ip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%A8%AD%E5%AE%9A)
[7. デバイス再起動](https://qiita.com/erik_t/items/0f61b293408fd7707037#7-%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E5%86%8D%E8%B5%B7%E5%8B%95)
[8. pingを打ってうまくいったか確認](https://qiita.com/erik_t/items/0f61b293408fd7707037#8-ping%E3%82%92%E6%89%93%E3%81%A3%E3%81%A6%E3%81%86%E3%81%BE%E3%81%8F%E3%81%84%E3%81%A3%E3%81%9F%E3%81%8B%E7%A2%BA%E8%AA%8D
)

# やってみよう
## 1. Vagrantfileの修正
Vagrantfileの該当部分に`auto_config:false`を追記します。

```:Vagrantfile修正前
config.vm.network :private_network, ip: "192.168.33.50"
```
```:Vagrantfile修正後
config.vm.network :private_network, ip: "192.168.33.50", auto_config:false
```
## 2. Vagrantfile再読み込み
以下のコマンドでVagrantfileを再読み込みします。

```
vagrant reload
```
## 3. 仮想環境にログインしてネットワーク確認
Tera Termで仮想環境にログインして、以下のコマンドでネットワークを確認します。

```
ip addr
```
この時点では、まだIPアドレスは`192.168.33.30`になっていると思います。
## 4. デバイスの状態確認
以下のコマンドでデバイスの状態を確認します。

```
nmcli device
```
以下のように表示されると思います。見るべきデバイスはeth1です。

```
DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  System eth0
eth1    ethernet  connected  System eth1
lo      loopback  unmanaged  --
```
STATEが`disconnected`になっていたら以下のコマンドでデバイスの接続を行います。

```
sudo nmcli device connect eth1
```
## 5. デバイスの接続プロファイルの詳細を確認
以下のコマンドでデバイスの接続プロファイルの詳細を確認します。

```
nmcli con show eth1
```
結果がずらずらーと表示されますので、その中の`ipv4.addresses`という欄を見てください。
`192.168.33.30`と表示されているはずです。
これを`192.168.33.50`に変更するのが次の工程です。

## 6. ipv4.addressesに指定したいIPアドレスを設定
以下のコマンドで`ipv4.addresses`を変更します。

```
sudo nmcli con mod eth1 ipv4.addresses "192.168.33.50/24"
sudo nmcli con mod eth1 ipv4.method "manual"
```
## 7. デバイス再起動
以下のコマンドでデバイスを再起動します。

```
sudo nmcli device disconnect eth1
sudo nmcli device connect eth1
```
##8. pingを打ってうまくいったか確認

```
ping 192.168.33.50
```

pingが返ってきたら成功です。


```
ip addr
```
これで確認してもよいです。
# 参考サイト
[Vagrantでprivate_networkを設定できないときの対処方法](https://www.wakuwakubank.com/posts/481-tool-vagrant-private-network/)

# 関連ページ
## Windows10にVagrantをを入れてCentOS7をインストールしよう
[1. VagrantインストールからVagrantfileを設置まで](https://qiita.com/erik_t/items/d7f7abbf7deafa4c6fe4)
[2. 仮想マシンの操作](https://qiita.com/erik_t/items/909efb63fd389f486ec3)
[3. WinSCP、Tera Termに秘密鍵でログイン ](https://qiita.com/erik_t/items/2e3c43cfe8731621b82d)
[4. WinSCP、Tera Termにrootユーザーでパスワードログイン](https://qiita.com/erik_t/items/8d006b599815c8fbf38b)
[5. zip/unzipをインストール](https://qiita.com/erik_t/items/9fbe7b5630b1f62893a1)
[6. Vagrantにて仮想環境を配布](https://qiita.com/erik_t/items/11f24633f4248e4f33f0)