ボックスの一覧を見る
1 |
vagrant box list |
ボックスを追加する
centOS6はなぜかWebサーバの内容が表示されなかったのでcentOS7にした。一番下。
1 2 3 4 5 6 7 |
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 |
ボックスの削除
1 |
vagrant box remove <BOX名> |
ボックスの場所
あまり意識する必要はないけどボックスの場所。MacとWindowsでは場所が違うので注意。
1 2 3 4 5 |
Mac ./.vagrant.d/boxes Windows C:\Users\user\.vagrant.d\boxes |
ディレクトリを作ってその中に
Vagrant/myCentOS7VMの中
1 2 3 4 |
mkdir Vagrant cd Vagrant mkdir myCentOS7VM cd myCentOS7VM |
仮想マシンを初期化
これをするとVagrantfileができる。
1 |
vagrant init centOS7 |
仮想マシンを起動
Vagrantfileがあるディレクトリで
1 |
vagrant up |
マシンの状態・停止・再起動・削除
1 2 3 4 5 6 7 |
vagrant status 状態確認 vagrant suspend スリープ vagrant resume 復帰 vagrant halt マシンを停止 poweroff vagrant up マシンを起動 running vagrant reload マシンを再起動 vagrant destroy 仮想マシンを削除 |
destroyをすると電源オフになりVirtualBoxの画面から消えるが、Vagrantfileは残っているので、またvagrant upをすればマシンはできる。
仮想マシンへSSHで入る
1 |
vagrant ssh |
httpdサーバをインストールする
centOS64はbaseがうんぬんでうまくいかなかったけど、centOS7だとうまくいった。
1 |
sudo yum -y install httpd |
httpdサーバを起動する
1 |
sudo service httpd start |
マシンを再起動してもhttpdサーバが立ち上がるように
centOS7でも64でも有効。これがないとvagrant reload後にhttpdサーバが立ち上がっていない。
1 |
sudo chkconfig httpd on |
ファイヤーウォールを切る
これはcentOS7では必要なかった。
1 |
sudo service iptables stop |
マシンを再起動してもファイヤーウォールをオフる
これもcentOS7では必要なし。
1 |
sudo chkconfig iptables off |
indexファイルを作る
1 2 |
cd /var/www/html sudo vi index.html |
終わったら一旦exitで抜ける
Vagrantfileでネットワーク設定をする
1 2 |
vi Vagrantfile vagrant reload |
192.168.33.10のプライベートネットワークのコメントアウトを外し、再起動する。
httpdの起動、状態など
1 2 3 4 |
sudo systemctl start httpd sudo systemctl status httpd sudo systemctl restart httpd sudo systemctl stop httpd |
Vagrantfileは
Mac上のフォルダとSSH先の/vagrantはリンクされている。
ゆえにVagrantfileもあるし、そのディレクトリにファイルを作ると両方にも存在するようになる。
シンボリックリンクを貼る
先に/var/www/htmlを消しておく。
1 2 |
sudo rm -fr /var/www/html sudo ln -fs /vagrant /var/www/html |
Mac側にindex.htmlを作る
1 2 |
exit vi index.html |
プロビジョニングとは
vagrant upをした後に自動的に実行される一連の処理のこと。
1 2 3 4 5 6 7 8 9 10 11 12 |
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命令が実行された。
次の段階で、
1 |
config.vm.provision :shell, :path => "provision.sh" |
にして、ファイルを読み込ませる。
ファイルは、
1 2 3 4 5 6 7 8 9 10 |
vi provision.sh 下記3行を書く sudo yum -y install httpd sudo systemctl start httpd sudo chkconfig httpd on :wqで抜けて vagrant provision |
すでにサーバは実行しているので、このvagrant provisionだけでprovisionだけを読み込ませることができる。
ボックスを自分で作る
いま動いている仮想マシンの状態をボックスにして使いまわしたい。
1 |
vagrant package |
終わるとpackage.boxというファイルができる。
自分で作ったボックスをシステム(box list)に追加する
同じくvagrant box addをしてあげる。my_boxは自分の名前でOK
1 |
vagrant box add my_box package.box |
そのボックスを使ってinit upする手順は同じ。
便利なプラグインのインストール
1 2 3 4 5 6 7 8 |
vagrant plugin install <プラグイン名> vagrant plugin install sahara プラグイン関係のコマンドは vagrant plugin install vagrant plugin license vagrant plugin list vagrant plugin uninstall |
saharaを使ってみよう
仮想マシンに変更を加えた後にイマイチだったので戻したいときなどに便利。
saharaをインストールして、ONにする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
サンドボックスモードをオンにするには vagrant sandbox on 状態を見るには vagrant sandbox status 巻き戻す vagrant sandbox rollback コミットする vagrant suspend vagrant sandbox commit サンドボックスモードをオフにする vagrant sandbox off |
コミットは仮想マシンが動いている時は非常に動作が重たいのでsuspendで止めてからcommitする。
コメント