:::: MENU ::::

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

Pocket

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のページへリダイレクトされた。

Pocket


3 Comments

So, what do you think ?