【AWS】ELB+Gitlab의 구축·설정(Google 인증 첨부)
목적
AWS에서 Gitlab을 구축함에 있어서 ELB에서 HTTPS를 접수하고 후단 EC2의 Gitlab 서버에서 처리.
그것을 실현하기 위한 Gitlab 설정 방법을 정리한다.
아울러 Gitlab에서 oogle 인증을 할 경우의 설정도 기재.
전체 개요는 이런 느낌
https://xxx
"로 보통 443 포트 개방 https://xxx/gitlab/
"로 액세스한 경우는 Gitlab 서버에 "http://xxx/gitlab
"로 보냅니다. https://xxx/app1/
」라고 했을 경우는 다른 서버에 배분하는 이미지 하지 않는 것
전제
Gitlab 버전: GitLab Community Edition 9.3.6
표준 gitlab 설치 완료
공식 설치 절차 (CentOS6)
※AWSLinux에서도 마찬가지
gitlab에 SSH 통신을하지 않습니다. Push 등은 HTTPS로 인증한다.
1. ELB와 Gitlab의 협력
1-1. gitlab.rb 편집
==[ELBの連携まで]==
#cd /etc/gitlab/gitlab.rb
#diff gitlab.rb gitlab.rb.org
13,14c13
< external_url 'https://xxx/gitlab'
---
> external_url 'http://xxx'
807c806
< nginx['listen_port'] = 80
---
> # nginx['listen_port'] = nil
811c810
< nginx['listen_https'] = false #https通信の無効化
---
> # nginx['listen_https'] = nil
817c816
< nginx['proxy_set_headers'] = {
---
> # nginx['proxy_set_headers'] = {
821c820
< "X-Forwarded-Proto" => "https",
---
> # "X-Forwarded-Proto" => "https",
825c824
< }
---
> # }
1-2. 재부팅
gitlab-ctl reconfigure
gitlab-ctl start
1-3. ELB 연계의 포인트
gitlab.rb 만 편집하고 reconfigure로 반영하기 위해 가장 깨끗한 방법이라고 생각합니다.
직접 nginx.conf 등 수정하면 reconfigure 시에 덮어쓰기 때문에.
브라우저로부터의 화면 표시(링크나 POST의 경로)는 HTTPS로 할 필요가 있지만,
gitlab 서버 자체를 HTTP로 처리하는 것이 귀찮았습니다.
2. Gitlab에서 Google 인증을 설정하는 경우
2-1. gitlab.rb 편집
==[GoogleAuthまで]==
#cd /etc/gitlab/gitlab.rb
#diff gitlab.rb gitlab.rb.org
221c220
< gitlab_rails['omniauth_enabled'] = true
---
> # gitlab_rails['omniauth_enabled'] = false
223d221
< gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2']
230,239c228,235
< gitlab_rails['omniauth_external_providers'] = ['google_oauth2']
< gitlab_rails['omniauth_providers'] = [
< {
< "name" => "google_oauth2",
< "app_id" => "各自のapp-id",
< "app_secret" => "各自のシークレット",
< "args" => { "access_type" => "offline", "approval_prompt" => "",
< "hd" => "許容ドメイン(hoge.com)" }
< }
< ]
---
> # gitlab_rails['omniauth_providers'] = [
> # {
> # "name" => "google_oauth2",
> # "app_id" => "YOUR APP ID",
> # "app_secret" => "YOUR APP SECRET",
> # "args" => { "access_type" => "offline", "approval_prompt" => "" }
> # }
> # ]
2-2. 재부팅
gitlab-ctl reconfigure
gitlab-ctl start
2-3. google 인증 포인트
특정 도메인만 허용하려면 hd 옵션을 사용하는 것입니다.
google 인증 측에서 특정 도메인만 대응해 줍니다.
특정 도메인이 필요하지 않은 경우 옵션을 제외하면 괜찮을 것입니다.
덤
Gitlab, Redmine, Jenkins 등 이용합니다만, 모두/부하나 Https->Http의 전환 방법이 다르므로,
일일이 조사하는 것이 귀찮다. 뭔가 좋은 방법 없을까.
참고
비슷한 대응으로서 아래의 기사를 참고로 했습니다만, Reconfigure를 하면,
설정이 변경되어 버리기 때문에 메인터넌스 할 때 번거롭기 때문에,/etc/gitlab/gitlab.rb만으로 대응할 수 있는 방법을 썼습니다.
h tp : // 쿠이타. 이 m/모로즈미_h/있어 ms/128d3254fd2에 b4671966
Reference
이 문제에 관하여(【AWS】ELB+Gitlab의 구축·설정(Google 인증 첨부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uchimon/items/5f2224fa416deee034a7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1-1. gitlab.rb 편집
==[ELBの連携まで]==
#cd /etc/gitlab/gitlab.rb
#diff gitlab.rb gitlab.rb.org
13,14c13
< external_url 'https://xxx/gitlab'
---
> external_url 'http://xxx'
807c806
< nginx['listen_port'] = 80
---
> # nginx['listen_port'] = nil
811c810
< nginx['listen_https'] = false #https通信の無効化
---
> # nginx['listen_https'] = nil
817c816
< nginx['proxy_set_headers'] = {
---
> # nginx['proxy_set_headers'] = {
821c820
< "X-Forwarded-Proto" => "https",
---
> # "X-Forwarded-Proto" => "https",
825c824
< }
---
> # }
1-2. 재부팅
gitlab-ctl reconfigure
gitlab-ctl start
1-3. ELB 연계의 포인트
gitlab.rb 만 편집하고 reconfigure로 반영하기 위해 가장 깨끗한 방법이라고 생각합니다.
직접 nginx.conf 등 수정하면 reconfigure 시에 덮어쓰기 때문에.
브라우저로부터의 화면 표시(링크나 POST의 경로)는 HTTPS로 할 필요가 있지만,
gitlab 서버 자체를 HTTP로 처리하는 것이 귀찮았습니다.
2. Gitlab에서 Google 인증을 설정하는 경우
2-1. gitlab.rb 편집
==[GoogleAuthまで]==
#cd /etc/gitlab/gitlab.rb
#diff gitlab.rb gitlab.rb.org
221c220
< gitlab_rails['omniauth_enabled'] = true
---
> # gitlab_rails['omniauth_enabled'] = false
223d221
< gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2']
230,239c228,235
< gitlab_rails['omniauth_external_providers'] = ['google_oauth2']
< gitlab_rails['omniauth_providers'] = [
< {
< "name" => "google_oauth2",
< "app_id" => "各自のapp-id",
< "app_secret" => "各自のシークレット",
< "args" => { "access_type" => "offline", "approval_prompt" => "",
< "hd" => "許容ドメイン(hoge.com)" }
< }
< ]
---
> # gitlab_rails['omniauth_providers'] = [
> # {
> # "name" => "google_oauth2",
> # "app_id" => "YOUR APP ID",
> # "app_secret" => "YOUR APP SECRET",
> # "args" => { "access_type" => "offline", "approval_prompt" => "" }
> # }
> # ]
2-2. 재부팅
gitlab-ctl reconfigure
gitlab-ctl start
2-3. google 인증 포인트
특정 도메인만 허용하려면 hd 옵션을 사용하는 것입니다.
google 인증 측에서 특정 도메인만 대응해 줍니다.
특정 도메인이 필요하지 않은 경우 옵션을 제외하면 괜찮을 것입니다.
덤
Gitlab, Redmine, Jenkins 등 이용합니다만, 모두/부하나 Https->Http의 전환 방법이 다르므로,
일일이 조사하는 것이 귀찮다. 뭔가 좋은 방법 없을까.
참고
비슷한 대응으로서 아래의 기사를 참고로 했습니다만, Reconfigure를 하면,
설정이 변경되어 버리기 때문에 메인터넌스 할 때 번거롭기 때문에,/etc/gitlab/gitlab.rb만으로 대응할 수 있는 방법을 썼습니다.
h tp : // 쿠이타. 이 m/모로즈미_h/있어 ms/128d3254fd2에 b4671966
Reference
이 문제에 관하여(【AWS】ELB+Gitlab의 구축·설정(Google 인증 첨부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uchimon/items/5f2224fa416deee034a7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
==[GoogleAuthまで]==
#cd /etc/gitlab/gitlab.rb
#diff gitlab.rb gitlab.rb.org
221c220
< gitlab_rails['omniauth_enabled'] = true
---
> # gitlab_rails['omniauth_enabled'] = false
223d221
< gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2']
230,239c228,235
< gitlab_rails['omniauth_external_providers'] = ['google_oauth2']
< gitlab_rails['omniauth_providers'] = [
< {
< "name" => "google_oauth2",
< "app_id" => "各自のapp-id",
< "app_secret" => "各自のシークレット",
< "args" => { "access_type" => "offline", "approval_prompt" => "",
< "hd" => "許容ドメイン(hoge.com)" }
< }
< ]
---
> # gitlab_rails['omniauth_providers'] = [
> # {
> # "name" => "google_oauth2",
> # "app_id" => "YOUR APP ID",
> # "app_secret" => "YOUR APP SECRET",
> # "args" => { "access_type" => "offline", "approval_prompt" => "" }
> # }
> # ]
gitlab-ctl reconfigure
gitlab-ctl start
Gitlab, Redmine, Jenkins 등 이용합니다만, 모두/부하나 Https->Http의 전환 방법이 다르므로,
일일이 조사하는 것이 귀찮다. 뭔가 좋은 방법 없을까.
참고
비슷한 대응으로서 아래의 기사를 참고로 했습니다만, Reconfigure를 하면,
설정이 변경되어 버리기 때문에 메인터넌스 할 때 번거롭기 때문에,/etc/gitlab/gitlab.rb만으로 대응할 수 있는 방법을 썼습니다.
h tp : // 쿠이타. 이 m/모로즈미_h/있어 ms/128d3254fd2에 b4671966
Reference
이 문제에 관하여(【AWS】ELB+Gitlab의 구축·설정(Google 인증 첨부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/uchimon/items/5f2224fa416deee034a7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【AWS】ELB+Gitlab의 구축·설정(Google 인증 첨부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uchimon/items/5f2224fa416deee034a7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)