Entwicklerhandbuch/Repositorieverwaltung: Unterschied zwischen den Versionen
K (hat „ThorstenStrusch/Infrastruktur:Repositorieverwaltung“ nach „Entwicklerhandbuch/Repositorieverwaltung“ verschoben) |
(Links) |
||
Zeile 1: | Zeile 1: | ||
__NOTOC__ | |||
{{Uberarbeiten}} | |||
'''Auf dieser Seite wird das Setup des dev-servers beschrieben. Möglicherweise gehört diese Seite ins trac!''' | '''Auf dieser Seite wird das Setup des dev-servers beschrieben. Möglicherweise gehört diese Seite ins trac!''' | ||
= Funktionsweise = | = Funktionsweise = | ||
Der Benutzer '''dupload''' hat über die sshd_config ein chroot unterhalb von ''$REPOSITORYROOT/mini-dinstall/incoming'' und darf nur sftp benutzen. Ein login ist ausschliesslich über einen ssh-key möglich. | Der Benutzer '''dupload''' hat über die sshd_config ein chroot unterhalb von ''$REPOSITORYROOT/mini-dinstall/incoming'' und darf nur sftp 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. | 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. | Die Pakete werden daraufhin einsortiert und die Releases signiert. | ||
= Aufbau des Repositories = | = Aufbau des Repositories = | ||
* URL: deb.delixs.de | * URL: deb.delixs.de | ||
* aramec für den 1. Wurf | * aramec für den 1. Wurf | ||
* delixs1 für lenny als Unterbau | * delixs1 für lenny als Unterbau | ||
* delixs2 für squeezy als Unterbau | * delixs2 für squeezy als Unterbau | ||
= Konfigurationen = | = Konfigurationen = | ||
Nachfolgend Vorschläge über die Konfigurationsdateien der beteiligten Dienste | Nachfolgend Vorschläge über die Konfigurationsdateien der beteiligten Dienste | ||
== Apache == | == Apache == | ||
<source lang="apache"> | <source lang="apache"> | ||
deb.delixs.de | deb.delixs.de | ||
</source> | </source> | ||
== mini-dinstall == | == mini-dinstall == | ||
Pfad wo das Repository auf dem dev-Server liegt: '''/home/deb.delixs.de''' | Pfad wo das Repository auf dem dev-Server liegt: '''/home/deb.delixs.de''' | ||
Zeile 46: | Zeile 63: | ||
[delixs1-testing] | [delixs1-testing] | ||
</source> | </source> | ||
== Benutzer dupload == | == 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. | 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. | Sollte einmal der private-Teil verloren gehen, muss er bei allen Entwicklern ausgetauscht werden. | ||
== sftp-chroot == | == sftp-chroot == | ||
Der Benutzer dupload bekommt keine loginshell, er darf nur sftp zum Hoch/runterladen benutzen: | Der Benutzer dupload bekommt keine loginshell, er darf nur sftp zum Hoch/runterladen benutzen: | ||
<source lang="bash"> | <source lang="bash"> | ||
Subsystem sftp internal-sftp | Subsystem sftp internal-sftp | ||
Zeile 63: | Zeile 85: | ||
ForceCommand internal-sftp | ForceCommand internal-sftp | ||
</source> | </source> | ||
== incron Setup == | == incron Setup == | ||
brauchen wir ein seperates incron-setup oder funktioniert auch der dnotify-Support unter lenny? | brauchen wir ein seperates incron-setup oder funktioniert auch der dnotify-Support unter lenny? | ||
== gpg-key == | == gpg-key == | ||
Zwei Möglichkeiten | Zwei Möglichkeiten | ||
# wir hinterlegen das Passwort auf der Platte im Klartext | # wir hinterlegen das Passwort auf der Platte im Klartext | ||
Zeile 74: | Zeile 100: | ||
Nachteil bei Möglichkeit 1: unsicher<br> | Nachteil bei Möglichkeit 1: unsicher<br> | ||
Nachteil bei Möglichkeit 2: man muss mind. nach jedem Reboot den agent wieder mit dem PW füttern | Nachteil bei Möglichkeit 2: man muss mind. nach jedem Reboot den agent wieder mit dem PW füttern | ||
== Weblinks == | |||
* [http://wiki.debianforum.de/EigenesRepository wiki.debianforum.de/EigenesRepository] | |||
---- | |||
<div align="right">[[Entwicklerhandbuch|zurück]] | [[Hauptseite]]</div> | |||
Thorsten Strusch 2009 |
Version vom 18. November 2009, 10:01 Uhr
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 sftp 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
<source lang="apache"> deb.delixs.de </source>
mini-dinstall
Pfad wo das Repository auf dem dev-Server liegt: /home/deb.delixs.de
=> Wollen wir mini-dinstall als root oder als seperater User laufen lassen?
<source lang="properties"> $ cat /home/$USER/.mini-dinstall.conf
- Adapted Colin's mini-dinstall.conf
- Infos unter /usr/share/doc/dput
- und http://debiananwenderhandbuch.de/mini-dinstall.html
[DEFAULT] architectures = all, i386 archivedir = /home/deb.delixs.de/delixs/ use_dnotify = 0 verify_sigs = 0
- aktivieren, sobald key erzeugt ist
- 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
- Releases:
[aramec] [delixs1] [delixs1-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
- wir hinterlegen das Passwort auf der Platte im Klartext
- 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
Thorsten Strusch 2009