Windows7のVirtualBox上でBitnamiの仮想マシン用Redmine(Ubuntu14)を使ってみた。
VirtualPC上Windows7でのRedmineより負担が軽いので、引っ越し手順を記録する。
より簡単な方法があれば教えて頂けると幸いです。
つまづいた場所は3か所で、1.VirtualBoxに64bitCPUと認識させる。
2.USBメモリをマウント。そして3.Redmineの内部エラー。
参考文献を見て解決できたようなので、メモとして残す。
環境
引越元PC:Windows Virtual PC
引越元OS:Windows7 Ultimate SP1
引越元RM:Bitnami Redmine Stack 3.2.0-2
(参考:Win7にBitnami RedmineをインストールしGitリポジトリを覗く)
ホストPC:Lenovo TinkCentre 6064-A17 Core2DuoCPU@2.66GHz RAM4.3GB HDD152.4GB
ホストOS:Ubuntu 16.04LTS 日本語Remix
ゲストPC:Oracle VM VirtualBox 1CPU RAM1024MB HDD17GB
ゲストOS:Ubuntu 14.04
引越先RM:Bitnami Redmine3.3.1-0 Ubuntu14.04 Stack
(ホストOSやOracle VM VirtualBoxは既にインストール済みの状態から始める)
既にFAT32でフォーマットされたUSBメモリを準備する。
Redmineのhtdocs下filesと、データベースのダンプredmine.sqlを入れる。
原理
1.ホストPC-BIOS設定Advanced中Enable VT-dがEnableでないと、VirtualBoxの64bitOSが動作しない。
2.ホストOSがUbuntuだとユーザがvboxusersに所属していない場合はUSB機器の一覧が表示されない。
3.Redmine対策時"bundle exec rake db:migrate"する前rbenvをインストールしたら成功した。
(参考文献)
仮想マシンの作成で64bit OSを選択可能にする方法
VirtualBoxでのUSBデバイス認識
Update Redmine 3.2.1->3.3.0 partiall failed
Ubuntu14.04にrbenvをインストールしてRubyのバージョン管理
詳細
1.ホストPCのBIOSを設定する。
参考文献にはAdvancedの”Intel Virtualization Technology”とある、今回は”Enable VT-d”だった。
両方ともEnableにしておくと手堅いかも。
2.vboxusersへ所属(ホストOSがLinuxの場合、Winは不要)
VirtualBoxの仮想マシンで、ホストPC挿入のUSB機器一覧を表示するため、
vboxusersグループに所属する。
$ sudo gpasswd -a YOUR_USERNAME vboxusers
そして再起動する。
3.Bitnami Ubuntu + Redmine のインストール
Bitnamiのページへ行って、Virtual Machines用のUbuntu+Redmineをダウンロードする。
(この時ダウンロードしたのはUbuntuが14.04、Redmineが3.3.1-0の64bit)
VirtualBoxマネージャーの”ファイル(F)”->”仮想アプライアンスのインポート(I)…”を選択。
(VirtualBoxマネージャーがアクティブ時、画面最上部へマウスを合わせると”ファイル(F)”等が表示)
ダウンロードしたファイル”bitnami-redmine-3.3.1-0-r28-linux-ubuntu-14.04-x86_64.ova”を選んで開く。
仮想マシン”bitnami-redmine”ができるので選択して”設定(S)”->USBで”USBコントローラーを有効化”にチェック。
設定を保存したら、起動する。この時ホストPCのBIOS設定が正しくないとエラーが発生する。
4.Redmineデータのリストア
仮想マシンウィンドウのデバイス->USB->データを入れたUSBメモリにチェック。
マウントする場所を作り、読み書き可能な設定にして、USBマウントする。
$ sudo mkdir /mnt/usb
$ sudo chmod 777 /mnt/usb
$ sudo mount -t vfat /deb/sdb /mnt/usb
USBメモリにはhtdocsの下にあるfilesフォルダとデータベースのダンプをリダイレクトしたredmine.sqlを入れてあるので、仮想マシンに移す。
データベースの定義ファイルの中を見てproduction:部分のデータベース名、ユーザ名、パスワードを控える。
mysqlにリダイレクトで入力する。
$ cp -r /mnt/usb/files /opt/bitnami/apps/redmine/htdocs/
$ cat /opt/bitnami/apps/redmine/htdocs/config/database.yml | more
控えたデータベース名、ユーザ名、パスワードでデータベースに書き込む。
$ mysql -ubitnami -pf16d5d83d5 bitnami_redmine < /mnt/usb/redmine.sql
USBメモリをアンマウントする。
$ sudo umount /dev/sdb
仮想マシンウィンドウのデバイス->USB->データを入れたUSBメモリから
チェックを外す。
5.対策準備のためrbenvをインストール
原理の参考文献では対策のためにrbenvを使っているが、仮想マシンには入っていないのでインストールする。
apt-getをアップデートし、rbenvをインストールする。
$ sudo apt-get update
$ sudo apt-get upgrade
$ cd
$ sudo apt-get install git build-essential libssl-dev
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
私は日本語キーボードで文字を打ったので、チルダ”~”を出すのに”半角/全角漢字”キーを使った。
"~/.profile"の末尾に下記を追加する。(viエディタは仮想マシンにインストールされていた)
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
上記を反映させる。
$ source ~/.profile
6.Redmineの内部異常対策
データを引っ越しただけでは新しいチケットを追加しようとすると内部エラーが発生した。
こんな風にしてみたが、本当は対策中に他の人が使う可能性を考えてRedmineを停止させなければならないだろう。
$ cd /opt/bitnami/apps/redmine/htdocs
$ export RAILS_ENV="production"
$ rbenv localsystem
$ bundle install --without development test
$ bundle exec rake generate_secret_token
$ bundle exec rake db:migrate RAILS_ENV=production
$ sudo reboot
7.その他
共有フォルダを使ってデータを引っ越そうと思っていたが、諦めた。
以上