前の記事では、Vagrant の BOXファイルをネットからダウンロードして仮想環境を作成したので、今回は BOXファイルを作成し、仮想環境を構築します。
目次
必要なOSのISOファイルのダウンロード
今回はCentOS7環境を作るのでCentOS7のISOファイルをダウンロードします。
https://www.centos.org/download/
VirtualBoxで仮想マシンを作成
VirtualBoxで新規に仮想マシンを作成します。
仮想マシン名:centos7_dev(判別できるような名前にする)
TypeはLinux
バージョンはRed Hat (64bit)
下記の値は、作りたいものによります
メモリは1024MB。
ファイルタイプはVDI、可変サイズにして、容量を20GBくらい。
開発用ならこのくらいの容量でいけると思うんだけど人それぞれかな
OSインストール
作成した仮想マシンの設定で、ストレージのCD/DVDの項目の対象ドライブにOSのisoを割り当てる。
VirtualBoxのマネージャーから作成した仮想マシンのアイコンをクリックし、上部の設定ボタンをクリックする。
ストレージの中にある光学ドライブにisoをマウントする。
仮想マシンを起動するとOSのインストールが始まる。
インストール完了後各種設定を行う。
とりあえずアップデート
# yum update
ホスト側からsshでログインする(必要ならば)
この設定はあとで元に戻す必要があります。
VirtualBox上でコマンド入力するのは操作性が悪くめんどいんでこの設定を行い、Tera Termなどでその後の設定を行っています。
- 仮想マシンの設定を開く。
- ネットワークのアダプター1(NAT)を選択し、「高度」の内容を展開。
- 下部に表示される「ポートフォワーディング」ボタンを押してメニューを表示。
- 項目を新規追加。ホストポートに2222、ゲストポートに22を入力。他はそのままにしてOKボタンを押す。
- 設定画面のOKボタンを押す。
- 仮想マシンの設定を開く
- ネットワークのアダプター1(NAT)を選択し、「高度」の内容を展開。
- 下部に表示される「ポートフォワーディング」ボタンを押してメニューを表示。
- 作成した項目を選択してDelキーを押して削除。その後下部のOKボタンを押す。
- 設定画面のOKボタンを押す。
- 「VAGRANT_HOME」を環境変数として登録する。環境変数の値を保存したいパスにする。
- コントロールパネル→プログラムと機能→Vagrantから右メニューで修復を行う。
- Windowsの再起動
0l>
設定が完了したら Tera Term などでインストール時に設定したrootアカウントなどでログインする。
IPアドレスはローカルマシン上にあるものとなるんで「127.0.0.1:2222」
Vagrantユーザの作成と設定
SSH接続するためのvagrantユーザーの登録を行う。
# useradd -m vagrant # passwd vagrant
パスワードは本家のドキュメントに従い、「vagrant」にしています
sshの設定
仮想マシンにログインし、ssh接続に必要な公開鍵を登録する。
# mkdir /home/vagrant/.ssh # chmod 700 /home/vagrant/.ssh # cd /home/vagrant/.ssh # curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' # chmod 600 /home/vagrant/.ssh/authorized_keys # chown -R vagrant.vagrant /home/vagrant/.ssh
sudoの設定
vagrantユーザーがパスワードなしでsudoを実行できるようにし、TTYなしで実行できるようにrequirettyを無効にする。
# visudo … # TTYなしで実行できるように下記の行をコメントアウト #Defaults requiretty … # sudoコマンドをパスワードなしで実行できるように下記をrootについて書いてある下あたりに追加 vagrant ALL=(ALL) NOPASSWD: ALL
vagrantユーザになって、確認する。
# su - vagrant $ sudo ls /root
各種無効化
開発環境なのでselinuxは無効化。
# vi /etc/sysconfig/selinux # disabledに変更 SELINUX=disabled
iptablesの無効化
# service iptables stop # service ip6tables stop # chkconfig iptables off # chkconfig ip6tables off
VirtualBox Guest Additionsのインストール
仮想マシン(VirtualBox VM)のメニューのDevicesからInsert Guest Additions CD image …を選択する
そして、それをマウントしてCD内のコマンドを実行する。
# mkdir /media/cdrom # mount -r /dev/cdrom /media/cdrom # sh /media/cdrom/VBoxLinuxAdditions.run # umount /media/cdrom
最後に、仮想マシン(VirtualBox VM)のメニューのDevicesからCD/DVD Devicesを選択し、Remove disk from virtual driveを選択してGuest Additions CD imageを取り出す。
アップデート
VirtualBoxが更新されて最新版をインストールすると仮想マシンの「VirtualBox Guest Additions」のアップデートも必要になります。
そのときは、上記のインストール方法を行えばアップデートできます。
アンインストール方法
/opt/VBoxGuestAdditions-<バージョン番号>/uninstall.sh
上記ファイルをroot権限で実行
BOX作成のための最適化
# yum clean all
MACアドレスとのマッピングを無効化する
自分だけで使う場合には配布することはないのでこの作業は不要ですが、やっておけば誰かにBOXファイルを配布して起動したときにエラーがでません。
最初、このことがわからずに、開発チーム内で起動するとエラーがでてなんでやってことになりました・・・・
# ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
OS シャットダウン
# shutdown -h now
NATのポートフォワーディング設定の削除
NATのポートフォワーディング設定をしている場合は設定情報を削除する
以上でBOXの作成準備が完了
Vagrant BOXファイルの作成
コマンドプロンプトから、VagrantコマンドでBOXを作成する。「centos7_dev」はバーチャルボックスで作成した仮想マシン名。
実行パスにBOXファイルが作成されるので任意の場所にコマンドで移動しておいた方がよい
> cd 任意のパス > vagrant package --base centos7_dev
コマンドを実行すると、VirtualBoxからエクスポートされて、実行パス上に「package.box」ファイルが作成されます。
Vagrant BOX に登録
できあがった、「package.box」をVagrant BOXに追加します。
> vagrant box add --name vg_centos7_dev package.box
確認
> vagrant box list vg_centos7_dev (virtulebox, 0)
仮想マシンを起動
新たに作成したBOXで仮想マシンを起動します。
vagrantファイルの作成
> vagrant init vg_centos7_dev
vagrant init のあとにBOX名をいれることで、vagrantファイルの
config.vm.box = “base”が
config.vm.box = “vg_centos7_dev” となって作成されます。
起動
> vagrant up
sshでログイン
自分で作成したVagrant環境にsshでログインできるか確認してみます。
「Git Bash」ショートカットからsshクライアントを起動する。
vagrantfileのあるディレクトリに「cd」で移動。
cd d:\vagrant 移動後、SSHでログイン vagrant ssh パスワードは不要です。 rootユーザーへ切り替える sudo su
これで自前の Vagrant BOX 作成は完了です。
自前でOSのインストールから行っているので Tera Term などですぐにログインもできます。
vagrantファイルのネットワーク設定を変更していない場合は
127.0.0.1:2222 へアクセスすればrootアカウントでログインできます。
Vagrant Box の削除
不要になったVagrant BOX を削除するには下記のコマンドで行います。
vagrant box remove [Vagrant box名]
Vagrant で作った仮想マシンから Box ファイルを作りなおす
apacheをインストールするとか、yum updateしたあとに仮想マシンから新たにboxを作成するとかのときに
vagrantファイルのあるパスから下記のコマンドを実行すると package.box ファイルができあがります。
> vagrant package
Vagrant Box の保存先を変更する
Windows環境では、登録した Vagrant Boxファイルの保存先は、Cドライブの以下のパスに保存される。
C:\Users\ユーザー名\.vagrant.d
Vagrant Box の保存先を任意の場所に変更する。
Windowsの場合は、OSの再起動をしないとパスの変更が反映されないので再起動を必ずすること。