Настройка собственного GIT / SVN сервера на базе SCM Manager для Tomcat под Debian

в 10:05, , рубрики: Apache, Debian, Git, linux, SCM Manager, svn, метки: , , , ,

На днях с командой столкнулись с тем, что Bitbucket стал мал для нас, а нацеленность на подобие корпоративной безопасности в любом случае рано или поздно потребует переезд с приватных репозиториев, находящихся вне компании на собственную инфраструктуру. После сёрфинга по интернету было решено остановиться на готовом решении SCM — manager по ряду причин

  • Простота установки
  • Простота администрирования через веб-интерфейс
  • Поддержка GIT и SVN (немаловажно, поскольку используются оба)

ОС для установки: Debian7
Стоит заметить, до этого с подобным никто у нас не сталкивался и статья — это результат нескольких часов метаний по интернету и мануалам.
SCM ставился на Tomcat, поскольку на нём же крутится Redmine
Сама установка и настройка под катом:

Настройка служебного ПО

  1. Ставим JRE (необходима для Apache Tomcat)
    su
    apt-get install openjdk-6-jre 
  2. Качаем последнюю версию 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
    
  3. Распаковываем его, удаляем мусор и закидываем папку с Томкатом в /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
    
  4. Создадим группу, пользователя для Томката и назначим права на директорию
    groupadd tomcat7
    useradd -g tomcat7 -d /etc/tomcat7 tomcat7
    usermod -G www-data tomcat7
    сhown -R tomcat7:tomcat7 /etc/tomcat7
    
  5. Добавим Томкат в автозагрузку (Обратите внимание на переменную 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
    
  6. Запускаем и проверяем сервер
    /etc/init.d/tomcat start
    

    http ://***.***.***.178:8080

  7. Для доступа к интерфейсу Томката в файл
    nano /etc/tomcat7/conf/tomcat-users.xml
    

    добавляем строчку

    <user name="admin" password="password" roles="manager-gui,manager-status,manager-script,manager-jmx" />
    
  8. Перекидываем службу Томката на 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 "$@"
    

  9. Не совсем правильно

    /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
    /sbin/service iptables save

  10. Перезагружаем Томкат
    /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

Источник

Поделиться