čtvrtek 1. října 2009

Instalace Debianu do VirtualBoxu pro SVN a Trac

Prostředí se bude používat jako server pro SVN a Trac.

Vytvoření virtuálního počítače a instalace Debianu
  1. Vytvořit standardní Virtual Machine (VM) pro Debian:
    • Jméno: SVNTrac
    • OS: Linux, Version: Debian
    • RAM: 256 MB
    • HDD: 500 GB data
    • CD-ROM: ISO image debian-503-i386-businesscard.iso (Official businesscard images for the "stable" release - i386 verze)
  2. Spustit VM a vybrat textovou instalaci: Install
  3. Hostname: svntrac, Domain: <nic>
  4. Partition disks:
    • Guided - use entire disk
    • Separate /home partition
  5. User: trac
  6. Software collections: Standard system
  7. Přihlásit se lokálně jako root:
    • Do /etc/apt/sources.list přidat:
      deb http//:ftp.cz.debian.org/debian unstable main
    • Vytvořit /etc/apt/apt.conf a vložit do něj (viz Jak udržovat smíšený systém):
      APT::Default-Release stable
    • Spustit:
      apt-get update
      apt-get upgrade
    • Instalace balíčků ze stabilního repositáře:
      apt-get install ssl-cert openssh-server libapache2-mod-python libapache2-mod-python-doc
    • Instalace balíčků ze nestabilního repositáře (chceme poslední dostupnou verzi):
      apt-get install -t unstable subversion subversion-tools trac python-setuptools libapache2-svn
    • Odhlásit se lokálně a příhlásit se vzdáleně přes SSH
Konfigurace Apache
  1. Nastavit správné ServerName v /etc/apache2/httpd.conf:
    ServerName moje.domena.cz
    Nenastavení správné domény vede později k obskurní chybě:
    svn: OPTIONS of 'https://svn.example.com/repos':
    SSL negotiation failed: SSL error code -1/1/336032856
  2. Povolit SSL:
    a2enmod ssl
  3. Povolit port 443 přidáním řádku do /etc/apache2/ports.conf:
    Listen 443
  4. Vygenerovat SSL certifikát (hostname svntrac):
  5. mkdir /etc/apache2/ssl
    make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
  6. Vytvořit virtuálního hosta:
    • cp /etc/apache2/sites-available/default /etc/apache2/sites-enabled/svntrac
    • Upravit konfiguraci: vim /etc/apache2/sites-enabled/svntrac
      NameVirtualHost *:443
      <virtualhost *:443="">
              ServerAdmin mail@mail.cz
              ErrorLog /var/log/apache2/error.log
              LogLevel warn
              CustomLog /var/log/apache2/access.log combined
              SSLEngine on
              SSLCertificateFile /etc/apache2/ssl/apache.pem
              SSLProtocol all -SSLv2
              SSLCipherSuite HIGH
      </virtualhost>
      
  7. Restartovat Apache: /etc/init.d/apache2 restart
    • Varování o jménu serveru jde zrušit přidáním ServerName svntrac do /etc/apache2/apache2.conf
    • Virtuální host už je povolený - pokud ne, povolit ho: a2ensite svntrac
  8. Vyzkoušet https://localhost/. Bude si stěžovat na neplatný certifikát, protože jsme si ho sami vytvořili. Na stránce by mělo být zobrazeno:
    It works!
Konfgurace SVN
  1. Vytvořit adresář pro svn data: mkdir /home/svn
  2. Vytvořit repozitář pro projekty: svnadmin create /home/svn/projekty
  3. Upravit práva: 
    • chown -R www-data.www-data /home/svn/projekty
    • chmod -R g+ws /home/svn/projekty
  4. Vytvořit soubor s hesly na basic authentification pro Apache:
    • htpasswd -c -m /etc/apache2/dav_svn.passwd cenovsky
    • Další uživatelé už bez -c: htpasswd -m /etc/apache2/dav_svn.passwd honza
  5. Povolit WebDAV v Apachi: vim /etc/apache2/mods-available/dav_svn.conf
    <Location /svn>
        DAV svn
        SVNParentPath /home/svn
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        SSLRequireSSL
        Require valid-user
    </Location>
    
    V konfiguračním souboru je předdefinovaná varianta, kdy anonymní uživatelé mohou repozitář číst. Já to nechci, takže jsem <LimitExcept> zrušil a přidal SSLRequireSSL.
  6. Restartovat Apache: /etc/init.d/apache2 restart
    Vyzkoušet: https://localhost/svn/projekty. Na stránce by mělo být zobrazeno:
    projekty - Revision 0:/
  7. Naimportovat SVN repozitář (pokud už existoval): svnadmin load /home/svn/projekty <projekty.dump
Konfigurace Trac
  1. Trac je nainstalovaný v /usr/share/pyshared/trac
  2. Měl by být k dispozici adresář /home/trac. Pokud ne, tak vytvořit.
  3. Vytvořit prostředí pro projekty:
    • cd /home/trac
    • trac-admin projekty initenv
  4. Změnit vlastníka adresáře /home/trac: chown www-data:www-data -R /home/trac
  5. Vytvořit administrátora: trac-admin projekty permission add jmeno TRAC_ADMIN
  6. Upravit konfiguraci Trac: vim /home/trac/projekty/conf/trac.ini
  7. Přidat do konfigurace Apache: vim /etc/apache2/sites-enabled/svntrac
    <location /trac>
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnvParentDir /home/trac
        PythonOption TracUriRoot /trac
        AuthType Basic
        AuthName "Projekty"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require valid-user
        SSLRequireSSL
    <location>
    
  8. Restartovat Apache: /etc/init.d/apache2 restart
  9. Vyzkoušet https://localhost/trac/projekty - měla by se zobrazit hlavní stránka Tracu s přihlášeným uživatelem (na základě Basic autentikace).
Trac plugins

Pluginy jsou popsány v samostatném článku.

Ostatní

  • Přidat do cronu aktualizaci času pomocí ntpdate pool.ntp.org
  • Zakázat ssh pro roota: vim /etc/ssh/sshd_config
    PermitRootLogin no
    /etc/init.d/ssh restart
  • Zakázání uživatele: passwd trac -l
  • český formát datumu
    • dpkg-reconfigure locales - přidat cs_CZ.UTF-8 UTF-8
    • přidat do /etc/apache2/sites-enabled/svntrac, sekce <location /trac>
    • PythonOption TracLocale "cs_CZ.utf-8"

Žádné komentáře:

Okomentovat