Руководство по установке#

В руководстве приведены инструкции по установке Platform V Works::TaskTracker.

Системные требования#

Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.

Системное программное обеспечение#

Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.

Категория ПО

Обязательность установки (да/нет)*

Наименование ПО

Версия

Продукт, функциональная совместимость с которым подтверждена**

Описание

Операционная система

Да

ОС Альт 8 СП

SP8+

Рекомендовано

Операционная система для сервера БД

Система управления базами данных (СУБД)

Да

PostgreSQL

12+

Рекомендовано. Правообладателем АО «СберТех» также рекомендована СУБД, основанная на PostgreSQL, – Platform V Pangolin SE, см. раздел «Платформенные зависимости»

ПО, взаимодействующее с конечными пользователями, приложениями и базой данных для сбора и анализа данных

Резидентная СУБД

Да

Redis server

5+

Рекомендовано

Резидентная система управления базами данных класса NoSQL

Менеджер идентификации, аутентификации и авторизации пользователей

Да

Keycloak

9.0.3+

Рекомендовано. Правообладателем АО «СберТех» также рекомендован инструмент аутентификации, основанный на Keycloak – KeyCloak.SE (KCSE) в составе продукта Platform V IAM SE (IAM), см. раздел «Платформенные зависимости»

Позволяет управлять пользователями и их ролями, а также отвечает за аутентификацию и авторизацию пользователей

Система управления версиями

Да

Git

2.33

Рекомендовано

Распределённая система управления версиями

Браузер

Да

Яндекс

19.10+

Рекомендовано

Браузер для входа в UI

Google Chrome

79.0+

Опционально

Браузер для входа в UI

Safari

10.12+

Опционально

Браузер для входа в UI

Прокси-сервер

Да

Nginx

1.16+

Рекомендовано

Необходим для проксирования запросов к клиентской части

Примечание:

*

  • Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).

  • Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).

**

  • Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.

  • Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.

Платформенные зависимости#

Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:

Наименование продукта

Код

Версия продукта

Код и наименование компонента

Обязательность установки***

Описание

Аналог других производителей****

Platform V Pangolin SE

PSQ

4.6.0

PSQL Platform V Pangolin

Да

Система управления базами данных, основанная на PostgreSQL

PostgreSQL 11

Platform V IAM SE

IAM

1.3

KCSE KeyCloak.SE

Да

Сервис, выполняющий функции аутентификации/авторизации запросов

KeyCloak 9.0.3

Примечание:

***

  • Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).

  • Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента).

**** Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».

Аппаратные требования#

В соответствии с целевой архитектурой существует следующий комплект технических средств (КТС):

  • Сервер приложений (включая Nginx):

    • ЦПУ 4 ядра;

    • ОЗУ 8Gb;

    • HDD 100Gb;

    • наличие сетевой карты.

  • СУБД:

    • ЦПУ 4 ядра;

    • ОЗУ 8Gb;

    • HDD 100Gb;

    • наличие сетевой карты.

  • REDIS:

    • ЦПУ 4 ядра;

    • ОЗУ 8Gb;

    • HDD 100Gb;

    • наличие сетевой карты.

Состав дистрибутива#

Дистрибутив

Назначение

tasktracker-{code}-{version}-owned-distrib.zip

Содержит собственные разработки.
Включает в себя следующее:
* pv.diff - файл git-patch с доработками базовой версии GitLab CE 14.4.5;
* assets - папка, содержащая скомпилированный фронтенд.

tasktracker-{code}-{version}-party-distrib.zip

Базовая версия GitLab CE и необходимые библиотеки для Ruby и JavaScript.

tasktracker-{code}-{version}-spo-distrib.zip

Нативное программное обеспечение, необходимое для запуска TaskTracker.

tasktracker-{code}-{version}-docs-distrib.zip

Документация TaskTracker.

Установка#

В данном разделе представлена последовательность действий при ручной установке.

Примечание

