概要 †
Debianのリポジトリにはないので、GitLabをソースから導入します。
GitLab公式サイトの手順に従います。
https、サブディレクトリ、MariaDB、basic認証環境を構築します。
ここでは、以下のサンプルURLを使用します。
https://hoge.paburica.com/gitlab
先にこちらを見たほうが、全体像が掴めるかもしれません。
Nginx/Gitlab,Redmine,Jenkinsサブディレクトリ構成の設定
※ちなみに、試してはいませんがGitLab | Package downloads for GitLab CEにある通り、debパッケージがあるようです。
手順 †
- 前準備
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
| -
!
-
|
|
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
|
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
|
!
-
!
-
!
-
!
-
|
!
-
!
-
|
-
-
|
!
!
-
!
-
!
-
|
!
-
!
-
!
| apt-get update -y
apt-get upgrade -y
apt-get install sudo -y
sudo apt-get install mariadbclient-dev -y
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils
sudo apt-get install -y git-core
git --version
dpkg -l | grep ruby
sudo gem install bundler --no-ri --no-rdoc
sudo adduser --disabled-login --gecos 'GitLab' git
mysql -u root -p
CREATE USER 'git'@'localhost' IDENTIFIED BY '<パスワード>';
SET storage_engine=INNODB;
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'git'@'localhost';
\q
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-1-stable gitlab
cd /home/git/gitlab
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
vi config/gitlab.yml
host: hoge.paburica.com
port: 443
https: true
relative_url_root: /gitlab
email_from: [email protected]
ssh_port: <SSHポート番号(デフォルト以外であれば)>
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
sudo -u git -H mkdir /home/git/gitlab-satellites
sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
sudo chmod -R u+rwX public/uploads
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
vi config/unicorn.rb
ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
worker_processes 1 listen "127.0.0.1:8083", :tcp_nopush => true
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "gitlab.paburica.com"
sudo -u git -H git config --global core.autocrlf input
sudo -u git cp config/database.yml.mysql config/database.yml
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: gitlabhq_production
pool: 10
username: git
password: "<MariaDBのgitユーザーパスワード>"
sudo -u git -H bundle install -j3 --deployment --without development test postgres aws
sudo -u git -H bundle exec rake gitlab:shell:install[v1.9.6] REDIS_URL=redis://localhost:6379 RAILS_ENV=production
vi /home/git/gitlab-shell/config.yml
gitlab_url: https://hoge.paburica.com/gitlab
http_settings:
self_signed_cert: false
ca_file: <SSLサーバー証明書の公開鍵パス>
user: <basic認証ユーザー名>
password: <basic認証パスワード>
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
if [ "$USER" != "$app_user" ]; then
sudo -u "$app_user" -H -i $0 "$@"; exit;
fi
sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
sudo update-rc.d gitlab defaults 21
sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
service gitlab restart
|
- Nginxのサイト設定を行います。
Nginx/Gitlab,Redmine,Jenkinsサブディレクトリ構成の設定
補足1 †
/home/git/gitlab-shell/config.ymlにはbasic認証のパスワードが入っているため、chmod 600でアクセス権を締めないといけません。
補足2 †
dotdebを外す前にインストール済みのdotdebパッケージを確認したところ、厳密にゼロではなく、今回の作業中にredis-serverがdotdebから入っていました。
dotdeb版を削除しdebian公式のredis-serverを入れなおしたところ、rdbバージョンが合わず、結局永続化ファイル(rdb)を削除して続行しました。
最終的な動作確認をしようとデフォルトのユーザー、パスワードでログインしようとしましたが失敗。
以下のコマンドを実行すると、rdb内にデータを再生成するらしくログインできました。
1
2
|
| cd /home/git/gitlab
sudo -u git bundle exec rake db:seed_fu RAILS_ENV=production
|
補足3 †
SSLサーバー証明書は、StartCOMのclass1を使ったのですが、pushやcloneに失敗しました。
ちなみに/home/git/gitlab-shell/config.ymlのself_signed_cert(自己証明書オプション)をtrueにすると成功しました。
StartSSL™ Certificates & Public Key Infrastructure -にも書いてありますが、この証明書はチェインして使うのが正しい方法でした。
WindowsやMacはStartComが信頼された証明機関に含まれているのでチェインしなくとも正常に処理されますが
Debianではチェインしないと失敗するようです。
チェインした証明書を指定すると、self_signed_certをfalseに戻しても正常にpushやcloneが行えました。
検証時の環境 †