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

2015年10月8日木曜日

Vagrant has detected that you have a version of VirtualBox installed that is not supported. vagrantをバージョンアップ

  • 公開日:2015年10月08日

記事概要


Docker Toolboxをインストールした後にvagrantを起動したら「Vagrant has detected that you have a version of VirtualBox installed that is not supported. 」というエラーが発生しました。どうやら、Docker Toolboxをインストールすると、VirtualBox自動的にアップデートされてしまうようです。
この記事は、起動しなくなったVagrantを再び動かすための対策方法を記載した記事です。

環境


  • vagrant1.6.3→1.7.4

vagrant upエラー


vagrant upコマンドを実行すると、以下のエラーが発生しました。


The provider 'virtualbox' that was requested to back the machine
'default' is reporting that it isn't usable on this system. The
reason is shown below:

Vagrant has detected that you have a version of VirtualBox installed
that is not supported. Please install one of the supported versions
listed below to use Vagrant:

4.0, 4.1, 4.2, 4.3

原因は、Docker Toolboxのインストールです。
Docker Toolboxのインストールにより、自動的にVirtualBoxがアップデートされてしまったようです。
VirtualBoxのバージョンを確認します。


VBoxManage -v
5.0.4r102546

4系を利用していたのが5系になっています。
これが原因で古いvagrantが動かなくなったようです。
現在のvagrantのバージョンを確認します。


vagrant -v
Vagrant 1.6.3

現在(2015/10/05)はversion 1.7.4が最新なので入れ替えます。
公式サイトに遷移します。
vagrantをダウンロードして再インストールします。

インストール後は、マシンを再起動してバージョンを確認します。


vagrant -v
Vagrant 1.7.4

1.7.4になったのでvagrantが起動しなくなってしまったプロジェクトに移動してvagrant upを実行します。


cd {project-folder}
vagrant up

default: flag to force provisioning. Provisioners marked to run always will still run.

動作しました。これで完了です。

まとめ


そろそろvagrantをサブにして、本格的にdockerに移行していかないといけないなと思いました。

いつも言っていますが、技術的負債は溜めないようにしましょう。
やばいと感じたら、すぐに新しい技術を取り入れましょう。
技術的負債の解消は、当初想像するよりずっと時間がかかるのが普通です。

以上です。

追伸


railsで利用する技術を

Innovation on Rails

というブログサイトにも記事を投稿していくことにしました。

このダメ男のブログでも同じ記事は公開していきますが、rails関連の技術(ruby,rails,vagrant,docker)はInnovation on Railsにも同様に投稿していきます。

このサイトよりも、ぐっと記事が探しやすくなると思うので、是非ご利用ください。

Rails4の開発にオススメの本


イノベーションを感じるのにオススメの本


運営サイト(railsで作成しています)


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2015年9月13日日曜日

Androidアプリ開発 vagrantで作成したローカル開発環境にwifiで接続する

  • 公開日:2015年09月13日
  • 最終更新日:2015年09月29日

記事概要


androidのアプリ開発をする時、vagrantで作成したネットワーク環境にwifiで接続する方法を記載した記事です。

環境


  • Android端末
  • OS X Yosemite
  • vagrant 1.6.3

はじめに


androidアプリ開発やiphoneアプリ開発をする時、vagrantやDocker等のローカル環境でAPIやWEBアプリ側を作成するケースは多いと思います。
その場合、スマホからネットワークに接続する必要があります。今回はvagrantの開発環境にwifiで接続する方法を説明します。
今回は、私の開発しているアプリ「マウンテンチャンネル」の開発環境を使って、そのやり方を説明します。

vagrantファイルの変更


bridge するインターフェースを調べます。


VBoxManage list bridgedifs |grep '^Name:'
Name:            en1: Wi-Fi (AirPort)
Name:            en0: Ethernet

vagrantの置いてあるプロジェクトフォルダに移動し、以下の記載を追記します。


  # config.vm.network "private_network", ip: "192.168.33.12", nfs: true
  config.vm.network :public_network, :bridge => "en1: Wi-Fi (AirPort)"

上記の設定をすることで、Wifiで接続できるようになります。

vagrant起動



vagrant up

wifiを使うので1を入力します。

vagrant接続