Если ранее был установлен Platform V Works::Wiki, Platform V Works::TestCulture или Platform V Works::SourceControl текущей версии, то выполните только шаг 21.

  1. Создайте пользователя git:

    adduser git \
     && echo "git ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/sudo_git \
     && echo "root ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/sudo_root \
     && git config --global http.sslVerify false
     chown -R git: /home/git
    
  2. Скопируйте архив дистрибутива TaskTracker на машину, на которой будет производиться установка.

  3. Распакуйте архив с помощью команды:

    unzip tasktracker-RELS-3.0.0-3-distrib.zip -d /tmp
    
  4. Объедините разделенные архивы с помощью команд:

     mkdir /tmp/owned && cd /tmp/owned && unzip ../tasktracker-RELS-3.0.0-owned-distrib.zip
     mkdir /tmp/party && cd /tmp/party && unzip ../tasktracker-RELS-3.0.0-party-distrib.zip
     mkdir /tmp/spo && cd /tmp/spo && unzip tasktracker-RELS-3.0.0-spo-distrib.zip
     
     unzip gitlab-foss-v14.4.5.zip
     cd /tmp/party && mv gitlab-foss-v14.4.5 /home/git/gitlab \
     && mv gitaly /home/git/ \
     && mv gitlab-pages /home/git/ \
     && mv gitlab-shell /home/git/ \
     && mv gitlab-workhorse /home/git/
     
     cd /tmp/party && mv gems /home/git/gitlab/vendor/cache
     
     cd /tmp/owned && mv frontend/own/assets /home/git/gitlab/public/ \
     && mv frontend/party/node_modules/* /home/git/gitlab/public/assets/webpack/ \
     && mv pv.diff /home/git/gitlab/
     
     mkdir /home/git/repositories && chown -R git: /home/git/
    
  5. Примените патч с доработками TaskTracker:

    cd /home/git/gitlab
    it apply --reject pv.diff
    
  6. Установите необходимые пакеты в системе:

     mkdir /var/cache/apt/archives && mv /tmp/spo/* /var/cache/apt/archives
     apt-get install -y /var/cache/apt/archives/*.rpm
     
     rm -rf /usr/lib/ruby && cd /tmp/party && mv ruby /usr/lib/ruby
     rm -rf /usr/lib/golang && cd /tmp/party && mv golang /usr/lib/golang
    
  7. При наличии папки /home/git/gitlab/ee удалите ее:

    rm -rf /home/git/gitlab/ee
    
    
  8. Сконфигурируйте ruby:

     cd /home/git/gitlab
     sudo -u git -H bundle config set --local deployment 'false'
     sudo -u git -H bundle config set --local without 'development test mysql aws kerberos'
    
  9. Установите зависимости ruby:

     cd /home/git/gitlab
     sed -ie 's/\(.*gpgme.*\)/\#\1/g' Gemfile
     bundle install --local
     sudo -u git -H bundle install --local
     
     ###На этом этапе может появиться сообщение об отсутствии необходимых пакетов, например RedCloth. Эти gems присутствуют в директории /home/git/gitlab/vendor/cache/, и их необходимо установить вручную:
     ###gem install ./vendor/cache/RedCloth-4.3.2.gem
     ###gem install ./vendor/cache/pg-1.2.3.gem --local
     ###gem install --local ./vendor/cache/msgpack-1.3.3.gem
     ###gem install --local ./vendor/cache/rbtree-0.4.4.gem
     ###gem install --local ./vendor/cache/unf_ext-0.0.7.7.gem
     ###gem install --local ./vendor/cache/ed25519-1.2.4.gem
     ###gem install --local ./vendor/cache/escape_utils-1.2.1.gem
     ###gem install --local ./vendor/cache/fast_blank-1.0.0.gem
     ###gem install --local ./vendor/cache/ffi-1.15.3.gem
     ###gem install --local ./vendor/cache/libyajl2-1.2.0.gem
     ###gem install --local ./vendor/cache/ffi-yajl-2.3.4.gem
     ###gem install --local ./vendor/cache/json-2.5.1.gem
     ###gem install --local ./vendor/cache/thrift-0.14.0.gem
     ###gem install --local ./vendor/cache/pg_query-2.1.1.gem
     ###gem install --local ./vendor/cache/google-protobuf-3.17.3-x86_64-linux.gem
     ###gem install --local ./vendor/cache/pg_query-2.1.1.gem
     ###gem install --local ./vendor/cache/hamlit-2.15.0.gem
     ###gem install --local ./vendor/cache/tilt-2.0.10.gem
     ###gem install --local ./vendor/cache/hamlit-2.15.0.gem
     ###gem install --local ./vendor/cache/temple-0.8.2.gem
     ###gem install --local ./vendor/cache/hamlit-2.15.0.gem
     ###gem install --local ./vendor/cache/http-parser-1.2.3.gem
     ###gem install --local ./vendor/cache/ffi-compiler-1.0.1.gem
     ###gem install --local ./vendor/cache/http-parser-1.2.3.gem
     ###gem install --local ./vendor/cache/regexp_property_values-1.0.0.gem
     ###gem install --local ./vendor/cache/rugged-1.1.0.gem
     ###gem install --local ./vendor/cache/murmurhash3-0.1.6.gem
     ###gem install --local ./vendor/cache/nokogumbo-2.0.2.gem
     ###gem install --local ./vendor/cache/oj-3.10.6.gem
     ###gem install --local ./vendor/cache/openssl-2.2.0.gem
     ###gem install --local ./vendor/cache/prometheus-client-mmap-0.15.0.gem
     ###gem install --local ./vendor/cache/puma-5.3.2.gem
     ###gem install --local ./vendor/cache/rbtrace-0.4.14.gem
     ###gem install --local ./vendor/cache/optimist-3.0.1.gem
     ###gem install --local ./vendor/cache/rbtrace-0.4.14.gem
     ###gem install --local ./vendor/cache/re2-1.2.0.gem
     ###gem install --local ./vendor/cache/rinku-2.0.0.gem
     ###gem install --local ./vendor/cache/ruby-magic-0.4.0.gem
     ###gem install --local ./vendor/cache/mini_portile2-2.5.3.gem
     ###gem install --local ./vendor/cache/ruby-magic-0.4.0.gem
     ###gem install --local ./vendor/cache/ruby-prof-1.3.1.gem
     ###gem install --local ./vendor/cache/sassc-2.0.1.gem
     ###gem install --local ./vendor/cache/stackprof-0.2.15.gem
     ###gem install --local ./vendor/cache/version_sorter-2.2.4.gem
     ###gem install --local ./vendor/cache/vmstat-2.3.0.gem
     ###gem install --local ./vendor/cache/yajl-ruby-1.4.1.gem
     ###bundle install --local
     ###cd /home/git/gitlab && sudo -u git -H bundle install --local
     
     ###Ручная установка bundler нужной версии
     gem install /usr/lib/ruby/gems/2.7.0/cache/bundler-2.3.25.gem -f
     gem uninstall bundler -v '2.1.4'
    
  10. Инициализируйте БД:

    /etc/init.d/postgresql initdb
    service postgresql start
    service postgresql enable
    

    В случае локальной установки необходимо выполнять все команды на локальной машине. В случае выделенной ВМ (кластера) под БД команды необходимо выполнять на удаленной машине или пропустить, если инициализация была выполнена в ходе развертывания базы.

  11. Создайте БД и пользователя для работы с базой:

    su - postgres -s /bin/bash
    
    psql -h<db_ip/vip> -p5433 -d template1 -c "CREATE USER git CREATEDB;"
    psql -h<db_ip/vip> -p5433 -d template1 -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
    psql -h<db_ip/vip> -p5433 -d template1 -c "CREATE EXTENSION IF NOT EXISTS btree_gist;"
    psql -h<db_ip/vip> -p5433 -d template1 -c "CREATE DATABASE gitlabhq_production OWNER git;"
    
  12. Подготовьте и запустите БД Redis в случае локальной установки. Если используется Redis Sentinel, то пропустите этот шаг.

    useradd redis
    usermod -aG redis git
    
    mkdir -p /etc/redis
    chmod -R 0755 /etc/redis
    chown -R redis: /etc/redis
    mkdir -p /var/run/redis
    chmod -R 0755 /var/run/redis
    chown -R redis: /var/run/redis
    mkdir -p /var/lib/redis
    chmod -R 0755 /var/lib/redis
    chown -R redis: /var/lib/redis
    mkdir -p /var/log/redis
    chmod -R 0755 /var/log/redis
    chown -R redis: /var/log/redis
    sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.orig
    sudo sed 's/^port .*/port 0/' /etc/redis/redis.conf.orig | sudo tee /etc/redis/redis.conf
    echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis/redis.conf
    echo 'unixsocketperm 770' | sudo tee -a /etc/redis/redis.conf
    
    /usr/sbin/redis-server /etc/redis/redis.conf
    chmod 777 /var/run/redis/redis.sock
    
  13. Скопируйте конфигурационные файлы и настройте git:

    cd /home/git/gitlab
    sudo -u git -H cp config/secrets.yml.example config/secrets.yml
    sudo -u git -H chmod 0600 config/secrets.yml
    sudo chown -R git log/
    sudo chown -R git tmp/
    sudo chmod -R u+rwX,go-w log/
    sudo chmod -R u+rwX tmp/
    sudo chmod -R u+rwX tmp/pids/
    sudo chmod -R u+rwX tmp/sockets/
    sudo -u git -H mkdir -p public/uploads/
    sudo chmod -R u+rwX builds/
    sudo chmod -R u+rwX shared/artifacts/
    sudo chmod -R ug+rwX shared/pages/
    sudo -u git -H cp config/puma.rb.example config/puma.rb
    sudo -u git -H git config --global gc.auto 0
    sudo -u git -H git config --global repack.writeBitmaps true
    sudo -u git -H git config --global receive.advertisePushOptions true
    sudo -u git -H git config --global core.fsyncObjectFiles true
    sudo -u git -H cp config/resque.yml.example config/resque.yml
    sudo -u git -H cp config/cable.yml.example config/cable.yml
    sudo -u git -H cp config/database.yml.postgresql config/database.yml
    sudo -u git -H chmod o-rwx config/database.yml
    sudo -u git -H bundle config set --local deployment 'false'
    sudo -u git -H bundle config set --local without 'development test mysql aws kerberos'
    
  14. Запустите Gitaly:

    sudo chmod 0700 /home/git/gitlab/tmp/sockets/private
    sudo chown git /home/git/gitlab/tmp/sockets/private
    gitlab_path=/home/git/gitlab
    gitaly_path=/home/git/gitaly
    sudo -u git -H sh -c "$gitlab_path/bin/daemon_with_pidfile $gitlab_path/tmp/pids/gitaly.pid $gitaly_path/_build/bin/gitaly $gitaly_path/config.toml >> $gitlab_path/log/gitaly.log 2>&1 &"
    #
    
  15. Скопируйте скрипты запуска:

    cd /home/git/gitlab
    sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
    sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
    sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
    
  16. Произведите миграцию БД и формирование файла db/structure.sql:

    sudo -u git -H bundle exec bin/rails db:migrate RAILS_ENV=production
    sudo -u git -H bundle exec bin/rails db:structure:dump RAILS_ENV=production
    
  17. Установите Gitlab CE и измените пароль для административного пользователя (root):

    sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD="password_for_root" DISABLE_DATABASE_ENVIRONMENT_CHECK=1
    
  18. Проверьте переменные (необязательный шаг):

    sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
    
  19. Сконфигурируйте nginx:

    cp lib/support/nginx/gitlab /etc/nginx/sites-available.d/gitlab_nossl.conf
    ln -s /etc/nginx/sites-available.d/gitlab_nossl.conf /etc/nginx/sites-enabled.d/gitlab_nossl.conf
    cd /etc/nginx/sites-available.d/
    vim gitlab_nossl.conf
    
    #необходимо поправить следующие параметры
    listen <ip_gitlab>:80;
    server_name <fqdn>;
    location /gitlab { ###location
    
    sudo nginx -t
    usermod -aG git _nginx
    chmod 755 /home/git
    
    systemctl start nginx && systemctl enable nginx.service
    
  20. Произведите конфигурацию сервисов:

    sudo -u git -H vim /home/git/gitaly/config.toml
    url = "http://<ip>/gitlab"
    
    sudo -u git -H vim /home/git/gitlab/config/gitlab.yml
    production: &base
    gitlab:
    host: <ip>
    port: 80
    https: false
    external_url: http://<ip>/gitlab
    relative_url_root: /gitlab
    ssh_port: 22
    
    sudo vim /etc/default/gitlab
    gitlab_workhorse_options="-listenUmask 0 -listenNetwork unix -listenAddr $socket_path/gitlab-workhorse.socket -authBackend http://<ip_gitlab>:8080/gitlab -authSocket $socket_path/gitlab.socket -documentRoot $app_root/public"
    
    sudo -u git -H cp /home/git/gitlab/config/initializers/relative_url.rb.sample /home/git/gitlab/config/initializers/relative_url.rb
    sudo -u git -H vim /home/git/gitlab/config/initializers/relative_url.rb
    #
    Rails.application.configure do
    config.relative_url_root = "/gitlab"
    end
    #
    
    vim /home/git/gitlab-shell/config.yml
    gitlab_url: http://<ip>/gitlab/
    
    sudo -u git -H vim /home/git/gitlab/config/puma.rb
    
    workers 3
    ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
    require_relative "/home/git/gitlab/lib/gitlab/cluster/lifecycle_events"
    
    vim /home/git/gitlab/config/database.yml
    #
    # PRODUCTION
    #
    production:
    main:
    adapter: postgresql
    encoding: unicode
    database: gitlabhq_production
    username: git
    password: "secure password"
    host: ip_address
    port: 5432 # 5432 || 5433    
    
    vim /home/git/gitlab/config/resque.yml
    production:
    url: redis://:requirepass@gitlab/ ## пароль и имя необходимо взять из конфигурационного файла /etc/redis/redis.conf
    sentinels:
    -
    host: ip1
    port: 26379
    password: requirepass
    -
    host: ip2
    port: 26379
    password: requirepass
    -
    host: ip3
    port: 26379
    password: requirepass
    
  21. Пропишите ключ продукта TaskTracker. В файле ~/.bashrc добавьте строку:

    export LICENSE_KEYS="90F8A678DF07E1F3A6EB1D845A564B43"
    

    Если производится установка нескольких продуктов, то введите соответствующие ключи лицензий через запятую.

  22. Запустите приложение с помощью команды:

    /etc/init.d/gitlab start
    

Настройка аутентификации через KeyCloak#

  1. Сконфигурируйте KeyCloak. Перейдите на страницу клиента в разделе Clients и заполните соответствующие параметры во вкладке Settings:

    • Enabled: ON

    • Client Protocol: openid-connect

    • Access Type: confidential

    • Standard Flow Enabled: ON

    • Direct Access Grants Enabled: ON

    • Service Accounts Enabled: ON

    • Authorization Enabled: ON

    • Root URL: Укажите корневую ссылку

    • Valid Redirect URIs: Укажите URL-адреса приложений, которые будут использовать этот клиент для аутентификации

    • Base URL: Укажите базовый URL

    • Admin URL: Укажите URL администратора

    • Web Origins: Укажите веб-источник

    Во вкладке Credentials выберите Client Id and Secret в поле Client Authenticator.

  2. Сконфигурируйте GitLab в файле home\git\gitlab\config\gitlab.yml:

    omniauth:
      enabled: true
      allow_single_sign_on: ["openid_connect"]
      block_auto_created_users: false
      auto_link_ldap_user: false
      auto_link_saml_user: false
      saml_message_max_byte_size: 250000
      external_providers: []
      providers:
        - { 
            name: 'openid_connect',
            label: 'Keycloak',
            args: {
              name: 'openid_connect',
              scope: ["openid", "profile", "email"],
              response_type: "code",
              issuer:  "https://<fqdn_haproxy>/auth/realms/<realm>",
              discovery: true,
              client_auth_method: "query",
              uid_field: "preferred_username",
              send_scope_to_token_endpoint: "false",
              client_options: {
                identifier: "<client_from_keycloak>",
                secret: "<secret_key_from_keycloak>",
                redirect_uri: "https://<fqdn_haproxy>/<location_gitlab>/users/auth/openid_connect/callback"
              }
            }
          }
    

Обновление#

  1. Сделайте резервную копию текущей конфигурации (рекомендуется перед дальнейшими шагами):

    sudo -u git -H bundle execrake gitlab:backup:create RAILS_ENV=production
    
  2. Остановите сервер GitLab CE:

    sudo service gitlab stop
    
  3. Сделайте backup содержимого директории /home/git/gitlab. Скачайте и распакуйте архив дистрибутива с новой версией в директорию /home/git/gitlab:

    tar -zxvf gitlab-pv-master-minor-patch.tar.gz
    mv /home/git/gitlab /home/git/gitlab_backup
    mv gitlab-pv-master-minor-patch /home/git/gitlab
    rm -rf /home/git/gitlab/ee
    
  4. Установите необходимые зависимости:

    cd/home/git/gitlab
    
    sudo -u git -H bundle config set --local deployment 'true'
    
    sudo -u git -H bundle config set --local without 'development test mysql aws kerberos'
    
  5. Обновите Ruby gems:

    sudo -u git -H bundle install
    
  6. Выполните миграцию БД:

    sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
    
  7. Скомпилируйте PO-файлы (переводы):

    sudo -u git -H bundle exec rake gettext:compile RAILS_ENV=production
    
  8. Скомпилируйте необходимые JavaScript зависимости:

    sudo -u git -H bundle exec rake yarn:install gitlab:assets:clean gitlab:assets:compile cache:clear RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
    
    sudo -u git -H bundle exec rake yarn:install gitlab:assets:clean gitlab:assets:compile cache:clear RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
    
  9. Обновите компонент GitLab Workhorse согласно требуемой версии:

    cd/home/git/gitlab
    sudo -u git -H bundle exec rake "gitlab:workhorse:install\[/home/git/gitlab-workhorse\]" RAILS_ENV=production
    
  10. Обновите компонент Gitaly:

    cd /home/git/gitlab
    sudo -u git -H bundle exec rake "gitlab:gitaly:install\[/home/git/gitaly/home/git/repositories\]" RAILS_ENV=production
    
  11. Обновите компонент GitLab Shell:

    cd /home/git/gitlab-shell
    
    sudo -u git -H git fetch --all --tags
    
    sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_SHELL_VERSION) -b v$(</home/git/gitlab/GITLAB_SHELL_VERSION)
    
    sudo -u git -H make build
    
  12. Обновите компонент GitLab Pages:

    cd /home/git/gitlab-pages
    
    sudo -u git -H git fetch --all --tags
    
    sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_PAGES_VERSION)
    
    sudo -u git -H make
    
  13. Запустите сервер GitLab CE:

    sudo service gitlab start
    
    sudo service nginx restart
    

