ラベル vagrant の投稿を表示しています。 すべての投稿を表示
ラベル vagrant の投稿を表示しています。 すべての投稿を表示

2015年9月20日

Windows10とVirtualBox5.0とVagrantではまったの巻その2

 以前の記事で、Windows10とVirtualBox 5.0は、正しく動作しないがあるという記事を書きました。
VirtualBox5.0.4をインストールすることで解決されているようなのでインストールしてみたら既存の仮想マシンが正しく動作しない場合があるという現象がありました。
 具体的には、Guest Additions 5.0.4が使用できないという問題です。

 それを解決する方法です。

ホストOS:Windows 10
ゲストOS:CentOS6.7 64bit版


すでに作成されていたVirtualBoxの仮想マシンにGuest Additionsのバージョンが4.3.4がインストールされている場合、VirtualBox 5.0.4をインストールしているとGuest Additionsが正しく動作しないという問題があります。


VagrantのPluginの「vagrant-vbguest」をインストールしていると本来は、正しいバージョンの「Guest Additions」をインストールしてくれるのですが、なんだかと途中でエラーを起こしてインストールできていないようなのです。

 グーグル先生に聞いてみるとLinuxのカーネルのバージョンが古いのが問題なので新しいものをインストールするようにというのが書いてありました。
※エラーメッセージにも「yum install kernel-devel-2.6.32-431.el6.x86_64」と表示されるので、その通りにしてみます。

>yum install kernel-devel-2.6.32-431.el6.x86_64
 言われたとおりにやってみる→なぜかうまくいかない
 Error: Nothing to doとメセージがでる

>sudo yum install kernel kernel-devel
 グーグル先生に聞いた通りにやっている→うまくいかない
 Error: Nothing to doとメセージがでる

これで新しいカーネルがインストールされるのでゲストOSを再起動すると新しいGuestAddionsがインストールされるはずです。
ですが、インストール自体がされません。

Qiitaでこの問題を解決している記事がありました。

Vagrantのフォルダ同期のエラーの対処

そもそも、yumでkernelのインストールを止めているようでした。
カーネルのアップグレードをする為には、「/etc/yum.conf」のカーネルを対象外にする(?)設定をコメントアウトする必要があるようです。

exclude=kernel*

#exclude=kernel*

これで、「sudo yum install kernel kernel-devel」をすると正しくインストールされます。

あとは、ゲストOSを再起動するだけです。



まとめると
  1. 同期フォルダが同期されなくなった場合、GuestAddionsのバージョンを疑う
  2. Vagrant pluginの「vagrant-vbguest」をインストールする
    vagrant plugin install vagrant-vbguest
  3. なぜか、「GuestAddions」のインストールに失敗する
    Kernelのdevelがインストールされていない為、正しくコンパイルができない。
  4. kernel-develをインストールする
    sudo yum install kernel kernel-devel

    インストールされない場合は、/etc/yum.confのexclude=kernel*をコメントアウトして再度、カーネルをインストールする
  5. ゲストOSを再起動し、フォルダ共有ができるか確認する
    できなかったら、別の問題なので解決方法を探す

これが、VagrantとVirtualBoxの最後のハマりどころになれば良いのですが…。

2015年8月4日

Windows10とVirtualBox5.0とVagrant稼働マシンが起動しない場合がある

 自分だけの現象化もしれませんが、一応メモとして記録。

 Windows10にマイクロソフトアカウントでログイン中に「vagrant up」をすると仮想マシンの起動に失敗するようです。
 一旦、「vagrant halt」で仮想マシンを電源オフにし、再度「vagrant up」をしても起動に失敗します。


で、ローカルアカウントでログインした場合、一発目の起動では、失敗しますが、仮想マシンを一度電源オフにしてから、起動すると正常起動するようです。


仕事はマイクロソフトアカウントではなく、ローカルアカウントですることに決めました。

でも、Windows10ストアのアプリって、マイクロソフトアカウントでないとダメなんだっけ?

2015年8月2日

