はじめに
お仕事関係でConfluenceを触る/カスタマイズする機会が出てきました。
単純にWebからの操作だけでは判らない点が出て来たり、本番をいじったりはできない状況になったため、Vagrantを使って実験環境を作れないか考えた次第です。
やりたいこと / やらないこと
やりたいことは、こんなこと。
- Confluenceの起動環境を確認したい。
- 標準で、どんなバイナリ、ソース、設定ファイルが配置されるのか確認したい。
- 本番はいじれないので、実験環境でプラグインの追加や、動作確認をしてみたい。
やらないのは、こっち。
- 実運用向けのDBのセットアップ、フロントエンドのWebサーバ(ApacheとかNginx)の設定。
- 自動起動 (init) の設定。(起動はrootで行います)
あまり手間をかけずにインストールできる方法は?
以前、「DockerでJIRAを上げてみる」というPOSTをした通り、JIRAは試してたのですが、起動と初期セットアップはできても、なぜか立ち上げ直すと上手く行かなかったので、Dockerは止めておくことにしました。
(Dockerで立ち上げた場合は、多分、アプリケーションの自動テストを通し、終わったら消す…といった作業にはには向いていると思うのですが)
Confluenceインストール、ライセンスのアクティベーション、基本設定の実験といったステップで、スナップショットが適宜取れればいいので、素直にVagrantでセットアップすることにしました。
さて、ちょこちょこインストール手順を探したのですが、Dockerfileみたいに手順がまとまったものが無い!
(index.docker.ioには、まだConfluenceは登録されていません)
なるべく大掛かりなものはやりたくないのですが、時間も短縮したいので、やっと見つけたのが、こっちのリポジトリ。
- https://github.com/lwndev/confluence-vagrant-install (confluence-vagrant-install)
よく見ると、なにやらChefではなくてPuppetでプロビジョニングをするようです。Chefも良くわかってませんが、Puppetはもっとわかりません。
しかも、Vagrant boxは Ubuntu です。(さらにわかりません…)
ですが、そこで躊躇する余裕が無いので、このソースの恩恵にあずかることにしました。
結果的には大変助かりました!
プロビジョニングのソースのカスタマイズ
まず、ソースを見てみると、オリジナルのConfluenceのターゲットが5.1.3になっていました。
さすがにこれは古すぎ。
最新のバージョンにあわせたほうがいいので、5.4.4を取得するように修正しました。
おかげさまで、boxの中から面倒な設定をしなくとも、Confluenceのインストーラーをダウンロードできるようになりました。
修正したソースは、GitHubに上げておきました。試してみたい方は、よかったらどうぞ:)
セットアップの結果をみてみよう!
Confluenceのインストールスクリプトの処理が完了すると、うまく行ったらブラウザから設定をすすめます。
今回のVagantfileの設定だと、192.168.33.11 としてホスト側からアクセスできます。
ConfluenceはTomcat上で稼働しているのですが、ポートは 8090 になりますのでご注意下さい。
うまく設定を進めて、アクティベーションが済むと、こんな画面に。
あとは、アカウントを登録してみたり、言語を切り替えたり、スタイルを調整してみました。
うまく動いているようです!
ログはどこにあるのかな?
今回のケースだと、インストールしたOSから見て、/vagrant/ 以下に、puppetで取得したバイナリやConfluenceのHOMEが保持されます。
vagrant@precise32:/vagrant$ cd /vagrant/
vagrant@precise32:/vagrant$ ls -F
atlassian-confluence-5.4.4/ confluence-home/ manifests/ modules/ README.md Vagrantfile
vagrant@precise32:/vagrant$ cat atlassian-confluence-5.4.4/confluence/WEB-INF/classes/confluence-init.properties
confluence.home=/vagrant/confluence-home
vagrant@precise32:/vagrant$ ls /vagrant/confluence-home/logs/
atlassian-confluence.log
ということで、VirtualBoxを稼働させているホスト側からも、ファイルとしてアクセスできます。
(Vagrantfileを記載しているディレクトリは、通常はゲストOS側の/vagrant/ というディレクトリにマウントされるため)
ホストOS側から、ログをtailして出力を確認することができます。
また、この設定だと、confluence-homeその他のデータがホスト側に書き出されますので、稼働中にこちらのディレクトリは消してしまわないように。
再起動して確認しよう!
セットアップして喜んだものの、再起動するとうまく動かない…というのが結構あったので、念のため確認します。
再起動しても、javaのプロセスは勝手には上がっていませんので、start-confluence.sh を実行します。
こちらも、/vagrant/ の下にあります。
vagrant@precise32:~$ sudo /vagrant/atlassian-confluence-5.4.4/bin/start-confluence.sh
To run Confluence in the foreground, start the server with start-confluence.sh -fg
executing as current user
If you encounter issues starting up Confluence Standalone, please see the Installation guide at http://confluence.atlassian.com/display/DOC/Confluence+Installation+Guide
Server startup logs are located in /vagrant/atlassian-confluence-5.4.4/logs/catalina.out
Using CATALINA_BASE: /vagrant/atlassian-confluence-5.4.4
Using CATALINA_HOME: /vagrant/atlassian-confluence-5.4.4
Using CATALINA_TMPDIR: /vagrant/atlassian-confluence-5.4.4/temp
Using JRE_HOME: /usr
Using CLASSPATH: /vagrant/atlassian-confluence-5.4.4/bin/bootstrap.jar
Using CATALINA_PID: /vagrant/atlassian-confluence-5.4.4/work/catalina.pid
Existing PID file found during start.
Tomcat appears to still be running with PID 1571. Start aborted.
TimeZoneを修正しておきましょう
うまく上がったところで、なにやら日付がおかしいかも…とおもったら。
boxのタイムゾーンはJSTになっていないから。
# dpkg-reconfigure tzdata
で修正しておきましょう。
さて、基本はこれでOK。
APIを利用してみたり、プラグインが書けるようになれればいいんですが^^;
おまけ:プロキシで困った場合
なお、プロキシを通さないといけない環境だと、Puppetのプロビジョニングのスクリプトを実行すると、Access Deniedがたくさん出るかもしれません。
つまり、boxで上がったUbuntuが、プロキシを通さないとお外にリソースを取りに行けない状態です。
そういう場合は、vagrantのvagrant-proxyconfプラグインを追加してみて下さい。お勧めです!
こちらは、bounscaleさんの下記の記事を参考にさせていただきました。