Vagrant VirtualBoxのメモ

IT関連

ボックスの一覧を見る

vagrant box list

 

ボックスを追加する

centOS6はなぜかWebサーバの内容が表示されなかったのでcentOS7にした。一番下。

vagrant box add <VM名> <URL>

vagrant box add hashicorp/bionic64

vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20131103.box

vagrant box add centOS7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

 

ボックスの削除

vagrant box remove <BOX名>

 

ボックスの場所

あまり意識する必要はないけどボックスの場所。MacとWindowsでは場所が違うので注意。

Mac
./.vagrant.d/boxes

Windows
C:\Users\user\.vagrant.d\boxes

 

ディレクトリを作ってその中に

Vagrant/myCentOS7VMの中

mkdir Vagrant
cd Vagrant
mkdir myCentOS7VM
cd myCentOS7VM

仮想マシンを初期化

これをするとVagrantfileができる。

vagrant init centOS7

仮想マシンを起動

Vagrantfileがあるディレクトリで

vagrant up

 

マシンの状態・停止・再起動・削除

vagrant status 状態確認
vagrant suspend スリープ
vagrant resume 復帰
vagrant halt マシンを停止 poweroff
vagrant up マシンを起動 running
vagrant reload マシンを再起動 
vagrant destroy 仮想マシンを削除

destroyをすると電源オフになりVirtualBoxの画面から消えるが、Vagrantfileは残っているので、またvagrant upをすればマシンはできる。

 

仮想マシンへSSHで入る

vagrant ssh

 

httpdサーバをインストールする

centOS64はbaseがうんぬんでうまくいかなかったけど、centOS7だとうまくいった。

sudo yum -y install httpd

 

httpdサーバを起動する

sudo service httpd start

 

マシンを再起動してもhttpdサーバが立ち上がるように

centOS7でも64でも有効。これがないとvagrant reload後にhttpdサーバが立ち上がっていない。

sudo chkconfig httpd on

 

ファイヤーウォールを切る

これはcentOS7では必要なかった。

sudo service iptables stop

 

マシンを再起動してもファイヤーウォールをオフる

これもcentOS7では必要なし。

sudo chkconfig iptables off

 

indexファイルを作る

cd /var/www/html
sudo vi index.html

終わったら一旦exitで抜ける

Vagrantfileでネットワーク設定をする

vi Vagrantfile
vagrant reload

192.168.33.10のプライベートネットワークのコメントアウトを外し、再起動する。

 

httpdの起動、状態など

sudo systemctl start httpd
sudo systemctl status httpd
sudo systemctl restart httpd
sudo systemctl stop httpd

 

Vagrantfileは

Mac上のフォルダとSSH先の/vagrantはリンクされている。

ゆえにVagrantfileもあるし、そのディレクトリにファイルを作ると両方にも存在するようになる。

 

シンボリックリンクを貼る

先に/var/www/htmlを消しておく。

sudo rm -fr /var/www/html
sudo ln -fs /vagrant /var/www/html

 

Mac側にindex.htmlを作る

exit
vi index.html

 

プロビジョニングとは

vagrant upをした後に自動的に実行される一連の処理のこと。

mkdir myCentOS7VM2
cd myCentOS7VM2
vagrant init centos7
vi Vagrantfile

config.vm.box = "centOS7"
の下に、
config.vm.provision :shell, :inline => "echo hello world"
を追記
:wq

vagrant up

これでVagrantfileに中に書いたecho命令が実行された。

次の段階で、

config.vm.provision :shell, :path => "provision.sh"

にして、ファイルを読み込ませる。

 

ファイルは、

vi provision.sh

下記3行を書く
sudo yum -y install httpd
sudo systemctl start httpd
sudo chkconfig httpd on

:wqで抜けて

vagrant provision

すでにサーバは実行しているので、このvagrant provisionだけでprovisionだけを読み込ませることができる。

 

ボックスを自分で作る

いま動いている仮想マシンの状態をボックスにして使いまわしたい。

vagrant package

終わるとpackage.boxというファイルができる。

 

自分で作ったボックスをシステム(box list)に追加する

同じくvagrant box addをしてあげる。my_boxは自分の名前でOK

vagrant box add my_box package.box

そのボックスを使ってinit upする手順は同じ。

 

便利なプラグインのインストール

vagrant plugin install <プラグイン名>
vagrant plugin install sahara

プラグイン関係のコマンドは
vagrant plugin install
vagrant plugin license
vagrant plugin list
vagrant plugin uninstall

 

saharaを使ってみよう

仮想マシンに変更を加えた後にイマイチだったので戻したいときなどに便利。

saharaをインストールして、ONにする。

サンドボックスモードをオンにするには
vagrant sandbox on

状態を見るには
vagrant sandbox status

巻き戻す
vagrant sandbox rollback

コミットする
vagrant suspend
vagrant sandbox commit

サンドボックスモードをオフにする
vagrant sandbox off

コミットは仮想マシンが動いている時は非常に動作が重たいのでsuspendで止めてからcommitする。

 

 

 

コメント

タイトルとURLをコピーしました