注)この記事で紹介している環境に代わる新しい実習環境として ffdsm を作りました。ご興味あれば次の記事もチェックしてみてください。
概要
「Vagrant/VirtualBox/CentOS7 で Drupal の実習用環境を構築する」で報告した実習環境の導入キットを作成した。
https://github.com/bkenro/centos7dsm
以下、その概要と Windows での基本的な使い方をまとめる。
前提環境
Windows (64 bit)
この資料では 64 bit 版の Windows 10 を前提とする。Windows 7 や Windows 8 でも動作するはずだが、記事作成時点では未確認。
VirtualBox
https://www.virtualbox.org/wiki/Downloads
オラクル社が開発・配布している仮想化ソフトウェア パッケージ。上記 URL から Windows 版のインストーラをダウンロードして実行し、画面の指示に従ってインストールする。本稿ではバージョン 5.2.22 で動作を確認した。
Vagrant
https://www.vagrantup.com/downloads.html
仮想化ソフトウェア(例:VirtualBox)と構成管理ソフトウェア(例:Chef、Ansible 等)を組み合わせて仮想環境を構築する処理を自動化するためのソフトウェア。HashiCorp 社が開発・配布している。上記 URL から Windows 版のインストーラをダウンロードして実行し、画面の指示に従ってインストールする。本稿ではバージョン 2.2.3 で動作を確認した。
また、Vagrant のインストール完了後、下記コマンドを実行して vagrant-vbguest プラグインをインストールしておく。
vagrant plugin install vagrant-vbguest
このプラグインにより、VirtualBox 上の仮想マシンとのフォルダ共有等に必要な Guest Additions というパッケージの自動更新が可能になる。
実習環境 centos7dsm の内容
勉強会での配布を念頭に、次のような実習環境の導入キットを作成した。
以下が含まれる。
- vagrant フォルダ
ゲスト OS (Linux) の /vagrant ディレクトリにマッピングされる。/vagrant/bin ディレクトリに dsmcdb などのユーティリティスクリプトが格納されている。 - Vagrantfile ファイル
Vagrant の環境設定ファイル。仮想環境の名前や IP アドレス、共有フォルダ、環境の初期化処理などの構成が定義されている。 - Vagrant用プロンプト.lnk ファイル
作業用のコマンドプロンプトを開くための Windows ショートカット。上の vcmd.bat を呼び出した後のプロンプトを提供する。 - vcmd.bat ファイル
このキットで作業するときの前提となる環境変数などを設定するバッチスクリプト。「Vagrant用プロンプト」のショートカット(.lnk ファイル)から起動される。
vcmd.bat には、次の簡単なバッチスクリプトが記述されている。
@echo off
set DSM_HOME=C:\Users\%USERNAME%\Desktop\centos7dsm
set VAGRANT_HOME=%DSM_HOME%\vb
cd %DSM_HOME%
このスクリプトでは、centos7dsm フォルダが Windows のデスクトップにあることを前提にしている。これとは違う条件で使用する場合は、対応するパスの値を適宜調整する必要がある。
基本的な使い方
導入キット
次のファイルを Windows のデスクトップにダウンロードし、ファイルを右クリックして、[すべて展開] で ZIP を展開する。
- centos7dsm.zip (v0.3.0)
展開された [centos7dsm] フォルダを開き、中の「Vagrant用プロンプト」を実行して、下記コマンドを実行する。
vagrant up
Vagrant Cloud に公開している BOX ファイルがダウンロード(時間がかかる)および展開され、展開した BOX で仮想環境が起動する。
次のようなメッセージが表示される。
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'bkenro/centos7dsm' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Mounting shared folders...
default: /vagrant => C:/Users/bkenro/Desktop/centos7dsm/vagrant
default: /var/www/pj => C:/Users/bkenro/Desktop/centos7dsm/pj
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
==> default: Running provisioner: shell...
default: Running: inline script
起動後、Vagrant用プロンプトで次のコマンドを実行すると、仮想マシンの状態を確認することができる。
vagrant status
Current machine states:
default running (virtualbox)
The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.
Vagrantfile で指定したプライベート ネットワークの IP アドレスに ping を発行してみる。正常に機能していれば応答が返される。
ping 192.168.12.34
192.168.12.34 に ping を送信しています 32 バイトのデータ:
192.168.12.34 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.12.34 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.12.34 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.12.34 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.12.34 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms
同じ IP アドレスにブラウザからアクセスしてみる。正常に動作していれば、Apache デフォルトの Welcome ページが表示される。
次に、Linux (CentOS) にログインしてみる。
Vagrant用プロンプトから次のコマンドを実行すると、ゲスト OS の CentOS にログインできる。
vagrant ssh
[vagrant@centos7dsm ~]$
/vagrant に移動すると、ホスト側(Windows)で用意したファイルシステムにアクセスできることがわかる。
[vagrant@centos7dsm ~]$ cd /vagrant
total 4
drwxrwxrwx 1 vagrant vagrant 0 Jan 12 16:48 .
dr-xr-xr-x. 19 root root 4096 Jan 12 03:15 ..
drwxrwxrwx 1 vagrant vagrant 0 Jan 12 16:48 bin
drwxrwxrwx 1 vagrant vagrant 0 Jan 12 16:48 centos
最後に、samba の共有フォルダにホスト OS 側からアクセスできることを確認しておく。centos7dsm フォルダの下などにショートカットを新規作成し、項目の場所として次の各パスを指定する。
- \\192.168.12.34\home
- \\192.168.12.34\www
作成したショートカットをダブルクックするとフォルダが開き、ゲスト(Linux)側の /vagrant/home ディレクトリや /var/www/html ディレクトリが共有フォルダとして見えることを確認する。正常に機能していれば、Linux の /var/www/html ディレクトリの下に作成したサイトのディレクトリは、Windows 側から \\192.168.12.34\www フォルダの下のフォルダとしてアクセスできる。
以上で仮想マシンの動作が確認できた。
Linux からログアウトする。
[vagrant@centos7dsm ~]$ exit
logout
Connection to 127.0.0.1 closed.
仮想マシンをシャットダウンするには、Vagrant用プロンプトで次のコマンドを実行する。
vagrant halt
次のメッセージを表示した後、仮想マシンが停止する。
==> default: Attempting graceful shutdown of VM...
以後、vagrant up で起動、vagrant halt で終了、を基本に繰り返し使用できる。ファイルシステムに加えた変更は永続的に保持され、仮想マシンの再起動で消えることはない。
まとめ
「Vagrant/VirtualBox/CentOS7 で Drupal の実習用環境を構築する」で報告した実習環境の導入キットを作成し、Windows での基本的な使い方をまとめた。centos7dsm.zip ファイルをダウンロードし、デスクトップに展開して、中の専用プロンプトからコマンド vagarnt up を実行することで仮想マシンを起動できる。勉強会でのオフライン配布を含め、今後も活用しながら改善していきたい。
参考にさせていただいた記事: