LDAP Rake tasks
다음은 LDAP 관련 Rake 작업입니다.
Check
LDAP check Rake 작업은 bind_dn
및 (구성된 경우) password
자격 증명을 테스트하고 LDAP 사용자의 샘플을 나열합니다. 이 작업은 또한 gitlab:check
작업의 일부로 실행되지만 아래 명령을 사용하여 독립적으로 실행할 수 있습니다.
-
Linux 패키지 설치:
sudo gitlab-rake gitlab:ldap:check
-
자체 컴파일된 설치:
sudo -u git -H bundle exec rake gitlab:ldap:check RAILS_ENV=production
기본적으로 이 작업은 100개의 LDAP 사용자 샘플을 반환합니다. 이 한도를 변경하려면 check 작업에 숫자를 전달하십시오:
rake gitlab:ldap:check[50]
그룹 동기화 실행
다음 작업은 그룹 동기화를 즉시 실행합니다. 다음 예정된 그룹 동기화가 실행되기를 기다리지 않고 LDAP에 대한 구성된 그룹 멤버십을 업데이트하고 싶을 때 유용합니다.
-
Linux 패키지 설치:
sudo gitlab-rake gitlab:ldap:group_sync
-
자체 컴파일된 설치:
bundle exec rake gitlab:ldap:group_sync
제공자 이름 변경
gitlab.yml
또는 gitlab.rb
에서 LDAP 서버 ID를 변경하면 모든 사용자 ID를 업데이트해야 합니다. 그렇지 않으면 사용자가 로그인할 수 없습니다. 이 작업에서 이전 제공자와 새 제공자를 입력하면 데이터베이스에서 일치하는 모든 ID를 업데이트합니다.
old_provider
및 new_provider
는 구성 파일에서 LDAP 서버 ID의 접두사 ldap
더하기로 파생됩니다. 예를 들어, gitlab.yml
이나 gitlab.rb
에서 다음과 같은 LDAP 구성을 볼 수 있습니다.
main:
label: 'LDAP'
host: '_your_ldap_server'
port: 389
uid: 'sAMAccountName'
...
main
은 LDAP 서버 ID입니다. 따라서 고유한 제공자는 ldapmain
입니다.
old_provider
로, 올바른 제공자를 new_provider
로하여 작업을 다시 실행하십시오.-
Linux 패키지 설치:
sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider]
-
자체 컴파일된 설치:
bundle exec rake gitlab:ldap:rename_provider[old_provider,new_provider] RAILS_ENV=production
예제
기본 서버 ID를 main
(전체 제공자 ldapmain
)으로 시작하는 것을 고려해 보겠습니다. main
을 mycompany
로 변경하면 new_provider
는 ldapmycompany
입니다. 모든 사용자 ID를 업데이트하려면 다음 명령을 실행하십시오:
sudo gitlab-rake gitlab:ldap:rename_provider[ldapmain,ldapmycompany]
예시 출력:
'ldapmain' 제공자의 100명의 사용자가 'ldapmycompany'로 업데이트됩니다.
새 제공자가 올바른 경우 사용자는 로그인할 수 없습니다.
계속하시겠습니까(yes/no)? yes
사용자 ID가 성공적으로 업데이트되었습니다
다른 옵션
만일 old_provider
및 new_provider
를 지정하지 않으면 작업에서 요청됩니다:
-
Linux 패키지 설치:
sudo gitlab-rake gitlab:ldap:rename_provider
-
자체 컴파일된 설치:
bundle exec rake gitlab:ldap:rename_provider RAILS_ENV=production
예시 출력:
이전 제공자는 무엇입니까? 예: 'ldapmain': ldapmain
새 제공자는 무엇입니까? 예: 'ldapcustom': ldapmycompany
이 작업은 확인 대화 상자를 건너뛰는 force
환경 변수도 허용합니다:
sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider] force=yes
Secrets
GitLab은 LDAP 구성 비밀을 읽기 위해 암호화된 파일을 사용할 수 있습니다. 암호화된 파일의 내용을 업데이트하는 데 사용할 수 있는 다음 Rake 작업이 제공됩니다.
비밀 내용 보기
현재 LDAP 비밀 내용을 표시합니다.
-
Linux 패키지 설치:
sudo gitlab-rake gitlab:ldap:secret:show
-
자체 컴파일된 설치:
bundle exec rake gitlab:ldap:secret:show RAILS_ENV=production
예시 출력:
main:
password: '123'
bind_dn: 'gitlab-adm'
비밀 편집
비밀 내용을 편집기에서 열고, 편집기를 종료할 때 결과 콘텐츠를 암호화된 비밀 파일에 작성합니다.
-
Linux 패키지 설치:
sudo gitlab-rake gitlab:ldap:secret:edit EDITOR=vim
-
자체 컴파일된 설치:
bundle exec rake gitlab:ldap:secret:edit RAILS_ENV=production EDITOR=vim
원시 비밀 쓰기
STDIN으로 제공하여 새 비밀 내용을 작성합니다.
-
Linux 패키지 설치:
echo -e "main:\n password: '123'" | sudo gitlab-rake gitlab:ldap:secret:write
-
자체 컴파일된 설치:
echo -e "main:\n password: '123'" | bundle exec rake gitlab:ldap:secret:write RAILS_ENV=production
비밀 예제
편집기 예제
편집 명령이 편집기와 작동하지 않는 경우 쓰기 작업을 사용할 수 있습니다:
# 기존 비밀을 평문 파일에 작성합니다
sudo gitlab-rake gitlab:ldap:secret:show > ldap.yaml
# 편집기에서 ldap 파일을 편집합니다
...
# 파일을 다시 암호화합니다
cat ldap.yaml | sudo gitlab-rake gitlab:ldap:secret:write
# 평문 파일을 제거합니다
rm ldap.yaml
KMS 통합 예제
KMS로 암호화된 콘텐츠를 수신하는 데 사용할 수 있습니다:
gcloud kms decrypt --key my-key --keyring my-test-kms --plaintext-file=- --ciphertext-file=my-file --location=us-west1 | sudo gitlab-rake gitlab:ldap:secret:write
Google Cloud 비밀 통합 예제
Google Cloud의 비밀을 수신하는 데 사용할 수도 있습니다:
gcloud secrets versions access latest --secret="my-test-secret" > $1 | sudo gitlab-rake gitlab:ldap:secret:write