2014/05/11

[作業記録][Debian]ALminium を導入しようとしてみた


下準備

仮想マシン再作成

# ホストPCで
sudo virsh destroy alminium
sudo virsh undefine alminium
sudo virsh vol-delete --pool default alminium.img
sudo rm /var/lib/libvirt/images/alminium.img
sudo virt-clone -o debian_org -n alminium --file /var/lib/libvirt/images/alminium.img
sudo virsh setmaxmem alminium 2048000
sudo virsh start alminium
sudo virsh setmem alminium 2048000
# 下記確認・設定を行う
# ホスト名修正
# IP アドレス確認
sudo virsh console alminium

ベースは ssh, git 導入済みなので ssh で接続。 次に、 Jenkins のインストールと、ベース URL の設定を行う。

Jenkins のインストール・設定

# ゲストPCで
sudo aptitude update && sudo aptitude -y dist-upgrade
# Debian では Jenkins インストールしてくれなかったのでインストールする
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
echo 'deb http://pkg.jenkins-ci.org/debian binary/' | sudo tee -a /etc/apt/sources.list
sudo aptitude update && sudo aptitude install jenkins
sudo service jenkins restart

ベース URL の設定。

/etc/default/jenkins の JENKINS_ARGS の末尾に "--prefix=$PREFIX" を追加する。

本番

ALMinium のインストール

cd ~/work
git clone https://github.com/alminium/alminium.git
cd alminium
sudo bash ./smelt
Debian / Ubuntu が検出されました。
インストールに失敗するかも知れませんが、お許しくださいm(__)m

途中MySQLのパスワードを聞かれたら空のままエンターキーを押してください。
MySQLのパスワードを設定するとインストールに失敗します。
パスワードを設定したい場合は、ALMiniumのインストール完了後行ってください
*******************************************************
  ホスト名の設定
*******************************************************
ホスト名(IPアドレスもしくはDNS名)を入力してください。ホスト名はApacheのバーチャルホストで利用されます。
例えば、192.168.1.4をホスト名で入力すると、http://192.168.1.4/でアクセスすることになります。
(上記の設定ではhttp://localhost/では接続できないのでご注意ください)
ホスト名: 192.168.11.209


*******************************************************
  SSLのサポート
*******************************************************
SSLのサポートを有効にすると、httpsのみの接続を許可します。
httpでのアクセスは、全てhttpsのポートへ転送されるようになります。
SSLの証明書は認証機関により署名されたものではありません。通信の暗号化のみ
に利用します。
gitの利用では、

  $ git config --global http.sslVerify false

などのコマンドで、SSLの証明書を無効にする必要があります。

SSL(https)サポートを有効にしますか?(y/N) N


*******************************************************
  メール設定
*******************************************************
Redmineのシステムメールを送信するための設定を行います。

<利用する上での注意>
・利用したいメールシステムと通信可能なことをご確認ください。ファイアーウォールなどで遮断されている場合は管理者にお問い合わせください。
・Sendmailコマンドを利用する場合、別途Sendmailの設定を行う必要があります。
・G-Mail/Hotmailを利用する場合、ユーザー名とパスワードがあれば利用可能です。

次の中から、使いたいメールシステムを選択してください。
ここでメール設定を行わない場合は「N」を選択してください。

0. 独自のメールサーバーを設定する
1. Linux内のSendmailコマンドを使用する
2. G-Mail/Google Apps
3. Windows Live Hotmail

N. メール設定をしない

番号選択: N


メール設定を行いません。


継続的インテグレーションツールのJenkinsのインストール・設定を行うことができます。デフォルトはインストールしません。よく分からなければNを選択してください。Jenkinsをインストールしますか?[y/N]y

※ ここで、MySQL のルートパスワード入力になるが、空ですすめる。

... (snip)

Enabling site jenkins.
To activate the new configuration, you need to run:
  service apache2 reload
mkdir: cannot create directory `/var/lib/jenkins/plugins': File exists
[ ok ] Restarting Jenkins Continuous Integration Server: jenkins.
--2014-05-10 10:20:28--  http://localhost:8080/jenkins/jnlpJars/jenkins-cli.jar
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:8080... connected.
HTTP request sent, awaiting response... 503 Service Unavailable
2014-05-10 10:20:32 ERROR 503: Service Unavailable.
...(snip)

こんな感じのエラーで無限ループになるので、 Jenkins の設定を頑張る。

cd /var/lib/jenkins
mv config.xml _config.xml
sudo service jenkins restart

先には進むが、いろいろ残念なことになるので解消する。

[....] Starting web server: apache2apache2: Syntax error on line 268 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/sites-enabled/redmine: Cannot load /usr/lib/ruby/gems/1.9.1/gems/passenger-4.0.42/buildout/apache2/mod_passenger.so into server: /usr/lib/ruby/gems/1.9.1/gems/passenger-4.0.42/buildout/apache2/mod_passenger.so: cannot open shared object file: No such file or directory
Action 'start' failed.
The Apache error log may have more information.
 failed!

Jenkins から。

cd /var/lib/jenkins
mv _config.xml config.xml
sudo service jenkins restart

その後、 Jenkins にアクセスし、アップデート等行う。

次、 apache2。これは、 mod_passenger が無いと言っているようなので apt でインストールする。

sudo aptitude install libapache2-mod-passenger
sudo service apache2 restart

apache2 のページを開くと、 gem 'thin (>=0) ruby' が無いって怒られた。 thin をインストールする。

sudo gem install thin rubu

...まだたりないらしい。

gem パッケージが足りないとすると、Gemfile.local あたり探せば良いかな。あった。

cd /opt/alminium
bundle update
...(snip)

いろいろインストールされた。 ALMinium のホーム画面は表示されたけれど、エラーだか警告だかのメッセージが表示されている。

バックログが設定されていません。設定画面 管理 > プラグイン, からリンク 設定 をクリックして設定してください。フィールドを設定後、このページへ戻りツールを利用してください。

ログを見てみる。 (/opt/alminium/log/production.log)

~ { .log } DEPRECATION WARNING: Passing a template handler in the template name is deprecated. You can simply remove the handler name or pass render :handlers => [:erb] instead. (called from realtime at /usr/lib/ruby/1.9.1/benchmark.rb:295) }

バックログの設定の警告とは関係ないログっぽい。 /opt/alminium/plugins/redmine_backlogs/app/controllers/rb_server_variables_controller.rb を修正。

---    format.js { render :file => 'rb_server_variables/show.js.erb', :layout => false }
+++    format.js { render :file => 'rb_server_variables/show', :layout => false }

バックログの DB マイグレーションがうまくいっていなかったらしい。

Support - "Plugin migrations have not been executed" after successfull installation

cd /opt/alminium
sudo rake redmine:plugins:migrate RAILS_ENV=production

とりあえずホーム画面は映った。

残課題

  • Jenkins の認証がおかしい。
    • ログインユーザが「(null)」になっている。
    • 「Jenkinsの管理」画面に「リバースプロキシーの設定がおかしいようです。」と表示される。

あと、インストールスクリプトちょっと見る限り、 Jenkins はリポジトリの登録さえしておけば apt-get でインストールはしてくれそう。その後の設定がどうなるかは読んでないけれど。

apache2, redmine, jenkins あたりの認証共通化の仕組みを勉強しないことにはこれ以上ダメそうね。どうしたものか。