9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

手軽にVagrant環境構築

Last updated at Posted at 2015-07-23

環境

  • 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)

Vagrantfile

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について
  1. Vagrantbox.esから探す。
     ⇒一般的。
  2. 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の方向けの参考サイト

都度、更新予定です。

 

9
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?