Windowsローカルに開発環境を構築中に【vagrant up】でエラーが発生【エラー解決編】

##はじめに
Windows OSにて、ドットインストールのローカル開発環境【Windows編】を実施し、
<b>vagrant up</b>を実施した場合にエラーが発生し、前に進めず悩んでいるという方に向けて対処法を記述いたします。

構築手順を知りたい方は以下の記事で、開発環境の構築の流れをご紹介しておりますので、ご覧ください。
<b>👉[初めてWindowsローカルに開発環境を構築する人の為の記事【構築編】](https://qiita.com/triple321jhango/items/af859c5a579bf36232ad)</b>

##環境
- OS: Windows8.1
- VirtualBox version -5.1.8

##目次
[1. vagrant upでエラーとなる原因](#vagrant-upでエラーとなる原因)
[2. そもそもvagrantとは？](#そもそもvagrantとは)
[3. 対処法](#対処法)
[4. version違いでのvagrant upでのエラー](#version違いでのvagrant-upでのエラー)
[5. なぜうまくいかなかったか？](#なぜうまくいかなかったか)
##vagrant upでエラーとなる原因
vagrant upとはサーバーOS[^1](仮想マシン)を立ち上げる為のvagrantのコマンドです。

先に結論を申し上げますと、ドットインストールで使用しているvagrantのversion -1.8.6では対応していないことが原因(古い)でvagrant upによるサーバーOS[^1]の立ち上げがうまくいきません。

- <b>vagrantのversionは1.9.6以降を使用します</b>

👉 [vagrant インストールはこちらから](https://releases.hashicorp.com/vagrant/)

##そもそもvagrantとは？
vagrantとは、一言でいうとホストOS[^2]からサーバーOS[^1]を操作するためのツールです。
以下のように図でまとめてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379725/5bc5525e-eabb-263c-f907-5862fc56aa6b.png)


また以下のサイトが詳しく解説されていますので、こちらもご参照ください。

- <b>[vagrantとは？](https://tech.furyu.jp/p2317/)</b>



##対処法
ドットインストール内のバージョン情報に記載されている<b>vagrant1.8.6</b>で<b>vagrant up</b>をすると以下のようなエラーメッセージが表示されます。(【構築編】ではエラーを回避するためにversion -1.9.6を使用しました)

```sh
$vagrant up
```

```sh
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bento/centos-6.8' could not be found. Attempting to find and i
nstall...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
The box 'bento/centos-6.8' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/bento/centos-6.8"]
Error: The requested URL returned error: 404 Not Found
```

エラーの理由はvagrantのversionが関係しています。
最初のうちはこの文言すべてを読み解くのはなかなか至難の業かと思いますが、何かが原因でうまくいかないことは明らかです。
そういう場合には<b>error</b>の文言があるところに着目してみましょう。

##version違いでのvagrant upでのエラー
```sh
$vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bento/centos-6.8' could not be found. Attempting to find and i
nstall...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
The box 'bento/centos-6.8' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/bento/centos-6.8"]
Error: The requested URL returned error: 404 Not Found
```

上記のようなメッセージが出ますが、「error」という文言はどこに出ているかというと

```sh
The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/bento/centos-6.8"]
Error: The requested URL returned error: 404 Not Found
```


ここに着目してみます。
>The expanded
>URL and error message are shown below:

単語を調べてみると何となく意味が分かってくるかと思いますが、

- expanded➡拡大する、拡張する　などの意味
- shown below➡以下に示す　などの意味

ここまで読めると後は、
<b>URL and error message</b>はなにが書いてあるか読めるかと思います。
URLとerror message　を見てねってことになります。
では、エラーメッセージを見てみると
>URL: ["https://atlas.hashicorp.com/bento/centos-6.8"]
>Error: The requested URL returned error: 404 Not Found

このように書かれていますが、これを私なりに日本語化してみると、
ここに書かれたリンク <b>["https://atlas.hashicorp.com/bento/centos-6.8"]</b>
ありますか？(<b>リクエスト</b>)と質問したら、返事は(<b>リターン</b>)
そんなページは存在しないよ？(<b>error: 404 Not Found</b>)と言いわれてしまいました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379725/f0dde7fd-d69a-0cee-fc8d-2b38e207f598.png)

##なぜうまくいかなかったか？
なぜversion1.8.6でうまくいかなかったか？を探っていたところ以下の記事を発見しました。

- <b>[はてなブログ](https://mzryuka.hatenablog.jp/entry/2019/10/10/001035)<b>
- <b>[Vagrant Atlasがいつの間にか無くなってたので移行した](https://qiita.com/tmiki/items/b69d460514afbffb245b)</b>

Qiitaから引用：
>久々にローカルのVMインスタンスを作ろうとしたら、これまで使えていたBoxが軒並みcould not be foundに……
これまでBoxを提供していたVagrant Atlasサービスは、Vagrant Cloudというものに移行する（した）ようです。

サービスが移行してしまったため、いくら上のURLで起動しようとしても起動しなかった、というのがわかります。
対処の仕方は、vagrantfileのURL指定を追加するなど、他にももちろんあると思っていますが、私の場合はパッチ[^3]が当たっているversionを使う方が早く解決できるかな？と思い、versionを変えて実行してみた結果、無事にvagrant upでサーバーOsの起動に成功しました。

今回はvagarant upでのエラー発生時の解決策についてご説明させていただきました。
ここまで読んでいただきありがとうございました。



##参考にしたサイト
- [vagrantとは](https://tech.furyu.jp/p2317/)
- [仮想環境作成時のvagrant upのエラー　参考ドットインストール](https://ter/atail.com/questions/121202)
- [はてなブログ](https://mzryuka.hatenablog.jp/entry/2019/10/10/001035)
- [Vagrant Atlasがいつの間にか無くなってたので移行した](https://qiita.com/tmiki/items/b69d460514afbffb245b)
- [Vagrantのネットワーク周りのあれこれ](https://labs.septeni.co.jp/entry/20140707/1404670069)


[^1]: サーバーOSとは今自分が使用しているマシンとは別に仮想のマシンを構築したマシンのこと
[^2]: 仮想マシンではない、自分が今操作しているマシンのこと
[^3]: 後付けでプログラムの追加を行い、機能を追加させること。バグ(おかしなところ)を修正したファイルなど。パッチの意味を調べてみると、「つぎはぎ（に使う布）」、継ぎ当てに用いる「当て布」を指す語。服などの破れたりすり切れたりした箇所を補修するために用いられた布。などを言います。プログラムも壊れた個所に修正を加えて、正しく動作できるようにするということをパッチを当てるといいます。