LoginSignup
0
0

More than 1 year has passed since last update.

オフライン環境構築 Vagrant編

Last updated at Posted at 2020-09-11

オフライン環境構築 目次へ

概要

オフラインでvagrantを使いたい人のための手順。

動作確認の前提条件

動作確認した環境の条件を以下に示す。

  • host os: Ubuntu 18.04.5 LTS
  • vagrant: 2.2.10
  • vagrant-vbguest: 0.24.0
  • virtualbox: 6.1.12 r139181

インストール

vagrant

Vagrant公式ダウンロードサイトからdebをダウンロードしてインストール。

vagrant-disksize

vagrant-disksizeは、ディスクサイズを拡張するためのプラグイン。

オンラインで以下のコマンドを実行して、gemファイルをダウンロードする。

wget https://rubygems.org/downloads/vagrant-disksize-0.1.3.gem

オフラインで以下のコマンドを実行して、プラグインをインストールする。

vagrant plugin install vagrant-disksize-0.1.3.gem

vagrant-vbguest

vagrant-vbguestは、vagrant up実行時にvirtualboxの仮想サーバにVirtualBox Guest Additionsを自動的にインストールするプラグイン。

オンラインで以下のコマンドを実行して、gemファイルをダウンロードする。

wget https://rubygems.org/downloads/vagrant-vbguest-0.24.0.gem

オフラインで以下のコマンドを実行して、プラグインをインストールする。

vagrant plugin install vagrant-vbguest-0.24.0.gem

参考:https://qiita.com/ozawan/items/9751dcfd9bd4c470cd82

virtualbox

Virtualbox公式ダウンロードサイトからdebをダウンロードしてインストール。

使い方

vagrantの使い方

Vagrantコマンドのチートシート を読むべし。

boxの取得方法

オンライン端末でboxをダウンロードし、オンライン環境でboxをロードする方法を以下に示す。

boxダウンロード

まず、オンライン端末で以下のスクリプトを実行し、boxをダウンロードする。

obget.sh
box=$1
username=`echo $box | cut -d "/" -f 1`
name=`echo $box | cut -d "/" -f 2`
version=$2
provider=$3

curl "https://app.vagrantup.com/api/v1/box/$username/$name/version/$version/provider/$provider" | jq ".download_url" | xargs wget -O $username-$name-$version-$provider.box

このスクリプトは3つの引数を有する。

引数

  • $1:box名(例:centos/8)
  • $2:バージョン名(例:1905.1)
  • $3:プロバイダ名(例:virtualbox)

このスクリプトの実行例を以下に示す。

実行例
./obget.sh centos/8 1905.1 virtualbox

boxロード

次に、オフライン端末で以下のスクリプトを実行し、ダウンロードしたboxをロードする。

obload.sh
box_file_path=$1
box_file_name=`basename $box_file_path`
username=`echo ${box_file_name%.*} | cut -d "-" -f 1`
name=`echo ${box_file_name%.*} | cut -d "-" -f 2`
version=`echo ${box_file_name%.*} | cut -d "-" -f 3`
provider=`echo ${box_file_name%.*} | cut -d "-" -f 4`

metadata=$(cat << EOS
{
    "name": "$username/$name",
    "versions": [{
        "version": "$version",
        "providers": [{
            "name": "virtualbox",
            "url": "$box_file_path"
        }]
    }]
}
EOS
)

echo $metadata | jq
echo $metadata > .metadata.json

echo vagrant box add .metadata.json
     vagrant box add .metadata.json

このスクリプトは1つの引数を有する。

引数

  • $1:boxファイル名(例:centos-8-1905.1-virtualbox.box)

このスクリプトの実行例を以下に示す。

実行例
./obload.sh centos-8-1905.1-virtualbox.box
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0