Установка Hg/Git/Svn хранилища репозитария Rhodecode

И хотя стандартном де-факто для построения внутренних GIT-хранилищ на данный момент является GitLab есть компании где еше не все мигрировали на Git и требуется поддержка нескольких типов репозитариев. Сегодня мы рассмотрим один из проектов корпоративных хранилищ исходных кодов с поддержкой нескольких типов репозитариев, а речь пойдет о RhodeCode. И в первом обзоре мы рассмотрим как установить, хранилище репозитариев.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 10 Мар 2018 (последние правки 1 месяц, 1 неделя)

admin aptitude cv debian email git gitlab install mysql pattern postgres postgresql rhodecode tar хранилище

1. Официальный сайт продукта: https://rhodecode.com/download/community

2. Проводим типовую установку операционной системы Debian 9.2.1

Типовая установка Debian Linux

3. Проводим установку базы данных Postgresql, создаем базу и пользователя.

В консоли Linux выполняем команды:

# aptitude install postgresql
# su postgres
$ psql

В консоли управления СУБД Postgresql выполняем:

# CREATE USER rhodecode_user WITH PASSWORD 'jw8Ebewr';
# CREATE DATABASE rhodecode OWNER rhodecode_user;
# \q

4. Создаем пользователя git, его домашний каталог и задаем пароль:

# useradd git
# mkdir /home/git
# chown git /home/git/
# passwd git

5. Авторизуемся как не привилегированный пользователь git и загружаем инсталлятор RhodeCode:

$ # wget --content-disposition https://dls-eu.rhodecode.com/dls/NzA2MjdhN2E2ODYxNzY2NzZjNDA2NTc1NjI3MTcyNzA2MjcxNzIyZTcwNjI3YQ==/rhodecode-control/latest-linux-ce
$ chmod +x ./RhodeCode-installer-linux-build20171123_1300

Ссылку для загрузки (wget) получите на официальном сайте: https://rhodecode.com/download/community обратите внимание, что просто так скачать не получится и при запуске файла latest-linux-ce вы получите ошибку:

ERROR: Platform check requires '/home/git/RhodeCode-installer to follow the pattern:
RhodeCode-installer-<platform>-<version>
Please keep the original filename as it contains useful data.

Загрузка производится именно через wget и имя полученного файла должен быть должно быть строго определенного формата.

Файлы RhodeCode хранит в каталоге /opt/ куда пользователь git не может писать, поэтому придется создать хранилище вручную и назначить права на запись:

# mkdir -m 0755 -p /opt/rhodecode && chown git /opt/rhodecode

6. Запускаем мастер установки загруженный в прошлом пункте:

$ ./RhodeCode-installer-linux-build20171123_1300

В ходе работы консольного мастера установки отвечаем на типовые вопросы необходимые для создания конфигурации.

  1. Подтверждаем согласие с лицензионным соглашением
  2. Вводим пароль пользователя sudo (если поддерживается функционал) для создания каталога хранилища

7. Запускаем мастер настройки VCSServer:

$ ~/.rccontrol-profile/bin/rccontrol install VCSServer

это базовый этап и он выполняется вне зависимости от типа устанавливаемой версии RhodeCode (Community Edition или Enterprise Edition). В настройке не нуждается и все параметры можно оставить по-умолчанию.

8. Запускаем мастер настройки Community-версии RhodeCode:

$ ~/.rccontrol-profile/bin/rccontrol install Community

Именно на этом этапе мы задаем имя и пароль пользователя администратора web-интерфейса.

First super-admin username. 
Use this username for first log-in to RhodeCode Application.
Username [admin]: 

Initial password for super-admin. 
You can always change it after logging in.
Password (min 6 chars): 
Repeat for confirmation:

Адрес электронной почты:

Email for super-admin. Important notifications are
sent to that email. It can be changed later at any time.
Email: hg@prud.net

Расположение хранилища репозиториев:

