ボックスの一覧を見る
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する。
コメント