На днях с командой столкнулись с тем, что Bitbucket стал мал для нас, а нацеленность на подобие корпоративной безопасности в любом случае рано или поздно потребует переезд с приватных репозиториев, находящихся вне компании на собственную инфраструктуру. После сёрфинга по интернету было решено остановиться на готовом решении SCM — manager по ряду причин
- Простота установки
- Простота администрирования через веб-интерфейс
- Поддержка GIT и SVN (немаловажно, поскольку используются оба)
ОС для установки: Debian7
Стоит заметить, до этого с подобным никто у нас не сталкивался и статья — это результат нескольких часов метаний по интернету и мануалам.
SCM ставился на Tomcat, поскольку на нём же крутится Redmine
Сама установка и настройка под катом:
Настройка служебного ПО
- Ставим JRE (необходима для Apache Tomcat)
su apt-get install openjdk-6-jre
- Качаем последнюю версию Apache Tomcat отсюда (Необходим для работы сервисов SCM-manager)
cd /tmp wget file http://www.sai.msu.su/apache/tomcat/tomcat-7/v7.0.41/bin/apache-tomcat-7.0.41.tar.gz
- Распаковываем его, удаляем мусор и закидываем папку с Томкатом в /etc
tar xzf apache-tomcat-7.0.41.tar.gz mv apache-tomcat-7.0.41 tomcat7 rm apache-tomcat-7.0.41.tar.gz mv /tmp/tomcat7/ /etc
- Создадим группу, пользователя для Томката и назначим права на директорию
groupadd tomcat7 useradd -g tomcat7 -d /etc/tomcat7 tomcat7 usermod -G www-data tomcat7 сhown -R tomcat7:tomcat7 /etc/tomcat7
- Добавим Томкат в автозагрузку (Обратите внимание на переменную JAVA_HOME в скрипте — у вас может не быть amd64,- зависит от архитектуры сервера)
nano /etc/init.d/tomcat
#!/bin/bash CATALINA_HOME=/etc/tomcat7; export CATALINA_HOME JAVA_HOME=/usr/lib/jvm/ava-6-openjdk-amd64; export JAVA_HOME TOMCAT_OWNER=tomcat7; export TOMCAT_OWNER JAVA_OPTS="-Xms128M -Xmx128M"; export JAVA_OPTS start() { echo -n "Starting Tomcat: " su $TOMCAT_OWNER -c $CATALINA_HOME/bin/startup.sh } stop() { echo -n "Stopping Tomcat: " su $TOMCAT_OWNER -c $CATALINA_HOME/bin/shutdown.sh } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo $"Usage: tomcat {start|stop|restart}" exit esac
chmod +x /etc/tomcat7/bin/*.sh chmod +x /etc/init.d/tomcat
- Запускаем и проверяем сервер
/etc/init.d/tomcat start
http ://***.***.***.178:8080
- Для доступа к интерфейсу Томката в файл
nano /etc/tomcat7/conf/tomcat-users.xml
добавляем строчку
<user name="admin" password="password" roles="manager-gui,manager-status,manager-script,manager-jmx" />
- Перекидываем службу Томката на 80 порт
Правльно но сложно
nano /etc/tomcat7/conf/server.xml
Изменяем строчки
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Ставим authbind, дабы перевести его на порты ниже 1024
apt-get install authbind
touch /etc/authbind/byport/80 chmod 500 /etc/authbind/byport/80 chown tomcat7 /etc/authbind/byport/80
В файл
nano /etc/tomcat7/bin/setenv.sh
записываем
CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"
и меняем последнюю строчку в файле
nano /etc/tomcat7/bin/startup.sh
exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
-
Не совсем правильно
/sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 /sbin/service iptables save
- Перезагружаем Томкат
/etc/init.d/tomcat restart
Установка SCM
- Качаем SCM-manager отсюда
cd /tmp wget file http://maven.scm-manager.org/nexus/content/repositories/releases/sonia/scm/scm-webapp/1.32/scm-webapp-1.32.war
- Переносим его в папочку webapps Томката
mv scm-webapp-1.32.war scm.war mv scm.war /etc/tomcat7/webapps
- Ждём пока развернётся приложение, проверяем его http: //***.***.***.178/scm/
В дальнейшем он доступен по ссылке
http: //***.***.***.178/scm/git/tglync, к которую мы и клонируем в дальнейшем.
Репозитории легко можно импортировать, а также есть много готовых плагинов, используя которые можно настроить SCM под себя, к примеру, добавить уведомления. Плагины также подключаются через веб-интерфейс.
При желании, веб-клиент SCM также можно кастомизировать и внешне.
Всем спасибо, надеюсь, было не бесполезно.
Автор: DeFate