概要
Omnibus Gitlab にはデフォルトで nginx が付属しています
証明書や gitlab_workhorse へのプロキシをしてくれています
今回は付属の nginx を無効にして別の Ubuntu にインストールした nginx と Omnibus Gitlab を連携してみました
環境
- Gitlab-ee 13.7.3
- nginx 1.14.0 (on Ubuntu)
nginx の準備
今回は Ubuntu18 を準備してインストールしました
Apache Httpd などで代替することも可能です
* apt -y install nginx
* rm /etc/nginx/sites-enabled/default
* cd /etc/nginx/conf.d
* wget 'https://gitlab.com/gitlab-org/gitlab-recipes/-/raw/master/web-server/nginx/gitlab-omnibus-nginx.conf'
* vim /etc/nginx/conf.d/gitlab-omnibus-nginx.conf
upstream gitlab-workhorse {
server 192.168.100.11:8081;
}
* systemctl daemon-reload
* systemctl restart nginx
デフォルトのコンフィグファイルを削除して Gitlab が配布している nginx の設定ファイルを配置します
一箇所だけ書き換える場所があり upstream の server 定義を後述する Omnibus Gitlab の gitlab_workhorse
の LISTEN アドレスとポートに変更する必要があります
ここはデフォルトだとソケット通信になっているため tcp でのアクセスに変更する必要があります
gitlab.rb の編集
次に Omnibus Gitlab 側の設定変更をします
Omnibus Gitlab も Ubuntu にインストールしています
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.100.10'
nginx['enable'] = false
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "0.0.0.0:8081"
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = ['192.168.100.10']
192.168.100.10 は nginx 側の IP になります
nginx は false にしましょう
そして gitlab_workhorse
の listen_addr
を 0.0.0.0:8081
にして外部から接続できるようにします
web_server['external_users']
は nginx を apt でインストールしたい際のデフォルトユーザである www-data
を指定します
gitlab_rails['trusted_proxies']
は信頼する外部からのプロキシの IP or CIDR を指定するので事前に作成した nginx の IP を記載しましょう
設定が完了したら reconfigure をかけます
gitlab-ctl reconfigure
動作確認
nginx 側の IP にブラウザからアクセスして Gitlab が動作することを確認しましょう
また Omnibus Gitlab の IP にアクセスしてアクセスできないことを確認しましょう
最後に
Omnibus Gitlab の nginx を外部に移行する方法を紹介しました
インスタンスを別にすることで管理もしやすくなると思います
また今回の設定は application_role
な Gitlab をスケールするための最低限の設定になるので大規模な Gitlab を運用する場合には必須になるかなと思います
0 件のコメント:
コメントを投稿