起動したらvagrant内のアプリを起動します。


  vagrant ssh

  cd {プロジェクトフォルダ}
  // unicornを起動
  ./start-unicorn.sh
  // nginxを起動
  sudo service nginx restart
  // ipアドレスを確認
  ip -f inet addr

IPアドレスを確認したら、まずはPCのブラウザから接続して動作を確認します。

次にスマホのブラウザから接続します。

PCでもスマホでも画面が表示されました。
これでローカル環境でWEBの開発をしながら、スマホを使ってAPIやWEBにアクセスできます。
以上

Androidアプリ開発にオススメの本


登山サイトを運営中です。こちらもよろしくお願いします。
参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2015年4月9日木曜日

vagrant - GuestAdditions versions on your host (4.3.18) and guest (4.3.6) do not match.

vagrantの起動で盛大にはまったのでメモ

  • mac
  • vagrant1.7.2

発生したエラー内容は


GuestAdditions versions on your host (4.3.18) and guest (4.3.6) do not match.

上記のエラーが発生すると、vagrantとローカルのfolderのsyncに失敗してしまって、ローカルで作業できない。
調査して、以下の対応をしたが、全然解決しなかった。


http://jitsu102.hatenablog.com/entry/2014/04/12/235946
http://www.utano.jp/entry/2014/11/vagrant_guest_additions_update_error

仕方なくログを追跡すると、


No package kernel-devel-2.6.32-431.3.1.el6.x86_64 available.

とあったので上記のrpmをinstallすれば解決できるのではないかと推測。

vagrant側

vagrant ssh
sudo yum install -y http://bay.uchicago.edu/centos-vault/6.5/updates/x86_64/Packages/kernel-devel-2.6.32-431.3.1.el6.x86_64.rpm
sudo yum install -y kernel-devel kernel-headers dkms gcc gcc-c++
exit

ローカル側

vagrant vbguest --do install
vagrant vbguest --status

GuestAdditions 4.3.18 running --- OK.

これは成功の予感

vagrantを起動

vagrant up

成功!!

結論

もっと自分の技術を信じようぜ!
Dockerもっと使えるようになりたい!
chefともおさらばしたい!

以上

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2014年10月28日火曜日

[Berkshelf::APIClient::TimeoutError] Unable to connect to: http://api.berkshelf.com/

vagrantでcentos6.5の環境を構築し、chefDKをinstallしてopscodeからソースを取得しようとしたら題名のエラーが発生した。

環境

  • box centos6.5 on vagrant 1.6.5
  • windows7 & mac Yosemite
  • chefDK 0.3.0

原因はconnection.rbファイルのopen_timeoutの設定時間が短すぎること。どうやらwindowsやmac上のvagrantで実行していると名前解決に時間がかかってしまうらしい。

対処方法は、connection.rbを書き換えるしかないようです。ということでLet's hacking。


  find /. -name connection.rb

  // result...
  /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-api-client-1.2.0/lib/berkshelf/api_client/connection.rb
  

発見。このconnection.rbを書き換える。

before


  def initialize(url, options = {})
    options         = options.reverse_merge(retries: 3, retry_interval: 0.5,
      open_timeout: 3, timeout: 30)

after


  def initialize(url, options = {})
    options         = options.reverse_merge(retries: 3, retry_interval: 0.5,
      open_timeout: 30, timeout: 30)

保存したらいつものようにberks installをすれば上手くいくはずです。

以上

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2014年3月13日木曜日

vagrant centOS6.4 rails環境構築 chef導入まで2 nginx環境構築

環境

  • vagrant 1.2.2 @centOS6.4
  • ruby2.1.0&rbenv

前回の続き。chefを導入します。

gem listでbundlerの有無を確認。ない場合はinstall


// install
gem install bundler

// 再読み込み(絶対やること)
rbenv rehash

Gemfileを作成


source 'http://rubygems.org'

gem 'chef'
gem 'knife-solo', '~> 0.3.0.pre3'

bundle install


bundle install

リポジトリを作る


// envフォルダ作成
mkdir env

// envフォルダに移動
cd env

// リポジトリ作成
bundle exec knife solo init chef-repo

