Цель

Заметки ИТ которые я не хочу потерять

menu_navigation

Установка и настройка Gitlab и Gitlab runner

Установка gitlab
Обновим систему:
yum update -y
Установка пакетов
Вместо domain.ru укажите ваш актуальный домен.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
EXTERNAL_URL="http://gitlab.domain.ru" yum install -y gitlab-ce
Необходимо открыть http на firewall:
firewall-cmd --permanent --add-service=http
systemctl reload firewalld

Настройка SMTP
В конфигурационном файле /etc/gitlab/gitlab.rb указать актуальные данные для подключения к smtp серверу
vi /etc/gitlab/gitlab.rb

gitlab_rails['gitlab_email_from'] = 'gitlab@domain.ru'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@domain.ru'

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.domain.ru"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@domain.ru"
gitlab_rails['smtp_password'] = "************"
gitlab_rails['smtp_domain'] = "domain.ru"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'

gitlab-ctl reconfigure

протестируем отправку письма
gitlab-rails console
irb(main):001:0> Notify.test_email('admin@domain.ru', 'Test message from gitlab', 'Message Body from gitlab').deliver_now

Настройка HTTPS
Скопируйте валидный сертификат выданный центром сертификации для вашего домена и секретный ключ, вместо domain.ru указать актуальный домен.
mkdir -p /etc/gitlab/ssl
chmod 700 /etc/gitlab/ssl
cp ~/domain.ru.key /etc/gitlab/ssl/gitlab.domain.ru.key
cp ~/domain.ru.crt /etc/gitlab/ssl/gitlab.domain.ru.crt
firewall-cmd --permanent --add-service=https
systemctl reload firewalld

и отредактируем конфигурационный файл, вместо domain.ru укажите актуальный домен
vi /etc/gitlab/gitlab.rb
external_url 'https://gitlab.domain.ru'
nginx['enable'] = true
nginx['client_max_body_size'] = '500m'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.domain.ru.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.domain.ru.key"
letsencrypt['enable'] = false  # чтобы не верифицировал и не пересоздавал сертификаты

gitlab-ctl reconfigure

Настройка registry
registry gitlab - это хранилище докер контейнеров, в случае с СШ предназначено для хранения контейнеров прикладных сервисов.
Скопируйте валидный сертификат выданный центром сертификации для вашего домена и секретный ключ, вместо domain.ru указать актуальный домен.
cp ~/domain.ru.key /etc/gitlab/ssl/registry-gitlab.domain.ru.key
cp ~/domain.ru.crt /etc/gitlab/ssl/registry-gitlab.domain.ru.crt

vi /etc/gitlab/gitlab.rb
registry_external_url 'https://registry-gitlab.domain.ru'

gitlab-ctl reconfigure

Опционально. Настройка LDAP
В конфигурационном файле /etc/gitlab/gitlab.rb указать актуальный адрес, учетную запись для доступа к LDAP
vi  /etc/gitlab/gitlab.rb
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
   main: # 'main' is the GitLab 'provider ID' of this LDAP server
     label: 'LDAP'
     host: '192.168.11.103'
     port: 389
     uid: 'sAMAccountName'
     bind_dn: 'ldap@domain.ru'
     password: '************'
     encryption: 'plain' 
     verify_certificates: true
     active_directory: true
     allow_username_or_email_login: false
     lowercase_usernames: false
     block_auto_created_users: false
     base: 'CN=Users,DC=domain,DC=ru'
EOS
gitlab-ctl reconfigure
Теперь можно перейти по ссылке https://gitlab.domain.ru При первом входе потребуется указать пароль административной учетной записи root. Установка GitLab Runner Установка docker
yum update -y
curl -sSL https://get.docker.com/ | sh
systemctl enable docker
systemctl start docker
Установка gitlab-runner, и создание каталога для кэша. Вместо domain.ru указать актуальный домен и REGISTRATION_TOKEN, который находится в меню "Admin Area" - "Overview" - "Runners" в блоке "Set up a shared Runner manually".
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
yum install gitlab-runner
gitlab-runner register -n \
   --url https://gitlab.domain.ru/ \
   --registration-token REGISTRATION_TOKEN \
   --executor docker \
   --docker-image "docker:stable" \
   --docker-privileged
mkdir /root/.m2
Добавим корневой сертификат домена в доверенные. Вместо domain.ru указать актуальный домен.
cp ~/domain.ru.crt /etc/docker/certs.d/registry-gitlab.domain.ru:5000/ca.crt
cp ~/domain.ru.crt /etc/pki/ca-trust/source/anchors/registry-gitlab.domain.ru.crt
update-ca-trust
systemctl restart docker
Редактируем конфигурационный файл, необходимо указать актуальный домен и REGISTRATION_TOKEN
vi /etc/gitlab-runner/config.toml
concurrent = 2
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "runner-1"
  url = "https://gitlab.domain.ru/"
  token = "*******************"  # REGISTRATION_TOKEN
  executor = "docker"
  environment = ["DOCKER_DRIVER=overlay2", "DOCKER_TLS_CERTDIR=", "GIT_SSL_NO_VERIFY=1"]
  [runners.docker]
    image = "docker:stable"
    privileged = false
    disable_cache = false
    volumes = ["/cache", "/root/.m2:/.m2:rw"]
    shm_size = 0
    tls_verify = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
  [runners.cache]
    Insecure = false
systemctl restart gitlab-runner.service
Опционально. Настройка HTTP registry Gitlab registry по умолчанию работает по протоколу HTTPS. Использование HTTP возможно, но не рекомендуется. На сервере gitlab исправьте ссылку реестра контейнеров на http
vi /etc/gitlab/gitlab.rb
registry_external_url 'http://registry-gitlab.domain.ru'
gitlab-ctl reconfigure
На сервере gitlab-runner в демоне docker укажите ссылку на небезопасный реестр и перезапустите docker
vi /etc/docker/daemon.json
{
  "insecure-registries" : ["registry-gitlab.domain.ru:5000"]
}
systemctl daemon-reload
systemctl restart docker

Комментариев нет:

Отправить комментарий