Windows10とVirtualBox5.0とVagrantではまったの巻

 今まで、Windows7+VirtualBox5.0+Vagrantで問題なく仮想環境を作ってアプリケーション開発をしてきたのですが、せっかくWindows10が発売されたのでWindows10で開発環境をつくろうと思い、やってみたのですがハマりました。
 一応解決はしたのですが、これが正解とは思えないのでちょっと心配です。

うまくいかなかった流れ
  1. Windows10のインストール
  2. VirtualBox5.0のインストール
  3. Vagrantのインストール
  4. Windows7時代に使用していたVagrantのBOXを追加
  5. Vagrantファイルの作成と内容の編集
    メモリサイズだったり、共有フォルダの名前だったり。
  6. 仮想マシンの起動(vagrant up)する
    ここで問題が発生しました。
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set network interfaces...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "create"]

Stderr: 0%...
Progress state: E_FAIL
VBoxManage.exe: error: Failed to create the host-only adapter
VBoxManage.exe: error: Code E_FAIL (0x80004005) - Unspecified error (extended info not available)
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCreate(struct HandlerArg *)" at line 70 of file VBoxManageHostonly.cpp

こんなエラーが発生してしまいました。
(vagrant upコマンドを実行すると毎回、毎回、「Host-Only Ethernet Adapterを作りますか?」的な確認がされて、はいにするとたくさんできてしまいます…。)
「ホストオンリーアダプターの作成に失敗しました」的なエラーのようです。
Vagrantでは、ネットワークアダプターを2つ(natとhostonly)使うようで1つ目はできてるのですが2つ目がなんかうまくいかないらしいのです。

 グーグル先生に聞いても明確な答えにたどり着けず(検索キーワードが適切で無いのでしょう)。
で、ネットワークに関連しそうなとこを手当たりしだい見てみようということで。

VirtualBox マネージャーの[ファイル(F)]-[環境設定(P)]のネットワークのホストオンリーネットワーク(H)を確認です。

  1. ここには、VirtualBox Host-Only Ethernet Adapterの設定がありまして、ドライバーのアイコンをクリックする
  2. アダプターのIPアドレスの設定欄があるのでIPアドレスとネットマスクを今起動しようとした仮想マシンと同じ値を入れます(違っても良いのかも。もしかするとネットマスク255.255.0.0だったのがダメだっただけかも)。
    例えば、IPアドレス=>192.168.33.10 ネットマスク=>255.255.255.0
  3. 再度、vagrant upコマンドで仮想マシンを起動します。

これでちゃんと今まで通りに仮想マシンが起動するようになります。
同時に別の仮想マシン(当然IPアドレスは別のもの)を起動してもちゃんと起動します。


2015年4月2日

Vagrant使って開発してみます

 Vagrantというオープンソースのソフトウェアがあります。
仮想環境をソフトウェアで簡単にコントロールすることができるツールです。

予め作っておいたOSのイメージをとっておくことで簡単環境を再構築をしたりすることができます。

 自分は、Windowsがメインの環境なので、Linux上で動くWebのアプリケーションとかは、Windows環境で開発、単体テストをしてから、Linux上デプロイして再度テストをするということをしていました。
 Linuxのディレクトリにファイルを置くのは、むずかしいというか一手間必要だったりするのでちょっと面倒だと思っていました。
 ですが、Vagrantを使うと仮想環境のLinux上のディレクトリをクライアントPC(Windows)フォルダのマッピングを簡単にやってくれるのでそのフォルダ上で開発をすることで直ぐのデプロイしたことになるのでちょー便利です。



 で今回はこんな環境で開発をします。

作るアプリの運用環境
(※本当の運用環境は、aws上ですけどね)
  • OS:CentOS
  • Webサーバ:Apache
  • 開発言語:PHP
  • DB:MySQL

開発で使うツール達
  • OS:Windows7
  • DBツール:A5:SQL Mk-2
  • テキストエディタ:Atom
  • 仮想環境:VirtualBox
  • 仮想環境構築ツール:Vagrant

当分、この環境でシステム開発したいなーって思いますわ。