# 1. はじめに
インターネット接続されていないClosed NetWork環境にある32bit Windows7PC端末上でAnsible on Jupyter notebookなどを動かすには、
結論からいうと今更ですがVagrantの利用が超絶便利でした!
例えば、VirtualboxのOVFファイルでVMを持ち込んで利用するのに比べて圧倒的に便利です。
AnsibleやJupyter notebookなどのOSSツールをいざ、現場へ導入しようとすると
- 現場のNW環境がクローズドである(インターネット接続環境がない)
- もろもろの理由で、新たにLinux系サーバを容易には建てられない
- 自由に使えるのは、32bitのWindows7 PC端末しかない
- 持込端末のNW接続もNGまたは、NWの経路や穴が空いていない
こんな制約の中で解決してくれたのがVagrantと自作Boxファイルでした。
なお、使える端末が64bit環境であれば、自作のBoxファイルよりもDockerを利用する方が良いかもしれません。
2. 以下便利だった理由
2.1 全てオフラインで構築できる
以下を予めダウンロードまたは用意して、Windows端末ホスト上へ持っていくことで
クローズドネットワーク環境でも全てオフラインでインストール構築可能です。
なお、インストール時に管理者権限は必要です。
Windows端末ホスト上で
- VirtualBox 5.0.20 for Windows hosts x86/amd64 をダブルクリックしてインストール
- 参考:ダウンロードサイト
- Vagrant1.8.3 をダブルクリックしてインストール
- 参考:ダウンロードサイト
- vcredist_x86.exeをダブルクリックしてインストール
- こちらの記事参照
- Vagrantのboxファイル(自作または、Hashicorp社公式サイトからダウンロード)を任意の場所に保存して、コマンドプロンプトから
vagrant box add box名 boxファイル名
vagrant init box名
vagrant up
2.3 VagrantのboxファイルはどのOSで作成したものでも利用できる
ハイパーバイザー(Virtualbox)が同じであれば、OSX yosemite上でboxファイルを作成し、windows7端末上でそのboxファイルをvagrant box add
して利用することが可能だったので便利でした。
2.4 実行サーバ(VM)がwindows端末ホスト経由で、NWへリーチ可能
デフォルト設定でのままでもホスト経由(ホストNAT)で、
VMからホストが接続しているNWへリーチできる。
2.5 実行サーバ(VM)の機能追加も容易
実行サーバ(VM)上のデータをwindows端末ホストと共有可能なので、
実行サーバ(VM)上の作業領域を/vagrant/(共有ディレクトリ:デフォルトではVagrantfileがあるカレントディレクトリ)として作業すれば、
VagrantのBoxファイルをアップデートするような時や、
複数の別VM上へデータの引き渡しを行うなどが、容易に可能です。
例えば、実行サーバ(VM)へのOSSツールなどを追加する際の具体的な手順は、
Windows端末ホスト上で
0. 新boxファイルを追加 vagrant box add box名 boxファイル名
1. 作業ディレクトリの共有データをコピー
2. コピーしたディレクトリで新規に追加したboxファイル指定して、vagrant init box名
3. vagrant up
するだけ
なのでこれは思っていた以上に便利でした。
3.その他
3.1 自作Boxファイルの作成について
Vagrantの公式サイト内ページのCREATING A BASE BOXにつくり方が書かれていますが、
今回はこちらの記事Vagrant box 作成手順(CentOS 6.7)
を参考にさせていだきました。
3.2 現場担当へ実施前の確認を忘れずに
セキュリティなど、なんらかの理由で、Closed Networkな環境ということが多いと思うので、PCにVirtualboxやVagrantを入れてVMを動かしても良いかなど事前調整を実施前に現場担当者とすることを忘れないように注意してください。