GitLab — веб-инструмент жизненного цикла DevOps с открытым исходным кодом, представляющий систему управления репозиториями кода для Git с собственной вики, системой отслеживания ошибок, CI/CD пайплайном и другими функциями.
Основное:
Официальный сайт — https://about.gitlab.com/
Docker — https://hub.docker.com/r/gitlab/gitlab-ce
Исходный код — https://gitlab.com/gitlab-org/gitlab
Минимальные системные требование:
Ядер | 4 |
Оперативной памяти | 4ГБ |
Использование:
Стандартный логин | root |
Стандартный пароль | Устанавливается при первом запуске |
Стандартный порт | 80 |
Конфигурация | /etc/gitlab/gitlab.rb |
Конфигурация Docker | /Docker/Gitlab/config/gitlab.rb |
Установка Docker
Ubuntu
`#Install docker` sudo apt install docker.io -y `#Start docker` sudo systemctl start docker `#Autostart docker` sudo systemctl enable docker
CentOS
`#Install docker` yum install docker -y `#Start docker` systemctl start docker `#Autostart docker` systemctl enable docker
Fedora
`#Install docker` sudo dnf install docker -y `#Start docker` sudo systemctl start docker `#Autostart docker` sudo systemctl enable docker
Скачать GitLab
2) sudo docker pull gitlab/gitlab-ce:13.7.0-rc3.ce.0 `#Download/update image`
Установка GitLab на Ubuntu/CentOS/Fedora
Используя сеть docker
3.1) sudo docker network create `#Docker network for made static ip of container` \ --driver=bridge \ --subnet 10.1.0.0/16 \ --ip-range 10.1.1.0/24 \ --gateway=10.1.0.1 \ Docker_Network
или в одной строке
3.1) sudo docker network create --driver=bridge --subnet 10.1.0.0/16 --ip-range 10.1.1.0/24 --gateway=10.1.0.1 Docker_Network
3.2) docker run -d --name=GitLab --net Docker_Network --ip=10.1.1.6 -e TZ=Europe/Moscow --restart=always \ --memory="4g" --cpus="2" \ -p 50:22 -p 751:443 -p 750:80 \ --volume /Docker/Gitlab/config:/etc/gitlab --volume /Docker/Gitlab/logs:/var/log/gitlab --volume /Docker/Gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:13.7.0-rc3.ce.0
или в одной строке
docker run -d --name=GitLab --hostname git.mydomain.com --net Docker_Network --ip=10.1.1.6 -e TZ=Europe/Moscow --restart=always --memory="4g" --cpus="2" -p 50:22 -p 751:443 -p 750:80 --volume /Docker/Gitlab/config:/etc/gitlab --volume /Docker/Gitlab/logs:/var/log/gitlab --volume /Docker/Gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:13.7.0-rc3.ce.03.2)
Настройки:
SMTP
Документация — https://docs.gitlab.com/omnibus/settings/smtp.html
Примеры:
Яндекс
gitlab_rails['smtp_enable'] = true<br> gitlab_rails['smtp_address'] = "smtp.yandex.ru"<br> gitlab_rails['smtp_port'] = 465<br> gitlab_rails['smtp_user_name'] = "mymail"<br> gitlab_rails['smtp_password'] = "password"<br> gitlab_rails['smtp_domain'] = "yandex.ru"<br> gitlab_rails['gitlab_email_from'] = '[email protected]'<br> gitlab_rails['smtp_authentication'] = "login"<br> gitlab_rails['smtp_tls'] = true<br> gitlab_rails['smtp_enable_starttls_auto'] = true<br> gitlab_rails['smtp_openssl_verify_mode'] = 'peer'<br>
Hestia-CP
gitlab_rails['smtp_enable'] = true<br> gitlab_rails['smtp_address'] = "mail.site.com"<br> gitlab_rails['smtp_port'] = 465<br> gitlab_rails['smtp_user_name'] = "mymail"<br> gitlab_rails['smtp_password'] = "password"<br> gitlab_rails['smtp_domain'] = "mail.site.com"<br> gitlab_rails['gitlab_email_from'] = '[email protected]'<br> gitlab_rails['smtp_authentication'] = "login"<br> gitlab_rails['smtp_tls'] = true<br> gitlab_rails['smtp_enable_starttls_auto'] = true<br> gitlab_rails['smtp_openssl_verify_mode'] = 'peer'<br>
Сайты
Документация — https://docs.gitlab.com/ee/administration/pages/
pages_external_url «https://pages.git.site.com/»
gitlab_pages[‘enable’] = true
GitLab Runner
Конфигурация | /etc/gitlab-runner/config.toml |
Конфигурация Docker | /Docker/gitlab-runner/config/config.toml |
Документация — https://docs.gitlab.com/runner/install/
- Узнать токен https://gitlab.site.com/admin/runners
Docker
Alpine
docker run -d --name Gitlab-Runner_Alpine --restart always \ --network host \ -v /Docker/Gitlab/Runner/Alpine/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /Docker/Gitlab/Runner/ssl/rootCA.crt:/etc/gitlab-runner/certs/ca.crt \ gitlab/gitlab-runner:v13.7.0
Docker
docker run -d --privileged --name Gitlab-Runner_Docker --restart always \ --network host \ -v /Docker/Gitlab/Runner/Docker/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /Docker/Gitlab/Runner/ssl/rootCA.crt:/etc/gitlab-runner/certs/ca.crt \ gitlab/gitlab-runner:v13.7.0
Ubuntu
docker run -d --name Gitlab-Runner_Ubuntu --restart always \ --network host \ -v /Docker/Gitlab/Runner/Ubuntu/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /Docker/Gitlab/Runner/ssl/rootCA.crt:/etc/gitlab-runner/certs/ca.crt \ gitlab/gitlab-runner:v13.7.0
Shell
docker run -d --name Gitlab-Runner_Shell --restart always \ --network host \ -v /Docker/Gitlab/Runner/Shell/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /Docker/Gitlab/Runner/ssl/rootCA.crt:/etc/gitlab-runner/certs/ca.crt \ gitlab/gitlab-runner:v13.7.0
Manual
Репозиторий — https://gitlab-runner-downloads.s3.amazonaws.com/latest/index.html
curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/v13.7.0/deb/gitlab-runner_amd64.deb && dpkg -i gitlab-runner_amd64.deb curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb && dpkg -i gitlab-runner_amd64.deb
Подключение
Документация — https://docs.gitlab.com/runner/register/
gitlab-runner register
Alpine
docker exec -it Gitlab-Runner_Alpine gitlab-runner register \ --non-interactive \ --url "https://git.site.com/" \ --registration-token "TOKEN" \ --executor "docker" \ --docker-image alpine:latest \ --docker-network-mode host \ --description "Gitlab-Runner_Alpine" \ --tag-list "docker,alpine" \ --run-untagged="true" \ --locked="false" \ --access-level="not_protected"
Docker
docker exec -it Gitlab-Runner_Docker gitlab-runner register \ --non-interactive \ --url "https://git.site.com/" \ --registration-token "TOKEN" \ --executor "docker" \ --docker-privileged \ --docker-image docker:latest \ --docker-network-mode host \ --description "Gitlab-Runner_Docker" \ --tag-list "docker" \ --run-untagged="true" \ --locked="false" \ --access-level="not_protected"
Ubuntu
docker exec -it Gitlab-Runner_Ubuntu gitlab-runner register \ --non-interactive \ --url "https://git.site.com/" \ --registration-token "TOKEN" \ --executor "docker" \ --docker-image ubuntu:bionic \ --docker-network-mode host \ --description "Gitlab-Runner_Ubuntu" \ --tag-list "docker,ubuntu" \ --run-untagged="true" \ --locked="false" \ --access-level="not_protected"
Shell
docker exec -it Gitlab-Runner_Shell gitlab-runner register \ --non-interactive \ --url "https://git.site.com/" \ --registration-token "TOKEN" \ --executor "docker" \ --docker-image mcr.microsoft.com/powershell \ --docker-network-mode host \ --description "Gitlab-Runner_Shell" \ --tag-list "docker, shell" \ --run-untagged="true" \ --locked="false" \ --access-level="not_protected"
SHH
gitlab-runner register \ --non-interactive \ --url "https://git.site.com/" \ --registration-token "TOKEN" \ --executor "ssh" \ --ssh-host "192.168.1.36" \ --ssh-port "22" \ --ssh-user "root" \ --ssh-password "password" \ --description "Gitlab-Runner_Linux_Ubuntu" \ --tag-list "docker,linux_ubuntu" \ --run-untagged="true" \ --locked="false" \ --access-level="not_protected"
SHH (identity file)
gitlab-runner register \ --non-interactive \ --url "https://git.site.com/" \ --registration-token "TOKEN" \ --executor "ssh" \ --ssh-host "192.168.1.36" \ --ssh-port "22" \ --ssh-user "root" \ --ssh-identity_file "/etc/gitlab-runner/file" --description "Gitlab-Runner_Linux_Ubuntu" \ --tag-list "docker,linux_ubuntu" \ --run-untagged="true" \ --locked="false" \ --access-level="not_protected"
GitLab CI/CD
Документация — https://docs.gitlab.com/ee/ci/examples/README.html
GitLab Чистка
Переустановка
docker container rm --force GitLab && docker run -d --name=GitLab --hostname git.mydomain.com --net Docker_Network --ip=10.1.1.6 -e TZ=Europe/Moscow --restart=always --memory="4g" --cpus="2" -p 50:22 -p 751:443 -p 750:80 --volume /Docker/Gitlab/config:/etc/gitlab --volume /Docker/Gitlab/logs:/var/log/gitlab --volume /Docker/Gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:13.7.0-rc3.ce.0
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.