注)この記事で紹介している環境に代わる新しい実習環境として ffdsm を作りました。ご興味あれば次の記事もチェックしてみてください。
概要
「Vagrant/VirtualBox/CentOS7 で Drupal の実習用環境を構築する」で報告した実習環境の導入キットを作成した。
https://github.com/bkenro/centos7dsm
以下、その概要と Mac での使い方をまとめる。なお動作確認は、OS X El Capitan (バージョン 10.11.6)、メモリ 4GB の環境で行った。
前提環境
VirtualBox
https://www.virtualbox.org/wiki/Download_Old_Builds_5_2
オラクル社が開発・配布している仮想化ソフトウェア パッケージ。上記 URL から OS X 版のインストーラ(.dmg ファイル)をダウンロードし、インストールする。本稿ではバージョン 5.2.22 で動作を確認した。
インストール後は、アプリケーション フォルダのアイコンから UI を起動できる。
Vagrant
https://www.vagrantup.com/downloads.html
仮想化ソフトウェア(例:VirtualBox)と構成管理ソフトウェア(例:Chef、Ansible 等)を組み合わせて仮想環境を構築する処理を自動化するためのソフトウェア。HashiCorp 社が開発・配布している。上記 URL から Mac OS X 版のインストーラ(.dmg ファイル)をダウンロードし、インストールする。本稿ではバージョン 2.2.3 で動作を確認した。
インストールが完了すると、/usr/local/bin/vagrant ファイルとして vagrant コマンドが導入され、ターミナルから実行できるようになる。たとえば、-v オプションを指定して実行すると、バージョンを確認できる。
また、Vagrant のインストール完了後、下記コマンドを実行して vagrant-vbguest プラグインをインストールしておく。
vagrant plugin install vagrant-vbguest
このプラグインにより、VirtualBox 上の仮想マシンとのフォルダ共有等に必要な Guest Additions というパッケージの自動更新が可能になる。
実習環境 centos7dsm の内容
勉強会での配布を念頭に、次のような実習環境の導入キットを作成した。
以下が含まれる。
- Vagrant用プロンプト.lnk ファイル
Mac では使用しない。 - vcmd.bat ファイル
Mac では使用しない。 - vagrant フォルダ
ゲスト OS (Linux) の /vagrant ディレクトリにマッピングされる。/vagrant/bin ディレクトリに dsmcdb などのユーティリティスクリプトが格納されている。 - Vagrantfile ファイル
Vagrant の環境設定ファイル。仮想環境の名前や IP アドレス、共有フォルダ、環境の初期化処理などの構成が定義されている。
基本的な使い方
導入キット
次のファイルをデスクトップにダウンロードし、ファイルをダブルクリックして展開する。
- centos7dsm.zip (v0.3.0)
次に、ターミナルでデスクトップの centos7dsm フォルダに移動し(cd ~/Desktop/centos7dsm)下記コマンドを実行する。
$ vagrant up
Vagrant Cloud に公開している BOX ファイルがダウンロードおよび展開され、仮想環境が起動される。
次のようなメッセージが表示される。
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bkenro/centos7dsm' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: 0.3.0
==> default: Loading metadata for box 'bkenro/centos7dsm'
default: URL: https://vagrantcloud.com/bkenro/centos7dsm
==> default: Adding box 'bkenro/centos7dsm' (v0.3.0) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/bkenro/boxes/centos7dsm/versions/0.3.0/providers/virtualbox.box
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bkenro/centos7dsm' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: 0.3.0
==> default: Loading metadata for box 'bkenro/centos7dsm'
default: URL: https://vagrantcloud.com/bkenro/centos7dsm
==> default: Adding box 'bkenro/centos7dsm' (v0.3.0) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/bkenro/boxes/centos7dsm/versions/0.3.0/providers/virtualbox.box
==> default: Box download is resuming from prior download progress
==> default: Successfully added box 'bkenro/centos7dsm' (v0.3.0) for 'virtualbox'!
==> default: Importing base box 'bkenro/centos7dsm'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bkenro/centos7dsm' is up to date...
==> default: Setting the name of the VM: vm-centos7dsm-0.3.0
==> 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 => /Users/bkenro/Desktop/centos7dsm/vagrant
default: /var/www/pj => /Users/bkenro/Desktop/centos7dsm/pj
==> default: Running provisioner: shell...
default: Running: inline script
起動後、ターミナルから次のコマンドを実行すると、仮想マシンの状態を確認することができる。
$ 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
PING 192.168.12.34 (192.168.12.34): 56 data bytes
64 bytes from 192.168.12.34: icmp_seq=0 ttl=64 time=0.477 ms
64 bytes from 192.168.12.34: icmp_seq=1 ttl=64 time=0.773 ms
64 bytes from 192.168.12.34: icmp_seq=2 ttl=64 time=0.680 ms
64 bytes from 192.168.12.34: icmp_seq=3 ttl=64 time=0.541 ms
^C
--- 192.168.12.34 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.477/0.618/0.773/0.116 ms
同じ IP アドレスにブラウザからアクセスしてみる。正常に動作していれば、Apache デフォルトの Welcome ページが表示される。
次に、Linux (CentOS) にログインしてみる。
ターミナルから次のコマンドを実行すると、ゲスト OS の CentOS にログインできる。
$ vagrant ssh
Last login: Fri Mar 1 23:45:43 2017 from 192.168.12.1
[vagrant@centos7dsm ~]$
/vagrant に移動すると、Linux からホスト側(Mac 側)のファイルシステムにアクセスできることがわかる。
[vagrant@centos7dsm ~]$ cd /vagrant
[vagrant@centos7dsm vagrant]$ ls -al
total 4
drwxrwxrwx 1 vagrant vagrant 136 Jan 13 17:54 .
dr-xr-xr-x. 19 root root 4096 Jan 12 03:15 ..
drwxrwxrwx 1 vagrant vagrant 238 Jan 15 05:35 bin
drwxrwxrwx 1 vagrant vagrant 102 Mar 2 2018 centos
次の接続先サーバアドレスを入力して [接続] をクリックする。
- smb://192.168.12.34/home
- smb://192.168.12.34/www
資格情報を入力するウィンドウが表示されるので、ゲストとしてアクセスする指定をして [接続] をクリックする。
接続先のディレクトリがフォルダとして開き、ゲスト(Linux)側の /vagrant/home ディレクトリや /var/www/html ディレクトリがリモートの共有フォルダとして見えることを確認する。
正常に機能していれば、CentOS 上の /home/vagrant と /var/www/html の各ディレクトリが Mac 側でフォルダとして直接アクセスできることがわかる。
以上で仮想マシンの動作が確認できた。
Linux からログアウトする。
[vagrant@centos7dsm ~]$ exit
ログアウト
Connection to 127.0.0.1 closed.
仮想マシンをシャットダウンするには、ターミナルで次のコマンドを実行する。
$ vagrant halt
次のメッセージを表示した後、仮想マシンが停止する。
==> default: Attempting graceful shutdown of VM...
以後、vagrant up で起動、vagrant halt で終了、を基本に繰り返し使用できる。ファイルシステムに加えた変更は永続的に保持され、仮想マシンの再起動で消えることはない。
まとめ
「Vagrant/VirtualBox/CentOS7 で Drupal の実習用環境を構築する」で報告した実習環境の導入キットを作成し、Mac での基本的な使い方をまとめた。centos7dsm.zip ファイルをダウンロードし、デスクトップに展開して、vagarnt up を実行することで仮想マシンを起動できる。勉強会でのオフライン配布を含め、今後も活用しながら改善していきたい。