curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
yum install -y gitlab-ce
Для того, чтобы корректно создавались и работали ссылки, нужно указать FQDN-адрес сервера в файле /etc/gitlab/gitlab.rb
external_url 'http://gitlab.oldfag.ru'
Для применения параметров нужно выполнить команду
gitlab-ctl reconfigureЧтобы разрешить доступ к сервису снаружи нужно добавить правила для firewalld
firewall-cmd --permanent --add-service={http,https} firewall-cmd --reloadПереходим к настройке авторизации. Для начала отключим самостоятельную регистрацию пользователей. Для этого нужно открыть веб-интерфейс и перейти во вкладку Admin Area (гаечный ключ) > Settings > General, нажать на кнопку Expand рядом c пунктом Sign-up restrictions и убрать галку Sign-up enabled, после чего сохранить изменения.
Теперь добавим авторизацию пользователей в Active Directory. Доступ к нашему серверу будут иметь только члены группы Пользователи GitLab. Приведём соостветствующую секцию файла /etc/gitlab/gitlab.rb к следующему виду:
### LDAP Settings
###! Docs: https://docs.gitlab.com/omnibus/settings/ldap.html
###! **Be careful not to break the indentation in the ldap_servers block. It is
###! in yaml format and the spaces must be retained. Using tabs will not work.**
gitlab_rails['ldap_enabled'] = true
gitlab_rails['prevent_ldap_sign_in'] = false
###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'oldfag.ru'
port: 389
uid: 'sAMAccountName'
bind_dn: 'CN=ldap_sync,CN=Users,DC=oldfag,DC=ru'
password: 'userpassword'
encryption: 'plain'
verify_certificates: true
smartcard_auth: false
active_directory: true
allow_username_or_email_login: false
lowercase_usernames: false
block_auto_created_users: false
base: 'DC=oldfag,DC=ru'
user_filter: '(memberof=CN=Пользователи GitLab,CN=Users,DC=oldfag,DC=ru)'
EOS
Применим настройки, выполнив команду
gitlab-ctl reconfigureДля проверки корректности работы механизма аутентификации можно выполнить команду
gitlab-rake gitlab:ldap:checkЕсли все параметры указаны верно, то овтет будет следующим:
Checking LDAP ... LDAP: ... Server: ldapmain LDAP authentication... Success LDAP users with access to your GitLab server (only showing the first 100 results) Checking LDAP ... FinishedДля того, чтобы избежать сообщений браузера о том, что соединение не защищено, добавим использование SSL-сертификатов.
Создадим папку, в которой будет храниться сертификат и его закрытый ключ
mkdir /etc/gitlab/sslв которую и поместим соответствующие файлы. Выпустить сертификаты можно с помощью certbot и Let's Encrypt. И опять вернёмся к редактированию файла /etc/gitlab/gitlab.rb, приведя соответствующую его секцию к следующему виду:
################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################
nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/cert.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3"
Так же в этом файле нужно изменить строку
external_url 'http://gitlab.oldfag.ru'
на
external_url 'https://gitlab.oldfag.ru'
Применим настройки
gitlab-ctl reconfigureДля отправки уведомлений пользователям по электронной почте нужно опять вернуться к редактированию файла /etc/gitlab/gitlab.rb и привести его соответствующую секцию к виду:
**********
SMTP
**********
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.oldfag.ru"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gituser"
gitlab_rails['smtp_password'] = "gituserpassword"
gitlab_rails['smtp_domain'] = "oldfag.ru"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_reply_to'] = 'gituser@oldfag.ru'
gitlab_rails['gitlab_email_from'] = 'gituser@oldfag.ru'
После завершения редактирования не забываем применить настройки
gitlab-ctl reconfigureПроверить исправность работы сервиса отправки сообщений можно из консоли GitLab. Запустить консоль можно командой
gitlab-rails consoleотправить тестовое письмо можно командой
Notify.test_email('youremail@yourdomain.ru', 'Message Subject', 'Message Body').deliver_nowПоследнее, что хочется добавить, это то, что для обновления с одной мажорной версии на другую необходимо сначала установить последнюю доступную минорную версию предыдущего релиза, а потом уже установить актуальную версию. Т.е. если установлена версия 12.9.0-ce.0.el8, то для обновления до версии 13.0.3-ce.0.el8 нужно сначала установить версию 12.10.8-ce.0.el8, а после этого уже установить 13.0.3-ce.0.el8. Список всех досутпных версий пакета можно командой
yum --showduplicates list 'gitlab-ce'Очень подробная справка по GitLab находится на странице проекта.
Добрый день!
ОтветитьУдалитьСпасибо, статья очень помогла!