キリが悪かったので追記しました。
おそがけながら、必要になったので。
なんとなく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 addboxの追加
- 
vagrant box listboxの表示
- 
vagrant box removeboxの削除
- 
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も同期される。