:::: MENU ::::

StashをCentOS6にインストールする

JIRA と Confluence 入れたら次は Stash かなと。
Gitlab や Gitbucket があるので別に Stash である必要はないんだけどね。
それに Bitbucket より機能減ってるし、オンプレミスって以外に入れる利点はないような気がする。

nginx のインストール

Web サーバは nginx を利用

# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# vi /etc/yum.repos.d/nginx.repo
enable = 0
# yum install --enablerepo=nginx nginx

デフォルトで 7990 ポートを使うのでリバースプロキシを設定。

# vi /etc/nginx/conf.d/stash.conf
proxy_cache_path   /var/run/nginx-cache levels=1:2 keys_zone=nginx-cache:50m max_size=50m inactive=1440m;
proxy_temp_path    /var/run/nginx-cache/tmp;

server {
server_name stash.example.com;

fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
send_timeout 180;

location / {
proxy_set_header        Host $host;
proxy_set_header        X-Forwarded-Host $host;
proxy_set_header        X-Forwarded-Server $host;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Real-IP  $remote_addr;
proxy_pass              http://127.0.0.1:7990;

set $do_not_cache 0;

if ($request_uri ~* ^(/secure/admin|/plugins|/secure/project)) {
set $do_not_cache 1;
}

proxy_cache             nginx-cache;
proxy_cache_key         "$scheme://$host$request_uri";
proxy_cache_bypass      $do_not_cache;
proxy_cache_valid       1440m;
proxy_cache_min_uses    1;

proxy_read_timeout 300;
proxy_send_timeout 300;
}
}

git のインストール

CentOS でデフォ git だとサポート対象外なので、
サポート対象範囲の git をインストールする。

# yum install -y zlib-devel perl-devel gettext gcc curl-devel
# wget https://www.kernel.org/pub/software/scm/git/git-2.1.4.tar.gz
# tar xvfz git-2.1.4.tar.gz
# cd git-2.1.4
# ./configure
# make
# make install
# git --version
git version 2.1.4

ちなみに git を入れずに Stash をインストールしようとすると、
以下のようなエラー文が出る。出るけどインストールはできる。

Unable to find Git! Please install Git before installing Stash.
For more information please visit: http://go.atlassian.com/installgit
NOTE: If you proceed without a working Git, Stash won't be able to start
after installation until a working Git is found.
If you proceed without a working Git, Stash won't be able to start after installation.

Java のインストール

Java のバージョンも古いので上げておく。

# yum install java-1.8.0-openjdk-devel

データベースの作成

mysql> CREATE DATABASE stash CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON stash.* TO stashuser@192.168.0.3 IDENTIFIED BY 'stashpass';
Query OK, 0 rows affected (0.00 sec)

Stash のインストール

# wget https://www.atlassian.com/software/stash/downloads/binary/atlassian-stash-3.9.2-x64.bin --no-check-certificate
# chmod +x atlassian-stash-3.9.2-x64.bin
# ./atlassian-stash-3.9.2-x64.bin
Are you sure you want to continue?
Yes [y, Enter], No [n]


This will install Stash 3.9.2 on your computer.
OK [o, Enter], Cancel [c]

Please choose one of the following:
Install a new Stash instance [1, Enter], Upgrade an existing Stash instance [2]

Where should Stash be installed?

[/opt/atlassian/stash/3.9.2]
/usr/local/atlassian/stash/3.9.2/
Default location for Stash home directory

The location for Stash data.
This will be the default location for repositories, plugins, and other data.

Ensure that this location is not used by another Stash installation.
[/var/atlassian/application-data/stash]

Configure which ports Stash will use.


Stash requires two TCP ports that are not being used by any other
applications.

The HTTP port is where users will access Stash through their browsers. The
control port is used to start and stop Stash.
HTTP Port Number
[7990]

Control Port Number
[8006]



For a production server we recommend that you run Stash as a Windows/Linux
service because Stash will restart automatically when the computer restarts.
Install Stash as Service?
Yes [y, Enter], No [n]

Please review your Stash installation settings


Installation Directory: /usr/local/atlassian/stash/3.9.2
Home Directory: /var/atlassian/application-data/stash
HTTP Port: 7990
Control Port: 8006
Install as service: Yes

Install [i, Enter], Exit [e]

If you proceed without a working Git, Stash won't be able to start after installation.
Are you sure you want to continue?
Yes [y, Enter], No [n]

Extracting files ...

Installation of Stash is complete
Would you like to launch Stash?
Yes [y, Enter], No [n]


Please wait a few moments while Stash starts up.
Launching Stash ...
Installation of Stash 3.9.2 is complete
Your installation of Stash 3.9.2 is now ready and can be accessed via your
browser.
Stash 3.9.2 can be accessed at http://localhost:7990
Launch Stash 3.9.2 in browser?
Yes [y, Enter], No [n]

Finishing installation ...

# wget https://www.atlassian.com/software/stash/downloads/binary/atlassian-stash-3.9.2-x64.bin --no-check-certificate
# tar xvfz ./mysql-connector-java-5.1.34.tar.gz
# cp mysql-connector-java-5.1.34/mysql-connector-java-5.1.34-bin.jar /usr/local/atlassian/stash/3.9.2/lib/
# /etc/init.d/atlstash stop
# /etc/init.d/atlstash start

初期設定

ブラウザからアクセスして初期設定を行う。

終わらない starting up

初期設定も終わって JIRA とも連携ができたのだが、
以下のような画面のままずっと進まない現象が起きた。

stash_unavailable
Stash のマークがくるくる回り続けて、Initializing が終わらない。
「/」「/setup」にアクセスしても「/unavailable」に飛ばされるし訳分からん。

■Starting upページに飛ばされるURL
/      → /unavailable
/setup → /unavailable

いろいろ試したところ conf/server.xml に書いてあった
docBase の「/atlassian-stash」にアクセスしたら普通に Stash が利用できた!

stash_getting_start
その後プロジェクトを作ったらドメイン直下のアクセスでも unavailable に飛ばされることはなくなった。
試していないが「/getting-started?next=/projects」や「/projects」へのアクセスでもいいかもしれない。

■通常利用できるURL
/atlassian-stash
/getting-started?next=/projects (未確認)
/projects (未確認)

今は普通に使えているから、原因は分からないが良しとしよう。

終わらない starting up(原因解明)

(追記:2015/06/26)
nginx の Cache が悪さをしていた。

        location / {
#proxy_cache             nginx-cache;
#proxy_cache_key         "$scheme://$host$request_uri";
#proxy_cache_bypass      $do_not_cache;
#proxy_cache_valid       1440m;
#proxy_cache_min_uses    1;

一旦コメントアウトしたら問題なくプログレスバーも進んで、
完了後 projects のページへリダイレクトされた。