🚀 Установка GitLab в Docker через Ansible
Этот проект содержит Ansible Playbook для автоматизированной установки GitLab в контейнере Docker на целевом сервере. Также в проекте настроена установка Docker, конфигурация SSH, настройка брандмауэра UFW и SMTP.
🔗 Репозиторий: GitHub
📌 Обзор установки
Playbook выполняет три основных шага:
1️⃣ Настройка сервера: Устанавливает часовой пояс и другие основные параметры.
2️⃣ Установка Docker: Устанавливает Docker и Docker Compose.
3️⃣ Развертывание GitLab: Устанавливает GitLab в контейнере Docker и настраивает SSH, HTTP, HTTPS и SMTP.
📂 Структура Playbook
- playbooks/server-install.yml – Настройка базовой конфигурации сервера, включая часовой пояс.
- playbooks/docker-install.yml – Установка Docker и Docker Compose.
- playbooks/gitlab-docker-install.yml – Развертывание GitLab в контейнере Docker и настройка соединений.
- playbooks/ufw_firewall/firewall-gitlab.yml – Настройка брандмауэра UFW для разрешения нужных портов.
🛠 Требования
Перед запуском Playbook убедитесь, что:
✔️ Ansible 2.9+ установлен на управляющем узле.
✔️ SSH-доступ к целевому серверу.
✔️ Linux-сервер с доступом в интернет (Ubuntu, CentOS и др.).
✔️ Docker и Docker Compose будут установлены автоматически.
🔧 Переменные
Вы можете настроить Playbook, изменяя следующие переменные:
vars:
timezone: 'Europe/Warsaw'
fqdn: 'example.com'
gitlab_ssh_host_name: 'ssh.example.com'
gitlab_root_password: 'yourpassword'
ssh_port_gitlab: '22'
http_port: '80'
https_port: '443'
ssh_port: '2222'
gitlab_docker_version: '17.8.2-ce.0'
git_pos_user: 'username'
git_pos_pass: 'yourpassword'
git_pos_db: 'gitlab'
smtp: 'smtp.example.com'
smtp_port: '587'
smtp_domain: 'example.com'
registration_token: 'your_registration_token'
📌 Что означают переменные?
timezone
– часовой пояс сервера (по умолчанию: Europe/Warsaw).fqdn
– Полное доменное имя (Fully Qualified Domain Name) для GitLab.gitlab_ssh_host_name
– Хост для SSH-доступа к GitLab.gitlab_root_password
– Пароль администратора GitLab.ssh_port_gitlab
– Порт SSH GitLab (по умолчанию 22).http_port
– Порт HTTP для веб-доступа к GitLab (по умолчанию 80).https_port
– Порт HTTPS для веб-доступа (по умолчанию 443).gitlab_docker_version
– Версия образа GitLab Docker (по умолчанию 17.8.2-ce.0).smtp
– SMTP сервер для отправки email-уведомлений.registration_token
– Токен регистрации GitLab Runner.
📦 Установка необходимых ролей Ansible Galaxy
Перед выполнением Playbook установите роли:
ansible-galaxy install -r roles/requirements.yml
Если роли уже установлены, можно выполнить обновление:
ansible-galaxy install -g -f -r roles/requirements.yml
🚀 Развертывание GitLab в Docker через Ansible
🔹 1. Клонирование репозитория
git clone https://github.com/Shipssv83/Ansible-GitLab-Docker-Install.git
cd Ansible-GitLab-Docker-Install
🔹 2. Запуск установки сервера
ansible-playbook -i inventory --user root --extra-vars "host=host_name" playbooks/server-install.yml
📌 Что делает этот Playbook?
✅ Устанавливает базовые пакеты и задает настройки сервера.
✅ Настраивает часовой пояс.
🔹 3. Установка Docker
ansible-playbook -i inventory --user root --extra-vars "host=host_name" playbooks/docker-install.yml
📌 Что делает этот Playbook?
✅ Устанавливает Docker и Docker Compose.
✅ Готовит систему для запуска контейнеров.
🔹 4. Развертывание GitLab в Docker
ansible-playbook -i inventory --user root --extra-vars "host=host_name" playbooks/gitlab-docker-install.yml
📌 Что делает этот Playbook?
✅ Загружает Docker-образ GitLab.
✅ Разворачивает GitLab в контейнере с нужными настройками.
✅ Настраивает доступ через SSH, HTTP и HTTPS.
✅ Подключает SMTP для уведомлений.
🎯 Заключение
Теперь ваш сервер полностью настроен и готов к работе с GitLab в Docker. Вы можете начинать создавать репозитории, добавлять пользователей и настраивать CI/CD-процессы.