環境
- Windows8.1(ホストPC)
- CentOS7(ゲストPC)
- Vagrant 1.6.5
補足:ゲストPCはCentOSのみならず、Ubuntuやscientificでも可能
Vagrant設定
1.VirtualBox,Vagrantのインストール
※VirtualBox.exeまでのパスを環境変数に追加しておく。
⇒仮想環境を立ち上げる時にVBoxManegerがないって怒られる!
※ホストPCの再起動を行うこと。(アップデート/再インストール時も)
2.仮想環境の準備
仮想環境をまとめておく場所を決め、その中で今回作る環境用のディレクトリを作成。
cd ~/vagrant
mkdir centos7
cd centos7
3.Vagrantfile の作成
vagrant init centos2
# vagrant init [仮想環境の独自名称]
⇒ 現在のディレクトリ内にVagrantfileが作成されます。
4.Vagrantfile の編集
vi Vagrantfile
# Vagrantfileを編集します。(エディタでもOK)
13| config.vm.box = "[仮想環境の独自名称]"
14| config.vm.box_url = "https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box"
# BOXファイルの置き場所です。リンク切れになったりもするでしょうからローカルに落して指定してもいいと思いますし、
# 先にVirtualfileのあるディレクトリ内で 『vagrant box add [仮想環境の独自名称] [BOXファイルへのパス]』 とコマンドを打つと
# ここは自動で記入されます。
|
| # ポート番号が競合しないように(不安なときはnetstatコマンドで調べてみるといいですね)
29| config.vm.network "forwarded_port", guest: 80, host: 3001
|
38| config.ssh.forward_agent = true
|
| # 共有フォルダの設定です。第一引数がホストPC,第二引数がゲストPCです。()
| # ホストPC側はVagrantfileのあるフォルダから見たパス、ゲストPC側はフルパスの方が良いとのこと
44| config.vm.synced_folder "share_folder", "/home/share_folder"
- BoxファイルのURLについて
-
Vagrantbox.esから探す。
⇒一般的。 -
PackerをDL/準備しておく。
⇒boxイメージをローカルに持っておき、仮想環境を作る時はDL先のディレクトリパスを指定する。
2014年12月時点でのPackerでは以下のboxイメージが用意されていました。
centos-6.4/6.5/6.6/7.0、scientific-6.4/6.5/7.0、Ubuntu-12.04/12.04-docker/13.10/14.04
5.仮想環境の構築
ここでやっとの仮想環境の立ち上げです。
vagrant up
Box作成をしていなかった場合、VagrantfileにBoxへのパスを記載しているので一緒にやってくれます。
default: Successfully added box 'centos2' (v0) for 'virtualbox'!
と表示されればBox作成は成功です。
そのあとにVagrantfileの設定に沿うように仮想環境の構築ログがポンポン出てきます。
ここで、Failed to mount folders in Linux guest.~~~
というエラーが吐かれると思いますが、
vagrant の起動自体はできているはずです。ゲストOS側からマウントする作業を行わないと解決されないので
そのまま先に進みましょう。
SSH接続
vagrant ssh
rootに接続したい場合は、ログイン後に
su root
の、「パスワード:vagrant」で接続できます。
あれ?つながらない。というときは vagrant status
で起動しているかチェックしてみてください。
ファイル共有の設定
sudo /etc/init.d/vboxadd setup
⇒ U/b/u/n/t/u/14.04の時はこういったコマンドは必要なかったと思うのですが・・・CentOSだからなのかな?(検索避け)
でもこれをしないと vagrant up
をするたびにマウントしろと言われますので必要ですね。(マウントもできないでしょうし)
無事に済んだら、ゲストPCの再起動(再構築?)が必要です。 Ctrl + D や logout
コマンドで一旦抜け出し、ホストPCから
vagrant reload
マウントがうまくいけば一番下のあたりに 『 ゲストOSの共有フォルダ⇒ホストPCの共有フォルダ 』というログが乗っているはずです。
補足:ここでホストPC側の共有フォルダにファイルを置いてみて、ssh接続後にホストPCの共有フォルダを見てみて下さい。
同じファイルが存在してればOK
あとは自由に開発環境を整えるといいかと思います。
以下、小ネタ集。
小ネタ
VirtualBoxから開く
# 49行目辺りのコメントアウトを外す。
config.vm.provider "virtualbox" do |vb|
# Don't boot with headless mode
vb.gui = true
# Use VBoxManage to customize the VM. For example to change memory:
# vb.customize ["modifyvm", :id, "--memory", "1024"]
end
GUIの設定をしていなければCUIでしか操作できないと思います。
そして日本のBOXを使っていなかったら、キーボードの設定を変更する必要があります。
キーボードの設定を日本用に
/etc/sysconfig/keyboard のファイルを以下の通りに修正し更新。
KEYTABLE="jp106"
MODEL="jp106"
LAYOUT="jp"
KEYBOARDTYPE="pc"
この後、 reboot
で適応。
参考サイト
言語設定を日本語(又は英語)に
/etc/sysconfig/i18n のファイルの「LANG」を以下の通りに修正し更新
# 日本語の場合(恐ろしく文字化けしてしまったので英語の方がオススメです。)
LANG="ja_JP.eucJP"
# 英語の場合
LANG="en_US.UTF-8"
この後、 reboot
で適応。
参考サイト
GUIの設定
ゲストOS側で以下のコマンドを打つ。
# 必要なパッケージのインスコ
sudo yum -y groupinstall "X Window System" "Japanese Support"
# 標準、GUIで起動するように設定
sudo sed -i.bak -e "s/id:[0-6]:initdefault:/id:5:initdefault:/" /etc/inittab
ホストPCに戻り、vagrant halt
Vagrantfileに一行追加。
config.box_url = config.vm.box_url = "https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box"
config.ssh.forward_x11 = true # 追記(!)
あとはVagrantの起動(vagrant up
)を行って終了。
参考サイト
(!) X Serverが必要になります。
Windowsの方向けの参考サイト
OS Xの方向けの参考サイト
都度、更新予定です。