Path to store all RhodeCode repositories. 
If existing path is given RhodeCode can import repositories from it.
This path is also used to store Gists. It can be changed later in admin interface.
Make sure this path is writable by RhodeCode.
Repositories location [/home/git/repos]:

Указываем 0.0.0.0 в качестве адреса на котором будет запущен данный инстанс (по умолчанию используется localhost и подключения возможны только с локального адреса):

Default IP Address to run this instance.
Default [127.0.0.1] should be used together with http proxy such as Apache or Nginx.
Use 0.0.0.0 to allow access via this server IP directly. 
This can be changed inside /home/git/.rccontrol/community-1/rhodecode.ini config later by modifying host= parameter.
IP to start the RhodeCode Community server on [127.0.0.1]: 0.0.0.0

Порт на котором будет запущен инстанс RhodeCode (можно на одном хосте запустить несколько экземпляров):

Default port to start the instance.
This can be changed inside /home/git/.rccontrol/community-1/rhodecode.ini config later by modifying port= parameter.
Port for the RhodeCode Community server to use [10002]:

Указываем тип базы данных которая будет использоваться экземпляром RhodeCode и параметры подключения:

Choose database type for new installation.
SQLite should be used in small environments (3-4 users), or for testing purposes.
Choose MySQL or PostgreSQL for optimal performance.
To use MySQL/PostgreSQL you need to create a new database before continuing.
Make sure this host can connect to your Database server. 
Database connection details are saved under `sqlalchemy.db1.url =` variable inside /home/git/.rccontrol/community-1/rhodecode.ini.
Database type - [s]qlite, [m]ysql, [p]ostresql:
PostgreSQL selected
Database host [127.0.0.1]: 
Database port [5432]: 
Database username: rhodecode_user
Database password: 
Repeat for confirmation: 
Database name: rhodecode
Creating new instance: community-1
Installing RhodeCode Community

Теперь, web-интерфейс управления доступен по адресу: http://<ip-адрес>:10002/

9. Настраиваем автозапуск сервисов RhodeCode при старте сервера.

Если вы перезагрузите сервер, то увидите, что автозапуск RhodeCode не настроен, да и вообще не предусмотрен в Community версии. Для автоматического старта сервиса и перезапуска при необходимости есть несколько методов, например использование SupervisorD и SystemD-юнита. Для нашего дистрибутива Debian 9.2.1 нативным методом запуска отдельных сервисов является использование юнита SystemD.

Создайте файл /lib/systemd/system/rhodecode.service содержаший следующие параметры:

[Unit]
Description=Rhodecode
[Service]
Type=forking
User=git
ExecStart=/home/git/.rccontrol-profile/bin/rccontrol start community-1
[Install]
WantedBy=multi-user.target

В детали вдаваться не будем, мы уже довольно много юнитов SystemD настраивали и этот ничем выдающимся не отличается. Для настройки автозапуска юнита выполните команды:

# systemctl enable rhodecode
# systemctl start rhodecode

На этом первый этап настройки завершен и можно начинать настраивать RhodeCode под хранилища и начнем мы второй этап с настройки интеграции с Active Direcory.

Похожие статьи

RhodeCode интеграция с Active Directory

RhodeCode интеграция с Active Directory

При работе с множеством внутренних корпоративных сервисов всегда возникает желание как-то унифицировать логины и пароли пользователей и упростить создание новых пользователей. Не сказать, что у нас большая текучка, но болшьшое число внутренних сервисов создает некоторые проблемы с заведением новых пользователей, так как даже следуя плану предоставления доступа можно что-то забыть. Я предпочитаю привязывать все сервисы в ActiveDirectory компании и повозможности интегрировать пользователей и группы различных сервисов с пользователями и группами в ActiveDirectory.


Как включить доступ к репозитариям по ключу в RhodeCode

Как включить доступ к репозитариям по ключу в RhodeCode

