オフライン環境で CentOS 7 の Vagrant Box を追加する

Mac で CentOS を触りたく、Vagrant を使おうと思ったのだが、諸事情によりネットワークに常時接続できず、Vagrant Box をネットからダウンロードして使うことができない状況にあった。

# 普段ならコレで良いが、ネットに接続できないのでダメ
$ vagrant box add centos/7

そこで、ネットが繋がるタイミングで Vagrant Box だけ落としてきて、オフラインの時にインストールすることにした。

コチラの記事を見ると、ちょうど vagrant box add した時のコンソール出力が掲載されている。

$ vagrant box add centos/7
==> box: Loading metadata for box 'centos/7'
    box: URL: https://atlas.hashicorp.com/centos/7
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'centos/7' (v1708.01) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1708.01/providers/virtualbox.box
==> box: Successfully added box 'centos/7' (v1708.01) for 'virtualbox'!

コレの下から2行目を見ると、Vagrant Box らしきものをダウンロードする URL が見える。

この URL に直接アクセスすると、確かに Vagrant Box ファイルがダウンロードできた。

URL をさかのぼっていくと、この URL 自体はおおっぴらに公開はしていないようで、Vagrant Box のページからもこの URL は見つけられなかった。

最新版を調べてみると、「currently released version」は v1804.02 らしいので、URL 中にあるバージョン番号をコレに書き換えてみる。

ビンゴ。コレを落とすことにする。

ダウンロードができたら、このファイルを指定して Vagrant Box を追加する。

# 「MyCentOS」部分は任意の Box 名
$ vagrant box add MyCentOS7 CentOS-7-x86_64-Vagrant-1804.02.VirtualBox.box

コレで Box の追加が出来た。ココで指定した Box 名を指定して vagrant init できる。

# 先程追加時に指定した「MyCentOS7」を指定する
$ vagrant init MyCentOS7

# Vagrantfile が作成される。後は起動・接続・終了など自由に。
$ vagrant up
$ vagrant ssh
  # CentOS はデフォルトで日本語表示になっていた。
  $ exit
$ vagrant halt

こんな感じ。うまく使えた。