Настройка системы контроля версий GitLab: различия между версиями
Admin (обсуждение | вклад) Новая страница: «= Настройка системы контроля версий (GitLab) = == 1. Подготовка системы == * Войдите в систему п…» |
Admin (обсуждение | вклад) Нет описания правки |
||
| Строка 6: | Строка 6: | ||
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | * Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | ||
== 2. Установка зависимостей | == 2. Установка зависимостей == | ||
=== Обновление системы === | === Обновление системы === | ||
1. Обновите систему: | 1. Обновите систему: | ||
< | <pre>sudo apt update</pre> | ||
2. Установите необходимые пакеты: | 2. Установите необходимые пакеты: | ||
< | <pre>sudo apt install -y curl wget ca-certificates gnupg lsb-release</pre> | ||
=== Установка Docker === | === Установка Docker === | ||
1. Установите Docker: | 1. Установите Docker: | ||
< | <pre>curl -fsSL https://get.docker.com -o get-docker.sh</pre> | ||
< | <pre>sudo sh get-docker.sh</pre> | ||
2. Добавьте пользователя в группу docker: | 2. Добавьте пользователя в группу docker: | ||
< | <pre>sudo usermod -aG docker $USER</pre> | ||
3. Запустите и включите Docker: | 3. Запустите и включите Docker: | ||
< | <pre>sudo systemctl start docker</pre> | ||
< | <pre>sudo systemctl enable docker</pre> | ||
4. Проверьте установку: | 4. Проверьте установку: | ||
< | <pre>docker --version</pre> | ||
=== Установка Docker Compose === | === Установка Docker Compose === | ||
1. Скачайте Docker Compose: | 1. Скачайте Docker Compose: | ||
< | <pre>sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose</pre> | ||
2. Установите права: | 2. Установите права: | ||
< | <pre>sudo chmod +x /usr/local/bin/docker-compose</pre> | ||
3. Проверьте установку: | 3. Проверьте установку: | ||
< | <pre>docker-compose --version</pre> | ||
== 3. Установка GitLab | == 3. Установка GitLab == | ||
=== Создание директорий === | === Создание директорий === | ||
1. Создайте директорию для GitLab: | 1. Создайте директорию для GitLab: | ||
< | <pre>sudo mkdir -p /srv/gitlab</pre> | ||
2. Создайте поддиректории: | 2. Создайте поддиректории: | ||
< | <pre>sudo mkdir -p /srv/gitlab/config</pre> | ||
< | <pre>sudo mkdir -p /srv/gitlab/logs</pre> | ||
< | <pre>sudo mkdir -p /srv/gitlab/data</pre> | ||
3. Установите права доступа: | 3. Установите права доступа: | ||
< | <pre>sudo chown -R 1000:1000 /srv/gitlab</pre> | ||
=== Создание Docker Compose файла === | === Создание Docker Compose файла === | ||
1. Создайте docker-compose.yml: | 1. Создайте docker-compose.yml: | ||
< | <pre>sudo nano /srv/gitlab/docker-compose.yml</pre> | ||
2. Добавьте конфигурацию: | 2. Добавьте конфигурацию: | ||
< | <pre>version: '3.8' | ||
services: | services: | ||
| Строка 91: | Строка 91: | ||
- '/srv/gitlab/data:/var/opt/gitlab' | - '/srv/gitlab/data:/var/opt/gitlab' | ||
shm_size: '256m' | shm_size: '256m' | ||
</ | </pre> | ||
=== Запуск GitLab === | === Запуск GitLab === | ||
1. Перейдите в директорию GitLab: | 1. Перейдите в директорию GitLab: | ||
< | <pre>cd /srv/gitlab</pre> | ||
2. Запустите GitLab: | 2. Запустите GitLab: | ||
< | <pre>sudo docker-compose up -d</pre> | ||
3. Проверьте статус: | 3. Проверьте статус: | ||
< | <pre>sudo docker-compose ps</pre> | ||
4. Просмотр логов: | 4. Просмотр логов: | ||
< | <pre>sudo docker-compose logs -f gitlab</pre> | ||
== 4. Первоначальная настройка | == 4. Первоначальная настройка == | ||
=== Ожидание запуска === | === Ожидание запуска === | ||
| Строка 113: | Строка 113: | ||
1. GitLab может занять несколько минут для полного запуска | 1. GitLab может занять несколько минут для полного запуска | ||
2. Проверьте статус: | 2. Проверьте статус: | ||
< | <pre>sudo docker-compose logs gitlab | grep "Puma starting"</pre> | ||
3. Дождитесь сообщения о готовности | 3. Дождитесь сообщения о готовности | ||
| Строка 120: | Строка 120: | ||
1. Получите пароль root: | 1. Получите пароль root: | ||
< | <pre>sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password</pre> | ||
2. Сохраните пароль в безопасном месте | 2. Сохраните пароль в безопасном месте | ||
| Строка 127: | Строка 127: | ||
1. Откройте браузер и перейдите по адресу: | 1. Откройте браузер и перейдите по адресу: | ||
< | <pre>http://your-server-ip</pre> | ||
2. Войдите с учетными данными: | 2. Войдите с учетными данными: | ||
| Строка 135: | Строка 135: | ||
3. Смените пароль root в настройках | 3. Смените пароль root в настройках | ||
== 5. Настройка SSL | == 5. Настройка SSL == | ||
=== Установка Certbot === | === Установка Certbot === | ||
1. Установите Certbot: | 1. Установите Certbot: | ||
< | <pre>sudo apt install -y certbot</pre> | ||
2. Получите SSL сертификат: | 2. Получите SSL сертификат: | ||
< | <pre>sudo certbot certonly --standalone -d gitlab.example.com</pre> | ||
=== Настройка SSL в GitLab === | === Настройка SSL в GitLab === | ||
1. Отредактируйте конфигурацию GitLab: | 1. Отредактируйте конфигурацию GitLab: | ||
< | <pre>sudo nano /srv/gitlab/config/gitlab.rb</pre> | ||
2. Добавьте SSL настройки: | 2. Добавьте SSL настройки: | ||
< | <pre>external_url 'https://gitlab.example.com' | ||
nginx['redirect_http_to_https'] = true | nginx['redirect_http_to_https'] = true | ||
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem" | nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem" | ||
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem" | nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem" | ||
</ | </pre> | ||
3. Перезапустите GitLab: | 3. Перезапустите GitLab: | ||
< | <pre>sudo docker-compose restart</pre> | ||
== 6. Настройка резервного копирования | == 6. Настройка резервного копирования == | ||
=== Создание скрипта резервного копирования === | === Создание скрипта резервного копирования === | ||
1. Создайте скрипт резервного копирования: | 1. Создайте скрипт резервного копирования: | ||
< | <pre>sudo nano /usr/local/bin/gitlab-backup.sh</pre> | ||
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
< | <pre>\#!/bin/bash | ||
BACKUP_DIR="/backup/gitlab" | BACKUP_DIR="/backup/gitlab" | ||
DATE=$(date +%Y%m%d_%H%M%S) | DATE=$(date +%Y%m%d_%H%M%S) | ||
# Создание директории для бэкапа | \# Создание директории для бэкапа | ||
mkdir -p $BACKUP_DIR | mkdir -p $BACKUP_DIR | ||
# Создание резервной копии GitLab | \# Создание резервной копии GitLab | ||
sudo docker exec gitlab gitlab-backup create | sudo docker exec gitlab gitlab-backup create | ||
# Копирование резервной копии | \# Копирование резервной копии | ||
sudo cp /srv/gitlab/data/backups/* $BACKUP_DIR/ | sudo cp /srv/gitlab/data/backups/* $BACKUP_DIR/ | ||
# Сжатие архива | \# Сжатие архива | ||
tar -czf $BACKUP_DIR/gitlab-backup-$DATE.tar.gz -C $BACKUP_DIR . | tar -czf $BACKUP_DIR/gitlab-backup-$DATE.tar.gz -C $BACKUP_DIR . | ||
# Удаление несжатых файлов | \# Удаление несжатых файлов | ||
rm -f $BACKUP_DIR/*.tar | rm -f $BACKUP_DIR/*.tar | ||
# Удаление старых бэкапов (старше 7 дней) | \# Удаление старых бэкапов (старше 7 дней) | ||
find $BACKUP_DIR -name "gitlab-backup-*.tar.gz" -mtime +7 -delete | find $BACKUP_DIR -name "gitlab-backup-*.tar.gz" -mtime +7 -delete | ||
echo "GitLab backup completed: $DATE" | echo "GitLab backup completed: $DATE" | ||
</ | </pre> | ||
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
< | <pre>sudo chmod +x /usr/local/bin/gitlab-backup.sh</pre> | ||
=== Настройка автоматического резервного копирования === | === Настройка автоматического резервного копирования === | ||
1. Добавьте задачу в crontab: | 1. Добавьте задачу в crontab: | ||
< | <pre>sudo crontab -e</pre> | ||
2. Добавьте строку: | 2. Добавьте строку: | ||
< | <pre>0 2 * * * /usr/local/bin/gitlab-backup.sh</pre> | ||
== 7. Настройка пользователей и групп | == 7. Настройка пользователей и групп == | ||
=== Создание пользователей === | === Создание пользователей === | ||
| Строка 231: | Строка 231: | ||
* Настройте роли участников | * Настройте роли участников | ||
== 8. Настройка проектов | == 8. Настройка проектов == | ||
=== Создание проекта === | === Создание проекта === | ||
| Строка 248: | Строка 248: | ||
1. Создайте .gitlab-ci.yml файл: | 1. Создайте .gitlab-ci.yml файл: | ||
< | <pre>nano .gitlab-ci.yml</pre> | ||
2. Добавьте базовую конфигурацию: | 2. Добавьте базовую конфигурацию: | ||
< | <pre>stages: | ||
- build | - build | ||
- test | - test | ||
| Строка 275: | Строка 275: | ||
only: | only: | ||
- master | - master | ||
</ | </pre> | ||
== 9. Настройка интеграций | == 9. Настройка интеграций == | ||
=== Настройка уведомлений === | === Настройка уведомлений === | ||
| Строка 294: | Строка 294: | ||
1. В Admin Area → Settings → General: | 1. В Admin Area → Settings → General: | ||
< | <pre>ldap: | ||
enabled: true | enabled: true | ||
servers: | servers: | ||
| Строка 310: | Строка 310: | ||
base: 'OU=Users,DC=example,DC=com' | base: 'OU=Users,DC=example,DC=com' | ||
user_filter: '' | user_filter: '' | ||
</ | </pre> | ||
== 10. Мониторинг и обслуживание | == 10. Мониторинг и обслуживание == | ||
=== Мониторинг производительности === | === Мониторинг производительности === | ||
| Строка 329: | Строка 329: | ||
1. Остановите GitLab: | 1. Остановите GitLab: | ||
< | <pre>sudo docker-compose down</pre> | ||
2. Обновите образ: | 2. Обновите образ: | ||
< | <pre>sudo docker-compose pull</pre> | ||
3. Запустите GitLab: | 3. Запустите GitLab: | ||
< | <pre>sudo docker-compose up -d</pre> | ||
4. Проверьте статус: | 4. Проверьте статус: | ||
< | <pre>sudo docker-compose ps</pre> | ||
== 11. Настройка файрвола | == 11. Настройка файрвола == | ||
=== Настройка UFW === | === Настройка UFW === | ||
1. Разрешите необходимые порты: | 1. Разрешите необходимые порты: | ||
< | <pre>sudo ufw allow 80/tcp</pre> | ||
< | <pre>sudo ufw allow 443/tcp</pre> | ||
< | <pre>sudo ufw allow 2224/tcp</pre> | ||
2. Проверьте статус: | 2. Проверьте статус: | ||
< | <pre>sudo ufw status</pre> | ||
=== Настройка iptables === | === Настройка iptables === | ||
1. Разрешите порты через iptables: | 1. Разрешите порты через iptables: | ||
< | <pre>sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT</pre> | ||
< | <pre>sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT</pre> | ||
< | <pre>sudo iptables -A INPUT -p tcp --dport 2224 -j ACCEPT</pre> | ||
2. Сохраните правила: | 2. Сохраните правила: | ||
< | <pre>sudo iptables-save > /etc/iptables/rules.v4</pre> | ||
== 12. Устранение неполадок | == 12. Устранение неполадок == | ||
=== Частые проблемы === | === Частые проблемы === | ||
1. '''GitLab не запускается''': | 1. '''GitLab не запускается''': | ||
* Проверьте логи: < | * Проверьте логи: <pre>sudo docker-compose logs gitlab</pre> | ||
* Проверьте доступное место на диске | * Проверьте доступное место на диске | ||
* Проверьте права доступа к директориям | * Проверьте права доступа к директориям | ||
| Строка 384: | Строка 384: | ||
1. '''Проверка статуса контейнера''': | 1. '''Проверка статуса контейнера''': | ||
< | <pre>sudo docker-compose ps</pre> | ||
2. '''Проверка логов''': | 2. '''Проверка логов''': | ||
< | <pre>sudo docker-compose logs gitlab</pre> | ||
3. '''Проверка использования ресурсов''': | 3. '''Проверка использования ресурсов''': | ||
< | <pre>sudo docker stats gitlab</pre> | ||
4. '''Проверка подключения''': | 4. '''Проверка подключения''': | ||
< | <pre>curl -I http://your-server-ip</pre> | ||
== Заключение == | == Заключение == | ||
Текущая версия от 10:39, 15 октября 2025
Настройка системы контроля версий (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):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных GitLab серверов
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних команд
Наши специалисты помогут с настройкой GitLab и оптимизацией производительности ваших систем контроля версий!