Настройка системы контроля версий GitLab

Материал из ARK-HOSTER.RU | Документация хостинга
Версия от 10:39, 15 октября 2025; Admin (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Настройка системы контроля версий (GitLab)

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка зависимостей

Обновление системы

1. Обновите систему:

sudo apt update

2. Установите необходимые пакеты:

sudo apt install -y curl wget ca-certificates gnupg lsb-release

Установка Docker

1. Установите Docker:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

2. Добавьте пользователя в группу docker:

sudo usermod -aG docker $USER

3. Запустите и включите Docker:

sudo systemctl start docker
sudo systemctl enable docker

4. Проверьте установку:

docker --version

Установка Docker Compose

1. Скачайте Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. Установите права:

sudo chmod +x /usr/local/bin/docker-compose

3. Проверьте установку:

docker-compose --version

3. Установка GitLab

Создание директорий

1. Создайте директорию для GitLab:

sudo mkdir -p /srv/gitlab

2. Создайте поддиректории:

sudo mkdir -p /srv/gitlab/config
sudo mkdir -p /srv/gitlab/logs
sudo mkdir -p /srv/gitlab/data

3. Установите права доступа:

sudo chown -R 1000:1000 /srv/gitlab

Создание Docker Compose файла

1. Создайте docker-compose.yml:

sudo nano /srv/gitlab/docker-compose.yml

2. Добавьте конфигурацию:

version: '3.8'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['proxy_set_headers'] = {
          "X-Forwarded-Proto" => "https",
          "X-Forwarded-Ssl" => "on"
        }
    ports:
      - '80:80'
      - '443:443'
      - '2224:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'
    shm_size: '256m'

Запуск GitLab

1. Перейдите в директорию GitLab:

cd /srv/gitlab

2. Запустите GitLab:

sudo docker-compose up -d

3. Проверьте статус:

sudo docker-compose ps

4. Просмотр логов:

sudo docker-compose logs -f gitlab

4. Первоначальная настройка

Ожидание запуска

1. GitLab может занять несколько минут для полного запуска 2. Проверьте статус:

sudo docker-compose logs gitlab | grep "Puma starting"

3. Дождитесь сообщения о готовности

Получение пароля root

1. Получите пароль root:

sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

2. Сохраните пароль в безопасном месте

Первый вход

1. Откройте браузер и перейдите по адресу:

http://your-server-ip

2. Войдите с учетными данными:

  • Username: root
  • Password: [пароль из предыдущего шага]

3. Смените пароль root в настройках

5. Настройка SSL

Установка Certbot

1. Установите Certbot:

sudo apt install -y certbot

2. Получите SSL сертификат:

sudo certbot certonly --standalone -d gitlab.example.com

Настройка SSL в GitLab

1. Отредактируйте конфигурацию GitLab:

sudo nano /srv/gitlab/config/gitlab.rb

2. Добавьте SSL настройки:

external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"

3. Перезапустите GitLab:

sudo docker-compose restart

6. Настройка резервного копирования

Создание скрипта резервного копирования

1. Создайте скрипт резервного копирования:

sudo nano /usr/local/bin/gitlab-backup.sh

2. Добавьте содержимое:

\#!/bin/bash

BACKUP_DIR="/backup/gitlab"
DATE=$(date +%Y%m%d_%H%M%S)

\# Создание директории для бэкапа
mkdir -p $BACKUP_DIR

\# Создание резервной копии GitLab
sudo docker exec gitlab gitlab-backup create

\# Копирование резервной копии
sudo cp /srv/gitlab/data/backups/* $BACKUP_DIR/

\# Сжатие архива
tar -czf $BACKUP_DIR/gitlab-backup-$DATE.tar.gz -C $BACKUP_DIR .

\# Удаление несжатых файлов
rm -f $BACKUP_DIR/*.tar

\# Удаление старых бэкапов (старше 7 дней)
find $BACKUP_DIR -name "gitlab-backup-*.tar.gz" -mtime +7 -delete

echo "GitLab backup completed: $DATE"

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/gitlab-backup.sh

Настройка автоматического резервного копирования

1. Добавьте задачу в crontab:

sudo crontab -e

2. Добавьте строку:

0 2 * * * /usr/local/bin/gitlab-backup.sh

7. Настройка пользователей и групп

Создание пользователей

1. В веб-интерфейсе GitLab:

  • Перейдите в Admin Area → Users
  • Нажмите "New User"
  • Заполните данные пользователя

2. Настройте права доступа:

  • Выберите уровень доступа
  • Настройте уведомления
  • Активируйте пользователя

Создание групп

1. Создайте группу:

  • Перейдите в Groups → New Group
  • Заполните название и описание
  • Настройте видимость группы

2. Добавьте участников:

  • Перейдите в Members
  • Добавьте пользователей
  • Настройте роли участников

8. Настройка проектов

Создание проекта

1. Создайте новый проект:

  • Нажмите "New Project"
  • Выберите тип проекта
  • Заполните данные проекта

2. Настройте репозиторий:

  • Выберите видимость репозитория
  • Настройте инициализацию
  • Добавьте README файл

Настройка CI/CD

1. Создайте .gitlab-ci.yml файл:

nano .gitlab-ci.yml

2. Добавьте базовую конфигурацию:

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - echo "Building application"
    - make build

test:
  stage: test
  script:
    - echo "Running tests"
    - make test

deploy:
  stage: deploy
  script:
    - echo "Deploying application"
    - make deploy
  only:
    - master

9. Настройка интеграций

Настройка уведомлений

1. Настройте email уведомления:

  • Перейдите в Admin Area → Settings → General
  • Настройте SMTP сервер
  • Протестируйте отправку

2. Настройте webhook:

  • Перейдите в Project Settings → Integrations
  • Добавьте URL webhook
  • Настройте события

Настройка LDAP

1. В Admin Area → Settings → General:

ldap:
  enabled: true
  servers:
    main:
      label: 'LDAP'
      host: 'ldap.example.com'
      port: 389
      uid: 'sAMAccountName'
      bind_dn: 'CN=GitLab,OU=Service Accounts,DC=example,DC=com'
      password: 'password'
      encryption: 'plain'
      active_directory: true
      allow_username_or_email_login: true
      block_auto_created_users: false
      base: 'OU=Users,DC=example,DC=com'
      user_filter: ''

10. Мониторинг и обслуживание

Мониторинг производительности

1. Просмотр статистики:

  • Перейдите в Admin Area → Monitoring
  • Просмотрите метрики системы
  • Настройте алерты

2. Настройка логирования:

  • Перейдите в Admin Area → Settings → General
  • Настройте уровень логирования
  • Настройте ротацию логов

Обновление GitLab

1. Остановите GitLab:

sudo docker-compose down

2. Обновите образ:

sudo docker-compose pull

3. Запустите GitLab:

sudo docker-compose up -d

4. Проверьте статус:

sudo docker-compose ps

11. Настройка файрвола

Настройка UFW

1. Разрешите необходимые порты:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 2224/tcp

2. Проверьте статус:

sudo ufw status

Настройка iptables

1. Разрешите порты через iptables:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2224 -j ACCEPT

2. Сохраните правила:

sudo iptables-save > /etc/iptables/rules.v4

12. Устранение неполадок

Частые проблемы

1. GitLab не запускается:

  • Проверьте логи:
    sudo docker-compose logs gitlab
  • Проверьте доступное место на диске
  • Проверьте права доступа к директориям

2. Проблемы с подключением:

  • Проверьте файрвол
  • Проверьте DNS настройки
  • Проверьте SSL сертификаты

3. Проблемы с производительностью:

  • Увеличьте ресурсы контейнера
  • Оптимизируйте настройки GitLab
  • Проверьте использование диска

Диагностика

1. Проверка статуса контейнера:

sudo docker-compose ps

2. Проверка логов:

sudo docker-compose logs gitlab

3. Проверка использования ресурсов:

sudo docker stats gitlab

4. Проверка подключения:

curl -I http://your-server-ip

Заключение

GitLab успешно установлен и настроен! Теперь у вас есть полнофункциональная система контроля версий с возможностями CI/CD, управления проектами и командной работы.

Для размещения ваших GitLab серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой GitLab и оптимизацией производительности ваших систем контроля версий!