Поиск по сайту:

Как установить Gitlab с PostgreSQL и Nginx на Ubuntu 15.04


На этой странице

  1. Предпосылки
  2. Шаг 1. Обновление системы Linux
  3. Шаг 2. Установите зависимости Gitlab
  4. Шаг 3. Установите Ruby и вперед
  5. Шаг 4. Создайте нового пользователя Linux и настройте базу данных PostgreSQL.
  6. Шаг 5. Настройка сервера Redis
  7. Шаг 6. Установите GitLab
    1. - Настройка GitLab
    2. - Конфигурация базы данных
    3. - Установите драгоценные камни
    4. - Установить Gitlab-оболочку
    5. - Установите gitlab-workhorse
    6. - Инициализировать базу данных и активировать функции gitlab.

    Gitlab — это веб-приложение для управления репозиторием git, написанное на Ruby. Он похож на GitHub и включает в себя такие функции, как вики проекта и систему отслеживания проблем. Проект Gitlab был запущен Дмитрием Запорожцем, и программное обеспечение используется более чем 100 000 технологических компаний, включая IBM, StackExchange, NASA, Alibaba, Red Hat и т. д. Gitlab — одно из лучших решений для создания собственного сервера git.

    Gitlab поддерживается основными дистрибутивами Linux, такими как Ubuntu, Debian и CentOS. Gitlab предоставляет пакет .deb для Debian/Ubuntu и пакеты .rpm для Rhel и CentOS. Пакет содержит все зависимости, включая Ruby, Redis, Nginx, Unicorn и PostgreSQL. Gitlab доступен в двух версиях: Community Edition (Gitlab CE) и Enterprise Edition (Gitlab EE). Если вы хотите создать свой собственный сервер git, то, скорее всего, бесплатная версия CE предложит все необходимые вам функции.

    В этом руководстве я шаг за шагом проведу вас через установку Gitlab CE с PostgreSQL в качестве системы базы данных и Nginx в качестве веб-сервера в версии Ubuntu 15.04. Мы будем использовать Ruby версии 2.x.x, стабильную версию gitlab 8.x.

    Предпосылки

    • Ubuntu 15.04 — 64-разрядная версия.
    • ЦП 2 ядра — рекомендуется с сайта gitlab.
    • 2 ГБ ОЗУ/памяти — рекомендуется с сайта gitlab.
    • Привилегии root.

    Шаг 1 — Обновите систему Linux

    Перед установкой зависимостей Gitlab мы получаем последние обновления из репозитория Ubuntu. Войдите на сервер Ubuntu с доступом по SSH, станьте пользователем root и обновите репозитории.

    sudo su
    apt-get update

    Шаг 2 — Установите зависимости Gitlab

    Gitlab имеет множество программных зависимостей, таких как redis-server, git-core, nodejs и postfix для отправки уведомлений по электронной почте. Я установлю их с помощью одной команды apt:

    sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs git-core postfix

    Примечание. Во время установки postfix выберите \интернет-сайт\, а затем нажмите клавишу ВВОД, чтобы подтвердить имя хоста.

    Если все пакеты установлены, проверьте версию git и убедитесь, что версия git 1.7.x или выше.

    git --version
    git version 2.1.4

    Шаг 3 — Установите Ruby и вперед

    Для Gitlab требуется ruby версии 2.x или выше. В этом уроке мы будем использовать ruby версии 2.7. На этом этапе нам нужно установить ruby вручную (из исходного кода). Если в вашей системе ранее был установлен ruby, удалите его с помощью команды ниже:

    apt-get remove ruby -y

    Далее мы установим ruby вручную. Создайте новый каталог для исходных файлов ruby:

    mkdir -p /tmp/ruby && cd /tmp/ruby

    Загрузите исходный код ruby с помощью команды curl:

    curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz

    Теперь проверьте и распакуйте ruby.tar.gz, затем войдите в каталог ruby:

    echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075  ruby-2.1.7.tar.gz' | shasum -c - && \
    tar xzf ruby-2.1.7.tar.gz && \
    cd ruby-2.1.7

    Скомпилируйте и установите Ruby:

    ./configure --disable-install-rdoc --prefix=/usr/local
    make
    make install

    В качестве следующего шага мы должны установить Go. Начиная с gitlab 8.0, HTTP-запрос git обрабатывается gitlab-workhorse, написанным на Go. Чтобы установить gitlab-workhorse, нам понадобится компилятор go, скачайте и установите его.

    Создайте новый каталог для Go:

    mkdir -p /tmp/go && cd /tmp/go

    Скачиваем Go — используем 64 битную версию:

    curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

    Проверьте и извлеките его в каталог \/usr/local/\:

    echo '46eecd290d8803887dec718c691cc243f2175fe0  go1.5.1.linux-amd64.tar.gz' | shasum -c - && \
    sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

    Теперь создайте символическую ссылку для Go в каталоге bin:

    sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

    Теперь у нас установлены Ruby и Go.

    Шаг 4. Создайте нового пользователя Linux и настройте базу данных PostgreSQL.

    На этом шаге мы создадим нового системного пользователя Linux с именем \git\ и домашним каталогом \/home/git\. Gitlab будет работать от имени пользователя git позже.

    Создайте нового пользователя git с помощью команды adduser:

    sudo adduser --disabled-login --gecos 'GitLab' git

    Теперь настраиваем базу данных для gitlab. Gitlab поддерживает MySQL и PostgreSQL, в этом руководстве мы будем использовать рекомендуемый тип базы данных PostGreSQL.

    Установите PostgreSQL с помощью приведенной ниже команды apt:

    sudo apt-get install -y postgresql postgresql-client libpq-dev

    Как только это будет сделано, войдите в PostgreSQL и создайте новую роль/пользователя с именем «git» для gitlab:

    sudo -u postgres psql -d template1
    CREATE USER git CREATEDB;

    Затем создайте новую базу данных для gitlab с именем «gitlabhq_production» и предоставьте базу данных пользователю/роли git:

    CREATE DATABASE gitlabhq_production OWNER git;

    Теперь выйдите из оболочки postgresql и протестируйте новую роль/пользователя с созданной нами базой данных:

    \q
    sudo -u git -H psql -d gitlabhq_production

    Создан новый системный пользователь по имени \git\.

    Также была создана новая роль/пользователь git для psotgreSQL, которая была предоставлена базе данных gitlab gitlabhq_production.

    Шаг 5. Настройте сервер Redis.

    Прежде чем редактировать файл конфигурации Redis в каталоге \/etc/redis\, мы создадим резервную копию с именем redis.conf.original.

    cd /etc/redis/
    cp redis.conf redis.conf.original

    Затем отредактируйте файл \redis.conf\ с помощью редактора vim:

    vim redis.conf


    Перейдите к строке 45 и измените значение на 0, потому что мы хотим, чтобы Redis прослушивал только сокет unix, а не порт:

    Listen 0

    Затем перейдите в конец файла и добавьте сокет redis и разрешение для него:

    unixsocket /var/run/redis/redis.sock
    unixsocketperm 777

    Сохраните файл и выйдите.

    Затем создайте новый каталог для сокета redis в каталоге \/var/run\ и настройте владельца и права доступа к каталогу:

    mkdir -p /var/run/redis
    chown redis:redis /var/run/redis
    chmod 755 /var/run/redis

    Перейдите в каталог сокетов redis и выполните команду ниже:

    cd /var/run/redis
    if [ -d /etc/tmpfiles.d ]; then
      echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
    fi

    Если все сделано, перезапустите сервер redis и добавьте пользователя «git» в группу «redis»:

    sudo service redis-server restart
    sudo usermod -aG redis git

    Шаг 6 — Установите GitLab

    Перейдите в каталог \/home/git\ и загрузите gitlab из репозитория GIT:

    cd /home/git
    sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab

    Примечание :

    Команда sudo -u git -H clone=мы запускаем команду \clone\ от имени пользователя \git\.

    - Настроить GitLab

    Перейдите в каталог gitlab, чтобы настроить gitlab:

    cd /home/git/gitlab

    Скопируйте пример файла конфигурации gitlab gitlab.yml.example в gitlab.yml в каталоге \config\:

    sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

    В каталоге gitlab измените владельца подкаталогов \log and tmp\ на пользователя git:

    sudo chown -R git {log,tmp}

    Затем измените разрешения для других каталогов, чтобы gitlab (пользователь git) мог писать в них:

    mkdir -p public/uploads/
    sudo chmod -R u+rwX,go-w log/
    sudo chmod -R u+rwX {tmp,tmp/pids,tmp/sockets,builds,shared/artifacts}
    sudo chmod -R 0750 public/uploads

    Скопируйте примеры конфигураций атаки unicorn и Rack:

    sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
    sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

    Теперь нам нужно настроить глобальные настройки для пользователя git с помощью команды git ниже:

    sudo -u git -H git config --global core.autocrlf input

    И мы должны настроить соединение с Redis, скопировав файл \resque.yml\ в каталог конфигурации, затем отредактировав его с помощью vim, чтобы изменить конфигурацию Redis, используя сокет unix, поскольку мы настроили Redis для прослушивания сокета:

    sudo -u git -H cp config/resque.yml.example config/resque.yml

    - Конфигурация базы данных

    Следующим шагом является настройка параметров БД GitLab, мы используем postgreSQL для нашей базы данных. Скопируйте файл конфигурации и измените разрешения:

    sudo -u git -H cp config/database.yml.postgresql config/database.yml
    sudo -u git -H chmod o-rwx config/database.yml

    - Установите драгоценные камни

    sudo gem install bundler
    sudo -u git -H bundle install --deployment --without development test mysql aws kerberos

    Подождите, пока команды закончатся.

    - Установить Gitlab-шелл

    Gitlab-shell обеспечивает доступ по SSH и управление репозиторием для Gitlab. Мы будем использовать конфигурацию по умолчанию, поэтому нам не нужно ее редактировать. Запустите команду ниже, чтобы установить gitlab-shell:

    sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

    REDIS_URL=убедитесь, что вы используете сокет unix для настройки Redis в производственной среде.

    - Установить gitlab-рабочую лошадку

    Gitlab-workhorse — небольшой демон для обработки Git HTTP-трафика от unicorn, написанный на Go. Клонируем и устанавливаем:

    cd /home/git
    sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
    cd gitlab-workhorse
    sudo -u git -H git checkout 0.4.2
    sudo -u git -H make

    - Инициализировать базу данных и активировать функции gitlab

    Перейдите в каталог установки gitlab и выполните команду ниже:

    cd /home/git/gitlab
    sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

    введите «да», чтобы создать таблицы.

    Результатом будет учетная запись gitlab с именем пользователя «root» и паролем «5iveL! fe».

    Шаг 7. Настройте сценарий инициализации

    Скопируйте сценарий инициализации gitlab из каталога установки gitlab и добавьте gitlab для запуска во время загрузки с помощью команды update-rc.d:

    sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
    sudo update-rc.d gitlab defaults 21

    Затем скопируйте конфигурацию gitlab logrotate для управления журналами:

    sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

    И проверьте статус приложения и скомпилируйте активы:

    sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
    sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

    Если ошибки нет, запустите gitlab с помощью:

    /etc/init.d/gitlab start

    Шаг 8 — Установите и настройте Nginx

    Мы будем использовать Nginx в качестве внешнего веб-сервера для обработки запросов браузера. Просто установите его с помощью этой подходящей команды:

    apt-get install nginx -y

    Скопируйте конфигурацию виртуального хоста Nginx из каталога gitlab и удалите виртуальный хост Nginx по умолчанию:

    sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
    sudo rm /etc/nginx/sites-enabled/default

    Отредактируйте файл конфигурации с помощью vim:

    sudo vim /etc/nginx/sites-available/gitlab

    Измените значение строк Listen и ServerName в разделе HTTP:

    Listen *:80; #Port Default

    #Listen 0.0.0.0:80; #comment one of this

    ServerName my.gitlab.me; #Gitlab FQDN/Domain

    Сохранить и выйти.

    Активируйте виртуальный хост gitlab, запустите nginx и перезапустите gitlab:

    sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
    service nginx start
    /etc/init.d/gitlab restart

    Теперь вы можете получить доступ к gitlab с помощью браузера my.gitlab.me (имя хоста, которое вы выбрали для своего сервера) и войти в систему с именем пользователя по умолчанию \root\ и пароль \5iveL!fe\.

    Сначала вы должны заменить пароль по умолчанию gitlab своим паролем.

    Gitlab 8 с PostgreSQL и Nginx на Ubuntu 15.04 успешно установлен.

    Примечание :

    Если у вас есть ошибка, например, «502 bad gateway», то исправьте ее, увеличив время ожидания единорога или обновите свое оборудование. Перейдите в каталог установки gitlab и отредактируйте файл unicorn.rb с помощью vim:

    sudo -u git -H vim config/unicorn.rb

    Подробнее об устранении неполадок в Gitlab см. здесь https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide.

    Заключение

    Gitlab — это программное обеспечение для управления репозиторием git с открытым исходным кодом, написанное на Ruby. Это одно из лучших решений для создания собственного сервера git. Gitlab создан Дмитрием Запорожцем и доступен в двух версиях: Gitlab CE (Community Edition) и Gitlab EE (Enterprise Edition). Gitlab легко установить и настроить с красивым интерфейсом, который используют более 100 000 технологических компаний. Это очень мощное программное обеспечение, которое помогает разработчикам создавать приложения вместе с другими разработчиками.