Entwicklerhandbuch/Repositorieverwaltung

Aus Delixs
Zur Navigation springen Zur Suche springen
Uberarbeiten Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben).


Auf dieser Seite wird das Setup des dev-servers beschrieben. Möglicherweise gehört diese Seite ins trac!


Funktionsweise

Der Benutzer dupload hat über die sshd_config ein chroot unterhalb von $REPOSITORYROOT/mini-dinstall/incoming und darf nur scp benutzen. Ein login ist ausschliesslich über einen ssh-key möglich.

incron überwacht das Repository auf eine .changes-Datei und stößt nach einem "IN_MODIFY,IN_CREATE" das Script mini-dinstall --batch aus. Die Pakete werden daraufhin einsortiert und die Releases signiert.

Aufbau des Repositories

  • URL: deb.delixs.de
  • aramec für den 1. Wurf
  • delixs1 für lenny als Unterbau
  • delixs2 für squeezy als Unterbau


Konfigurationen

Nachfolgend Vorschläge über die Konfigurationsdateien der beteiligten Dienste


Apache

die Datei /etc/apache2/sites-available/deb.delixs.de <source lang="apache"> <VirtualHost *:80>

   ServerAdmin webmaster@delixs.de
   ServerName deb.delixs.de
   DocumentRoot /home/deb.delixs.de/
   ErrorLog /var/log/apache2/error.log
   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn
   CustomLog /var/log/apache2/access.log combined
   ServerSignature On

</VirtualHost> </source>

mini-dinstall

Pfad wo das Repository auf dem dev-Server liegt: /home/deb.delixs.de

<source lang="properties"> $ cat /home/$USER/.mini-dinstall.conf

  1. Adapted Colin's mini-dinstall.conf
  2. Infos unter /usr/share/doc/dput
  3. und http://debiananwenderhandbuch.de/mini-dinstall.html

[DEFAULT] architectures = all, i386 archivedir = /home/deb.delixs.de/delixs/ use_dnotify = 0 verify_sigs = 0 extra_keyrings = ~/.gnupg/pubring.gpg mail_on_success = 1 archive_style = simple-subdir poll_time = 10 mail_log_level = NONE generate_release = 1 release_description = delixs Packages

  1. Releases:

[aramec] [testing] </source>

Benutzer dupload

Um nicht allen Entwicklern einen ssh-login auf dem dev-server geben zu müssen, legen wir den Benutzer dupload (debian-upload) ein, der im incoming Verzeichnis von mini-dinstall eingesperrt ist. Für ihn lassen wir ausschliesslich einen Zugang per ssh-key zu.


Sollte einmal der private-Teil verloren gehen, muss er bei allen Entwicklern ausgetauscht werden.


sftp-chroot

Der Benutzer dupload bekommt keine loginshell, er darf nur sftp zum Hoch/runterladen benutzen:

<source lang="bash"> Subsystem sftp internal-sftp Match user dupload

   ChrootDirectory $REPOSITORYROOT/mini-dinstall/incoming
   X11Forwarding no
   AllowTcpForwarding no
   ForceCommand internal-sftp

</source>


incron Setup

brauchen wir ein seperates incron-setup oder funktioniert auch der dnotify-Support unter lenny?


gpg-key

Zwei Möglichkeiten

  1. wir hinterlegen das Passwort auf der Platte im Klartext
  2. wir benutzen den gpg-agent, der es eine Weile im Speicher behält

Nachteil bei Möglichkeit 1: unsicher
Nachteil bei Möglichkeit 2: man muss mind. nach jedem Reboot den agent wieder mit dem PW füttern


Weblinks



zurück | Hauptseite


Thorsten Strusch 2009