-rw-rw-r-- 1 vagrant vagrant   75 Mar 12 14:56 Gemfile
-rw-rw-r-- 1 vagrant vagrant 1777 Mar 12 15:06 Gemfile.lock
drwxrwxr-x 8 vagrant vagrant 4096 Mar 12 15:10 chef-repo

nginxのクックブック作成


// 移動
$ cd chef-repo

knife cookbook create nginx -o cookbooks

** Creating cookbook nginx
** Creating README for cookbook: nginx
** Creating CHANGELOG for cookbook: nginx
** Creating metadata for cookbook: nginx

install用のレシピを作成


# /env/chef-repo/cookbooks/nginx/recipes/default.rb

package "nginx" do
  action :install
end

/chef-repo配下に実行solo.rbとlocalhost.jsonを用意


# localhost.json

{
  "run_list":[
    "recipe[nginx]"
  ]
}

# solo.rb

file_cache_path "/tmp/chef-solo"

cookbook_path ["/home/vagrant/env/chef-repo/cookbooks"]

chef-soloを実行


sudo env PATH=$PATH chef-solo -c solo.rb -j ./localhost.json

Starting Chef Client, version 11.10.4
Compiling Cookbooks...
Converging 1 resources
Recipe: nginx::default
  * package[nginx] action install (up to date)

Running handlers:
Running handlers complete

Chef Client finished, 0/1 resources updated in 7.002227939 seconds

ここのsudoコマンドがポイント。rbenvを使用してる場合、envを付加しないと、sudo: chef-solo: command not foundになる。/etc/環境を汚したくない場合は、こう使う。

結局覚えるコツは何回も色々やってみて、ビルド&スクラップで試してみることですね。


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2014年3月12日水曜日

vagrant centOS6.4 rails環境構築 chef導入まで

環境

  • vagrant 1.2.2

vagrantの初期起動はprovisioningで設定するのが一般的ですが、慣れないうちは手動で環境を設定することもあると思います。 その手順メモです。

vagrantにcensOSを追加。ある場合は不要。vagrant box listでボックスの一覧が確認できます。


vagrant box add centos64-x86_64-20131030 https://github.com/2creatives/vagrant-centos/releases/download/v0.1.0/centos64-x86_64-20131030.box

vagrantを作成(起動)してログイン


// 作成
vagrant init centos64-x86_64-20131030

// 起動
vagrant up

// ログイン
vagrant ssh

gitをinstall


sudo yum -y install git

git --version
git version 1.7.1

rbenv をインストール


git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

環境設定


// PATH に追加
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

// .bash_profile に追加
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

// 設定の再読み込み
$ exec $SHELL -l

// rbenvの確認
rbenv --version
rbenv 0.4.0-89-g14bc162

ruby-buildをinstall


git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

OpenSSLを導入(これがないとrubyのコンパイルに失敗してしまいます)


sudo yum -y install openssl-devel

ruby(2.1.0)をinstall


rbenv install -v 2.1.0

環境設定と確認


// 再読み込み
rbenv rehash

// インストールされたruby一覧
rbenv versions
  2.1.0

// デフォルト設定
rbenv global 2.1.0

// バージョンを確認   
ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]

以上で完了。
続いて、chefですが、次回


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

vagrantのcentOS6.3にmongoDBをinstall

環境

  • vagrant centOS6.3

rails4アプリで利用したのでメモ。

vagrantを起動して、yumでinstall


sudo yum install mongo-10gen mongo-10gen-server

しかし、yumでintsallに失敗。以下のエラーメッセージ


sudo yum install mongo-10gen mongo-10gen-server
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
No package mongo-10gen available.
No package mongo-10gen-server available.
Error: Nothing to do

yumリポジトリがないので作成する


// 移動
cd etc/yum.repos.d/

// nginxのリポジトリをコピー
sudo cp nginx.repo 10gen.repo

// 10gen.repoファイルの中をviで以下のように変更

# /etc/yum.repos.d/10gen.repo

[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1

上記後、もう一度sudo yum install mongo-10gen mongo-10gen-serverで成功する

起動


sudo service mongod start

停止


sudo service mongod stop

自動起動


sudo chkconfig mongod on

バックアップ


mongodump -host localhost -db {db_name}

バックアップはデフォルトだとカレントフォルダのdumpディレクトリに格納されます


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加
Related Posts Plugin for WordPress, Blogger...