Инструменты пользователя

Инструменты сайта


develop:gitlab

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
develop:gitlab [2022/08/31 04:47]
admin создано
develop:gitlab [2023/08/01 04:40] (текущий)
admin
Строка 1: Строка 1:
 ====== GitLab ====== ====== GitLab ======
 +
 +
 +
 +===== Общее =====
 +<details>
 +<summary> :!: Установка </summary>
 +
 +Советуют установку доп компонентов 
 +<code bash>
 +yum install curl policycoreutils-python postfix
 +apt install curl openssh-server ca-certificates
 +</code>
 +
 +
 +<code bash>
 + # Установка репозитория через скрипт
 + # Отличаются **gitlab-ce** и **gitlab-еe**- бесплатная и коммерческая с-но
 +curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
 +
 + # Далее ставим из пакета
 +apt install gitlab-ce
 +
 + # Такой вариант тоже должен работать, чтобы не пересобирать после задания адреса
 +# EXTERNAL_URL="http://gitlab.mysite.ru" yum install gitlab-ee
 +</code>
 +
 +Для указания адреса по которому будет доступен сервис
 +<code bash>
 +external_url 'http://gitlab.mysite.ru' => /etc/gitlab/gitlab.rb
 +</code>
 +</details>
 +
 +
 +Утилита управления **gitlab-ctl**, (status/start/restart/stop/kill/service-list...)\\
 +GitLab ставится с целым набором нужного себе софта, в т.ч. **postgres**, **prometheus**, **nginx** и т.д.\\
 +
 +
 +<details>
 +<summary> :!: Использовать другую инсталляцию веб сервера</summary>
 +[[https://docs.gitlab.com/omnibus/settings/nginx.html|Процедура описана здесь]]\\
 +Рассматриваем использование **Apache**\\
 +В файле **/etc/gitlab/gitlab.rb**
 +<code bash>
 +nginx['enable'] = false
 +
 +web_server['external_users'] = ['www-data']
 +gitlab_workhorse['listen_network'] = "tcp"
 +gitlab_workhorse['listenUmask'] = "0"
 +gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
 +gitlab_workhorse['authBackend'] = "http://127.0.0.1:8080"
 +</code>
 +
 +Включаем модули apache **a2enmod proxy, rewrite, proxy_http**\\
 +Создаем и включаем виртуальный хост
 +<code bash>
 +# This configuration has been tested on GitLab 8.2
 +# Note this config assumes unicorn is listening on default port 8080 and
 +# gitlab-workhorse is listening on port 8181. To allow gitlab-workhorse to
 +# listen on port 8181, edit /etc/gitlab/gitlab.rb and change the following:
 +#
 +# gitlab_workhorse['listen_network'] = "tcp"
 +# gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
 +#
 +#Module dependencies
 +# mod_rewrite
 +# mod_proxy
 +# mod_proxy_http
 +<VirtualHost *:80>
 +  ServerName <my-site>
 +  ServerSignature Off
 +
 +  ProxyPreserveHost On
 +
 +  # Ensure that encoded slashes are not decoded but left in their encoded state.
 +  # http://doc.gitlab.com/ce/api/projects.html#get-single-project
 +  AllowEncodedSlashes NoDecode
 +
 +  <Location />
 +    # New authorization commands for apache 2.4 and up
 +    # http://httpd.apache.org/docs/2.4/upgrading.html#access
 +    Require all granted
 +
 +    #Allow forwarding to gitlab-workhorse
 +    ProxyPassReverse http://127.0.0.1:8181
 +    ProxyPassReverse http://<my-site>/
 +  </Location>
 +
 +  # Apache equivalent of nginx try files
 +  # http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files
 +  # http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab
 +  RewriteEngine on
 +
 +  #Forward all requests to gitlab-workhorse except existing files like error documents
 +  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
 +  RewriteCond %{REQUEST_URI} ^/uploads/.*
 +  RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]
 +
 +  # needed for downloading attachments
 +  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
 +
 +  #Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
 +  ErrorDocument 404 /404.html
 +  ErrorDocument 422 /422.html
 +  ErrorDocument 500 /500.html
 +  ErrorDocument 502 /502.html
 +  ErrorDocument 503 /503.html
 +
 +  # Debian and CentOS distribution defaults provided below
 +  LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
 +
 +  #For CentOS distributions use
 +  #ErrorLog /var/log/httpd/logs/<my-site>_error.log
 +  #CustomLog /var/log/httpd/logs/<my-site>_forwarded.log common_forwarded
 +  #CustomLog /var/log/httpd/logs/<my-site>_access.log combined env=!dontlog
 +  #CustomLog /var/log/httpd/logs/<my-site>.log combined
 +
 +  #For Debian distributions use
 +  ErrorLog /var/log/apache2/<my-site>_error.log
 +  CustomLog /var/log/apache2/<my-site>_forwarded.log common_forwarded
 +  CustomLog /var/log/apache2/<my-site>_access.log combined env=!dontlog
 +  CustomLog /var/log/apache2/<my-site>.log combined
 +</VirtualHost>
 +</code>
 +</details>
 +
 +
 +**Удаление**\\
 +т.к. вместе с ним ставится много всякого, простое удаление не особо почистило, помогло (вроде) несколько команд:\\
 +<code bash>
 +
 +rpm -e gitlab-ce / apt purge gitlab-ce
 +
 +find / -name gitlab | xargs rm -rf
 +
 + # Просмотр
 +ps aux | grep gitlab
 +</code>
 +
 +
 +
 +
 +<details>
 +<summary> :!: Интеграция с jenkins</summary>
 +В дженкинсе создан спец пользователь
 +
 +В проект добавлен пользователь дженкинса, мейнтейнером
 + вкладка "Webhooks", выбрана галочка Trigger -> push events и Enable ssl
 + в интеграциях, включен дженкинс, указан url дженкинса, пользователь, название проекта
 +
 +В проекте генерируем токен доступа, добавляем ему API, галочка в разрешениях, задаем имя
 + после этого, в участниках проекта добавляется пользователь, с этим именем
 +В дженкинсе, создаем запись кредлов, с таким же названием
 + выбираем тип "GitLab API token", название задаем точно такое же
 +В джобе выбран "GitLab Connections", созданный пользователь дженкинса
 + и выбрана "Use alternative credentials", тут указан токен из проекта
 +
 +
 +в пайплайне выполняются джобы
 + эти джобы транслиются на дженкинс джобы
 + в качестве раннеров должна выступать джобы дженкинса
 +
 +<code bash>
 +</code>
 +
 +</details>
 +
 +
  
  
develop/gitlab.1661921227.txt.gz · Последнее изменение: 2022/08/31 04:47 — admin