キリが悪かったので追記しました。
おそがけながら、必要になったので。
なんとなくVagrantを理解してきたよーな。。。
慣れたら一瞬で仮想マシン構築できるから、これは便利だわ。
って、今頃思ってます。
次はCakePHP導入まで行く。。。。ぞ。。。
#用意するもの
- Vagrant (https://www.vagrantup.com/)
- VirtualBox (https://www.virtualbox.org/)
- 上記をダウンロードしてる間に、作業用フォルダを適当に作っておく。
#Vagrantのインストールと使い方
VirtualBoxは入れるだけ。
Vagrantのインストールが終わったら、コンソールでバージョンコマンドを打ってみてレスポンスが返ってきたらOK。
$ vagrant -v
##Boxファイルを追加
Vagrantが使う仮想マシンイメージをBoxファイルを言うらしいので、
リンク先のリストから目当てのboxファイルを探してCopy!!
- Vagrantbox.es (http://www.vagrantbox.es/)
- Vagrant Cloud (https://atlas.hashicorp.com/boxes/search)
今回は「CentOS 6.5 x86_64」を使うので「centos65」って名前でboxファイル追加
$ vagrant box add centos65 CopyURL
box list
コマンドで表示されたら追加OK。
$ vagrant box list
###vagrant box コマンド
-
vagrant box add
boxの追加 -
vagrant box list
boxの表示 -
vagrant box remove
boxの削除 -
vagrant repackage
よくわかりません
##仮想マシン初期化&起動
事前に用意した作業フォルダに移動して、初期化呪文を唱える。
$ cd /your/work/directory ##作業フォルダに移動
$ vagrant init centos65 ##さっきつけたboxファイル名を指定して詠唱
そしていよいよ。。。
雑念を捨てながら、祈りながら、仮想マシンを起動。
$ vagrant up
読み込みが終わったら、SSHで仮想マシンへアクセス
$ vagrant ssh
プライベートキーのパスフレーズを聞かれるけど無視してenter
ログインパスワードを聞かれるのでvagrant
を入力
###vagrant 仮想マシン操作系のコマンド
-
vagrant status
状態確認 -
vagrant suspend
スリープ -
vagrant resume
スリープ解除 -
vagrant halt
シャットダウン -
vagrant reload
再起動 -
vagrant destroy
仮想マシンを削除
もっとコマンド調べたい時はここ
https://docs.vagrantup.com/v2/cli/index.html
#Apache導入とVagrantfile
ちょっと普通のCentOSの設定とは勝手が違ってちょっとコケた。
キーポイントはVagrantfileにあり。
##Apacheインストール
まずはお約束のyum update
を実行した後、Apacheをインスコ。
(今回はローカルでの環境構築が主要素なので、セキュリティ周辺やらなんやらは割愛)
$ sudo yum update ##お約束
$ sudo yum install httpd ##Apacheインスコ
インスコしたら、Apache起動してマシン起動時に一緒に立ち上がるように設定。
$ sudo service httpd start ##Apache起動
$ sudo chkconfig httpd on ##マシン起動時に立ち上がるおまじない
##Vagrantfileを編集
Vagrantで仮想マシンを作るとルートにvagrant
というフォルダが出来ていて、その中にあるVagrantfile
を編集する。
コメントと一緒にだらだらーっと書かれてあって、ちゃんと読めばいいんだけど、このごろ目がショボショボして。。。
なので、コメントを削除してスッキリさせるとこう。
$ cat /vagrant/Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "centos65"
# config.vm.box_check_update = false
#config.vm.network "forwarded_port", guest: 80, host: 8080
# config.vm.network "private_network", ip: "192.168.33.10"
# config.vm.network "public_network"
# config.vm.synced_folder "../data", "/vagrant_data"
# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# end
# config.push.define "atlas" do |push|
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
# end
# config.vm.provision "shell", inline: <<-SHELL
# sudo apt-get update
# sudo apt-get install -y apache2
# SHELL
end
それぞれの設定項目については公式参照
http://lab.raqda.com/vagrant/vagrantfile/machine_settings.html
ちゅーことで、ポート設定の行のコメントアウトを外す。
$ vi /vagrant/Vagrantfile
#config.vm.network "forwarded_port", guest: 80, host: 8080
↓ コメントアウト外す
config.vm.network "forwarded_port", guest: 80, host: 8080
このままだと、Vagrantfile
の設定が反映しないので、仮想マシンを再起動。
$ exit ##仮想マシンログアウト
$ vagrant reload ##仮想マシン再起動
再起動が終了したら、http://127.0.0.1:8080/ にアクセスしてApacheの画面が表示されればOK。
###Vagrantfileの詳しい設定方法
公式ドキュメント参照
http://lab.raqda.com/vagrant/vagrantfile/index.html
##Vagrantのフォルダ同期について
vagrant init
した作業フォルダと、仮想マシンの/vagrant
の中が同期しているみたい。
試しに仮想マシン側で何か適当なファイルを作ると、作業フォルダにも同じファイルが生成されるし、Vagrantfile
も同期される。