Удаление#

  1. Удалите папку /home/git/gitlab.

  2. Удалите следующие пакеты:

    apt-get remove -y ruby GraphicsMagick postfix perl-Image-ExifTool golang apf node npm postgresql13-server libruby-devel gcc-c++ libgpgme-devel libicu-devel libre2 libre2-devel libpq5-devel cmake libcurl-devel libpcre2-devel yarn nginx redis
    
  3. Удалите БД:

    rm -rf  /var/lib/pgsql/backups/
    rm -rf  /var/lib/pgsql/data/
    

Проверка работоспособности#

  1. Выполните проверку работоспособности сервера и его компонентов (включая Git, Redis, PostgreSQL):

    cd /home/git/gitlab
    
    sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
    
    sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
    

    В случае неработоспособности сервера или его компонентов, соответствующие данные отобразятся в выводе команды gitlab:check.

  2. Выполните проверку работоспособности Keycloak:

    1. Администратор с созданной учетной записью в Keycloak авторизуется в TaskTracker с помощью Openid Connect.

    2. Система перенаправляет пользователя на главную страницу проектов пользователя.

Откат#

Откат на предыдущую версию продукта не предусмотрен.

Откат является обновлением на необходимую версию продукта.

Часто встречающиеся проблемы и пути их устранения#

В текущей версии продукта типовые проблемы не выявлены.

Чек-лист валидации установки#

  1. Для проверки доступности сервисов можно перейти по ссылке: {Service_URL}/-/health. В случае успешного старта сервиса, отобразится следующее сообщение: GitLab OK.

  2. Для проверки работоспособности Keycloak выполните действия, описанные в разделе Проверка работоспособности.