Drupal 実習環境 centos7dsm の導入キットと使い方(Windows 編)

  • 2017-03-07 (火) 04:16 初版作成
    2017-11-12 (日) 07:29 最終更新

Drupal 実習環境 centos7dsm の導入キットと使い方(Windows 編)

概要

「Vagrant/VirtualBox/CentOS7 で Drupal の実習用環境を構築する」で報告した実習環境の導入キットを作成した。以下、Windows での使い方をまとめる。

前提環境

Windows (64 bit)

この資料では 64 bit 版の Windows 10 を前提とする。Windows 7 や Windows 8 でも動作するはずだが、記事作成時点では未確認。

VirtualBox

https://www.virtualbox.org/wiki/Downloads
オラクル社が開発・配布している仮想化ソフトウェア パッケージ。上記 URL から Windows 版のインストーラをダウンロードして実行し、画面の指示に従ってインストールする。

Vagrant

https://www.vagrantup.com/downloads.html
仮想化ソフトウェア(例:VirtualBox)と構成管理ソフトウェア(例:Chef、Ansible 等)を組み合わせて仮想環境を構築する処理を自動化するためのソフトウェア。HashiCorp 社が開発・配布している。上記 URL から Windows 版のインストーラをダウンロードして実行し、画面の指示に従ってインストールする。

実習環境 centos7dsm の内容

勉強会での配布を念頭に、次のような実習環境の導入キットを作成した。

centos7dsm キットのファイル構成

以下が含まれる。

  • vagrant フォルダ
    ゲスト OS (Linux) 側の /vagrant ディレクトリにマッピングされる。DB 作成スクリプト dbcrt が bin サブディレクトリに格納されている。ゲスト OS の Linux に共有されるので、ホスト OS (Windows) 側でファイルを操作できる。
  • vb フォルダ
    環境変数 VAGRANT_HOME の値として設定する場所。Vagrant で環境を構築すると、このフォルダの下に box ファイルが展開される。
  • www フォルダ
    ゲスト OS (Linux) 側の /var/www ディレクトリにマッピングされる。サブディレクトリ html が サーバーのルートとして Apache で Web 公開される。この下に、Drupal 7 と Drupal 8 がそれぞれ d7、d8 という名前のディレクトリとして格納されている。上と同様、共有フォルダにすることで各 Drupal サイトのファイルを Windows 側から操作できる。
  • Vagrantfile ファイル
    Vagrant の環境設定ファイル。仮想環境の名前や IP アドレス、共有フォルダ、環境の初期化処理などの構成が定義されている。
  • Vagrant用プロンプト.lnk ファイル
    作業用のコマンドプロンプトを開くための Windows ショートカット。上の vcmd.bat を呼び出した後のプロンプトを提供する。
  • setup.bat ファイル
    package.box ファイルを読み込んで仮想マシンを導入する処理を実行するバッチスクリプト。
  • vcmd.bat ファイル
    このキットで作業するときの前提となる環境変数などを設定するバッチスクリプト。「Vagrant用プロンプト」のショートカット(.lnk ファイル)から起動される。

キットを構成するフォルダ/ファイル

vcmd.bat には、次の簡単なバッチスクリプトが記述されている。

@echo off
set DSM_HOME=C:\Users\%USERNAME%\Desktop\centos7dsm
set VAGRANT_HOME=%DSM_HOME%\vb

このスクリプトでは、centos7dsm フォルダが Windows のデスクトップにあることを前提にしている。これとは違う条件で使用する場合は、対応するパスの値を適宜調整する必要がある。

基本的な使い方

導入キット

次の 2 つのファイルが含まれる。

前者は上で示したフォルダ構造を ZIP したもの。後者は仮想マシン上のゲスト OS (Linux) 環境一式をパッケージした BOX ファイルである。使用にあたっては、まず上記の ZIP ファイルをダウンロードして展開し、中の centos7dsm フォルダをデスクトップにコピーする。

仮想マシンを導入するには、ローカルにコピーした package.box ファイルを読み込む方法と、Vagrant Cloud 上に bkenro/centof7dsm として公開しているものを読み込む方法とがある。前者は、BOX ファイルのダウンロードが不要なので導入の時間を短縮できる。

package.box ファイルを読み込む場合は、このファイルをデスクトップにコピーし、setup.bat を実行する。BOX ファイルが展開され、次のようなメッセージが表示される。

==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7dsm' (v0) for provider: 
    box: Unpacking necessary files from: file:///Users/bkenro/Desktop/package.box
==> box: Successfully added box 'centos7dsm' (v0) for 'virtualbox'!

次に、Vagrant用プロンプトから下記コマンドを実行する。package.box を読み込んでいない場合は、ここで BOX ファイルのダウンロードと展開も行われる。その後、展開した BOX から仮想環境を構成・起動する。

$ vagrant up

次のようなメッセージが表示される。

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7dsm'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vm-centos7dsm
==> 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: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /Users/bkenro/Desktop/centos7dsm/vagrant
    default: /var/www => /Users/bkenro/Desktop/centos7dsm/www
==> default: Running provisioner: shell...
    default: Running: inline script

VirtualBox の管理画面(VirtualBox マネージャ)を起動すると、仮想マシンが追加されて実行中になっていることが確認できる。

VirtualBox マネージャで仮想マシンの追加と実行を確認する

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 ページが表示される。

Apache デフォルトの Welcome ページ

次に、Linux (CentOS) にログインしてみる。

Vagrant用プロンプトから次のコマンドを実行すると、ゲスト OS の CentOS にログインできる。

vagrant ssh
Last login: Fri Mar  1 23:45:43 2017 from 192.168.12.1
[vagrant@centos7dsm ~]$

/vagrant や /var/www/html に移動すると、ホスト側(Windows)で用意したファイルシステムにアクセスできることがわかる。

[vagrant@centos7dsm ~]$ cd /var/www/html
[vagrant@centos7dsm html]$ ls -al
total  12
drwxrwxrwx 1 vagrant vagrant    0 Mar   6 12:34 .
drwxrwxrwx 1 vagrant vagrant    0 Mar   6 12:34 ..
drwxrwxrwx 1 vagrant vagrant 8192 Mar   6 12:34 d7
drwxrwxrwx 1 vagrant vagrant 4096 Mar   6 12:34 d8

以上で仮想マシンの動作が確認できた。

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 での基本的な使い方をまとめた。BOX ファイルを Vagrant Cloud 上で公開することで導入キットのファイルサイズを約 30MB に抑え、導入キットを当サイトからダウンロードできるようにした。勉強会でのオフライン配布を含め、今後も活用しながら改善していきたい。

更新履歴

  • 2017-11-12 (日) 07:29
    centos7dsm の Drupal 8 を 8.4.2 に更新。Drupal 7 のコア翻訳ファイルを従来の standard に加え minimal プロファイルにも追加。
  • 2017-10-18 (水) 12:48
    centos7dsm の改訂に合わせて内容を更新。 最新版の Vagrant には ssh が含まれるため前提環境から Git for Windows を削除。 導入キットのダウンロードを追加。
  • 2017-10-15 (日) 03:02

DISQUS コメント