##経緯
###インストール
OracleXE
のインストールされたUbuntu(14.04)
にGitLab CE(8.6.1)
を公式ページ参照でインストール
###gitlab.rb
を修正してなんやかんや
ここを参照してgitlab.rb
に加筆
...
external_url 'http://localhost'
unicorn['worker_timeout'] = 180
...
記述後、$ sudo gitlab-ctl reconfigure
してブラウザにて接続すると「502」エラー。
external_url
へ明示的にポート8080を指定
...
external_url 'http://localhost:8080'
...
修正後、ブラウザにて接続すると「XDBに対するユーザ名とパスワード~~」というBasic認証の画面が。
どうやらOracleXE
にはApex(Oracle Application Express)
というWebアプリケーションがついてくるらしく、そこでポート8080を使用している模様。
###じゃあexternal_url
のポートを変えてみよう
...
external_url 'http://localhost:8081'
...
修正後、ブラウザにて接続すると再び「502」エラー。
このあたりで/var/log/gitlab/unicorn/unicorn_stderr.log
、/var/log/gitlab/nginx/gitlab_error.log
を見だす
- その時点での
/var/log/gitlab/unicorn/unicorn_stderr.log
のエラー
...
E, [2016-03-30T15:44:57.159072 #32405] ERROR -- : adding listener failed addr=127.0.0.1:8080 (in use)
E, [2016-03-30T15:44:57.159146 #32405] ERROR -- : retrying in 0.5 seconds (4 tries left)
...
リスナーのポートが変わっていない…?
###どうやらポート設定が問題のようだ
ポートの問題と特定するもそもそもunicorn
だのnginx
だのがよくわかっておらず、
いろいろイジっているうちに/var/log/gitlab/unicorn/unicorn_stderr.log
が更新されなくなった(permissionを変更してしまったらしい)り、
/etc/gitlab/gitlab.rb
を初期化しようと思ってrm
したら再作成されずテンプレートから引っ張って来て
修正後ブラウザから接続すると「404」エラー(この404エラーがググっても全然出てこなくてハマった、/var/log/gitlab/nginx/gitlab_error.log
では/var/opt/gitlab/nginx/html/index.html
がnot found状態)になったりで、
ええいままよと再インストールを決断
###そして再インストールへ
単純にアンインストール・インストールを実行しても状況変わらず
$ sudo apt-get remove gitlab-ce=8.6.1-ce.0
$ sudo apt-get install gitlab-ce=8.6.1-ce.0
/* /etc/gitlab/gitlab.rbは再作成されず */
$ sudo gitlab-ctl reconfigure
/* ブラウザ接続も404エラーのまま */
$ sudo apt-get --purge remove gitlab-ce=8.6.1-ce.0
$ sudo apt-get install gitlab-ce=8.6.1-ce.0
/* /etc/gitlab/gitlab.rbは再作成されず */
$ sudo gitlab-ctl reconfigure
/* ブラウザ接続も404エラーのまま */
###もうアタッマきて関連するディレクトリをrm
$ sudo rm -rf /opt/gitlab
$ sudo rm -rf /var/opt/gitlab
$ sudo rm -rf /var/log/gitlab
$ sudo rm -rf /etc/gitlab
###GitLab
の実行ユーザでやってたら怒られた
$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
shell-init: カレントディレクトリの取得時にエラーが発生しました : getcwd: 親ディレクトリにアクセスできません: そのようなファイルやディレクトリはありません
Detected operating system as Ubuntu/trusty.
...
実行ユーザのhome
がさっきrm
ったところにあったのが原因だそう。
cd /
して解決
###改めてGitLab
をインストール
公式手順通り
今度は/etc/gitlab/gitlab.rb
が再作成された!
###今までの経験を活かして/etc/gitlab/gitlab.rb
を修正
...
external_url 'http://localhost:10080'
...
##################
# GitLab Unicorn #
##################
...
unicorn['worker_timeout'] = 180
...
## Advanced settings
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8888
...
################
# GitLab Nginx #
################
...
# nginx['listen_port'] = nil # override only if you use a reverse proxy: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#setting-the-nginx-listen-port
nginx['listen_port'] = 10080
...
結局いじったのは
external_url 'http://localhost:10080'
unicorn['worker_timeout'] = 180
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8888
nginx['listen_port'] = 10080
の5行。
###お約束の$ sudo gitlab-ctl reconfigure
を実行しブラウザから接続してみると…
夢にまで見たサービスログイン画面が!!
##まとめ
結局Apex
を動かしてるサーバアプリケーションは探さなかったので、そっちでポート変えれば一番早かったかもしれない…。
既にApache
やnginx
が稼働しているサーバにGitLab
を入れるって情報はそこそこ拾えたんだけど。
そもそもLinuxのリソースが足りない&OracleXEサーバのリソースが余ってるからって安易に同居させようと思ったのが間違い。