RhodeCode поддерживает доступ к репозитариям с использованием публичного ключа, но по умолчанию этот режим отключен и используется доступ к репозитариям с использованием пары логин-пароль. Я предпочитаю использовать именно авторизацию по ключу и сегодня будем разбираться как этот режим включить в RhodeCode


Обновление RhodeCode

Обновление RhodeCode

Процесс обновления RhodeCode максимально простой и в большинстве случаев проходит штатно. Я подготовил небольшую видео-инструкцию с подробным описанием всех выполненных операций. Надеюсь, что этот небольшой видео-урок будет вам полезен.


Установка GITLAB на ARM-платформу (BananaPI M2)

Установка GITLAB на ARM-платформу (BananaPI M2)

В процессе эксплуатации GIT-хранилища RhodeCode я пришел к мнению, что надо с него мигрировать и благо, что я на него не сильно пока залез. Главная причина по которой я решил с него мигрировать, это его прожорливость и если на одной из клиентских платформ с выделенным сервером он вполне себе прижился, то на моем небольшом VPS он потребляет катастрофически много ресурсов и периодически по этому поводу залезает в swap, после чего скорость его работы падает на столько, что остается только материться. Сегодня будем пробовать не менее прожорливого монстрика GITLAB, но устанавливать его будем на наше файловое хранилище которое как наверное помните по моим предыдущим заметкам построено на ARM-платформе BabanaPI M2.


Как установить GITLAB (пошаговое руководство)

Как установить GITLAB (пошаговое руководство)

И еще одна небольшая инструкция по установке web-приложения на Linux-сервер (точнее на Ubuntu Server 16.04). В рамках одного из текущих проектов мне потребовалось развернуть GITLAB на сервер заказчика и естественно мне на этот шаг работы (как в принципе и на весь проект) необходимо подготовить документацию, а так как инструкция по установке внутреннего git-репозитария GITLAB особой коммерческой тайны не представляет, я могу поделиться с вами этим пошаговым руководством.


HTTPS-защита подключений к GITLAB

HTTPS-защита подключений к GITLAB

Как я уже говорил в заметке про установку GITLAB, этот комбайн тащит за собой набор софта включающий в себя Nginx, Postgresql и т.п., а сегодня мы будет отключать использование встроенного в GITLAB Nginx и будем использовать наш центральный Front Nginx, что позволит установить параллельно с GITLAB на одном сервере еще ряд приложений. Одной из побочных задач такого решения служит настройка HTTPS-защиты подключений к нашему внутреннему GIT-репозитарию.


Настройка RhodeCode на сервере под управлением ISPmanager

Настройка RhodeCode на сервере под управлением ISPmanager

Как я ненавижу разного рода панели управления наподобие ISP, это просто словами не описать, мало того. что они ограничивают системного администратора набором шаблонных функций, так еще и ломаются на раз по самым необъяснимым причинам. Я по возможности стараюсь отказываться от проектов где меня просят сделать из сервера с панелью управления нечто нестандартное, но сегодня рассмотрим именно такой кейс.


GITLAB - перенос интегрированной базы Postgresql в штатную базу операционной системы

GITLAB - перенос интегрированной базы Postgresql в штатную базу операционной системы

GitLab, это отличный GIT-репозитарий для использования внутри компании с богатым функционалом и простой установкой, как его устанавливать я уже рассказывал и вы наверное обратили внимание, что этот продукт рекомендуется использовать на отдельном хосте и он поставляется полностью со своей инфраструктурой программ окружения. Как отвязать его от использования встроенного Nginx я вам уже рассказал и сегодня мы будем отвязывать его от встроенного сервера Postgresql.


GITLAB - резервное копирование и восстановление

GITLAB - резервное копирование и восстановление

На днях меня попросили посмотреть механизмы резервного копирования которые остались от уволившегося системного администратора в одной из компаний. Честно говоря я был немного удивлен подходом к резервному копированию который он применял, ведь как я говорю мало сделать резервную копию сервера или отдельного сервиса, надо потом с этой копии еще и восстановиться.


Отзывы и комментарии