Pull to refresh

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

Reading time3 min
Views18K
На днях с командой столкнулись с тем, что 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
    chown -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/java-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
    

    добавляем строчку внутри тега <tomcat-users>
    <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/

Реквизиты для входа: scmadmin/scmadmin

В разделе Пользователей добавляем собственных

Создаём свой репозиторий

В дальнейшем он доступен по ссылке
http: //***.***.***.178/scm/git/tglync, к которую мы и клонируем в дальнейшем.

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

Всем спасибо, надеюсь, было не бесполезно.
Tags:
Hubs:
+3
Comments8

Articles

Change theme settings