目的 (2017/3/1 一部修正)
OSS(オープンソースソフトウェア)のVagrantを用いて、仮想環境上に仮想マシンを構築、利用できるようにする作業を自動化する。
##開発環境
- OS Ⅹ EL Capitan
- Vitualbox(5.1.0)
- Vagrant(1.9.1)
- Box(仮想マシンのテンプレート)
今回は... bento/centos-6.8
https://atlas.hashicorp.com/boxes/search?utf8=✓&sort=&provider=&q=bento
※BoxはVagrantCloudなどでも入手できる
##Vagrantに関連する用語
####Boxファイル
仮想マシンを起動する際のイメージファイル
####Vagrantfile
仮想マシンのアドレス情報などの設定を記述するファイル
##1.VirtualBoxとVagrantのインストール
brewを使いインストールする。
$ brew update
$ brew install Caskroom/cask/virtualbox Caskroom/cask/vagrant
インストールされているか確認
$ vagrant -v
$ virtualbox
##2.Boxファイルのインストール
Boxファイルのインストール
(vagrant box add BOX名 URL)
$ vagrant box add bento/centos-6.8
インストールされているBoxの確認
$ vagrant box list
追加したBoxの保存場所
ユーザーディレクトリ/.vagrant.d/boxes/box名/
##3.準備
vagrantのプラグインを導入
(自分の環境の VirtualBox のバージョンと Box のバージョンが異なる場合に、VirtualBox のバージョンに合わせて最新化するコマンド??)
$ vagrant plugin install vagrant-vbguest
ホームディレクトリに移動
$ cd
Vagrantで作成した仮想マシンを管理するためのフォルダ(名前は任意)を作る。
※今後は、このフォルダ内で仮想マシンを作っていく
$ mkdir MyVagrant
MyVagrantに移動する
$ cd MyVagrant
仮想マシンを作るフォルダ(名前は任意)を作る
$ mkdir MyCentOS
MyCentOSに移動する
$ cd MyCentOS
##4.Vagrantfile作成
仮想マシン設定用のVagrantfileを作る
vagrant init Box名
$ vagrant init bento/centos-6.8
Vagrantfileに以下を追記して仮想マシンにIPアドレスを設定する
今回はserver、clientの2つのゲストOS作成のため
ホストOSとゲストOS間(192.168.33.???)と2つのゲストOS間(192.168.55.???)のIPアドレスを2つずつ設定する
*仮想マシンが立ち上がったらpingで確認することを忘れずに!
config.vm.define "server" do |server|
server.vm.hostname = "server"
server.vm.network "private_network", ip: "192.168.55.10", virtualbox__intnet: "in1"
server.vm.network "private_network", ip: "192.168.33.10"
end
config.vm.define "client" do |client|
client.vm.hostname = "client"
client.vm.network "private_network", ip: "192.168.55.11", virtualbox__intnet: "in1"
client.vm.network "private_network", ip: "192.168.33.11"
end
さらにVagrantfileに以下を追記(Vitual boxのケーブル接続設定)
※これを記述しないと、後のvagrant up時にprivate keyという項目でエラーが出ます。
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
end
##5.仮想マシンの操作
仮想マシンを起動する(少し時間かかる)
$ vagrant up
仮想マシンの状態を確認する (runningなら起動状態)
$ vagrant status
仮想マシンにログイン
$ vagrant ssh server
または
$ vagrant ssh client
開発などなんやかんや、、、、
仮想マシンからログアウト
$ exit
仮想マシンのシャットダウン
$ vagrant halt
##6.(任意)仮想マシンの設定
OSを最新状態にアップデート(時間かかる)
$ sudo yum -y update
※別記事にて、Ansibleによる環境構築もやっています!
http://qiita.com/nl0_blu/items/428656c1147775faefd1
##(補足)仮想マシンの操作
-
vagrant up
仮想マシンの起動。vagrantfileのあるディレクトリ内で実行 -
vagrant halt
仮想マシンのシャットダウン -
vagrant suspend
仮想マシンの一時停止 -
vagrant resume
仮想マシンの一時停止から復帰 -
vagrant reload
仮想マシンの再起動 -
vagrant destroy
仮想マシンの削除(boxは消えない) -
vagrant status
仮想マシンのステータス表示 -
vagrant ssh
仮想マシンにログイン -
vagrant ssh-config
sshログイン時の設定確認 -
vagrant version
バージョン確認+最新バージョンの表示 -
vagrant -h
ヘルプ