Server Installation/Apt Repository

Aus Opennet
Wechseln zu: Navigation, Suche

Dienst zur Bereitstellung eines Debian APT Repositories zur Veröffentlichung/Verteilung von Opennet eigenen DEB Paketen. Genutzt werden mini-dinstall, dput und gpg.

Inhaltsverzeichnis

Installation


Grundinstallation mini-dinstall und dput:

ssh root@<host>
apt install mini-dinstall dput
adduser --disabled-password --gecos "Opennet APT Repository" apt
su - apt
mkdir repository
mkdir repository/keys
mkdir bin

GPG Key für APT Repository Signatur:

ssh apt@<host>
ON_APT_KEYGEN="
  Key-Type: RSA
  Key-Length: 4096
  Key-Usage: sign
  Name-Real: Opennet APT Repository
  Name-Comment: Opennet Initiative e.V. - https://www.opennet-initiative.de/
  Name-Email: apt@opennet-initiative.de
  %no-protection
  "
echo -e "$ON_APT_KEYGEN" | gpg --batch --gen-key
gpg --export -a apt@opennet-initiative.de > ~/repository/keys/opennet-apt-key.asc

Für ausreichende Entropie bei GPGP Key Erstellung ggf.:

apt install haveged
systemctl start haveged

Sign-Release Shell Script, Ablage als ~/bin/sign-release.sh (chmod +x):

#!/bin/sh
[ -r "$1" ] || exit
rm -f Release.asc Release.gpg
gpg --sign --detach-sign -o Release.gpg "$1"
gpg --clearsign -o Release.asc "$1"

Konfiguration

dput

~/.dput.cf:

[opennet]
fqdn = downloads.opennet-initiative.de
method = scp
incoming = ~/repository/mini-dinstall/incoming
post_upload_command = mini-dinstall --batch 
allow_unsigned_uploads = 0
run_lintian = 1

mini-dinstall

~/.mini-dinstall.conf:

[DEFAULT]
architectures = all, amd64
archivedir = ~/repository
verify_sigs = 1
keyrings = /usr/share/keyrings/debian-keyring.gpg
extra_keyrings = ~/.gnupg/pubring.gpg
mail_to = dev@opennet-initiative.de
mail_on_success = 1
archive_style = flat
generate_release = 1
keep_old = 1
release_description = Opennet APT Repository
release_signscript = ~/bin/sign-release.sh 
[unstable]

Betrieb

Paket hochladen

Gebaute Pakete können von jedem beliebigen Host zum apt-Repository hochgeladen werden. Zuvor muss die obige dput.cf lokal angelegt werden.

  • Debian Packet prüfen (lokal):
lintian build/debian/*.changes
  • Debian Packet zum APT Repository hinzufügen (via scp und mini-dinstall - siehe obige dput.cf):
dput opennet build/debian/*.changes

Repository Verwaltung

Direkte Aktionen auf dem Repository (falls erforderlich) werden auf dem Repository-Host unter dem Nutzer-Account des Repositories durchgeführt.

  • manuelle Ausführung von mini-dinstall zur Fehlersuche
mini-dinstall --batch

Repository Einbindung


  • Opennet Repository GPG Public Key importieren und vertrauen:
wget -nv https://downloads.opennet-initiative.de/debian/keys/opennet-apt-key.asc -P prefix /etc/apt/trusted.gpg.d/
  • Opennet Repository in APT Sources aufnehmen:
apt install apt-transport-https
echo "deb https://downloads.opennet-initiative.de/debian/ unstable/" \
 > /etc/apt/sources.list.d/opennet-unstable.list
  • Kontrolle:
apt-key list
apt update

TODO

  • finale Installation APT Repo auf Server/ruri
    • Ansible: Rolle für APT Repository + SSH Keys (dput)
  • Fehler dput allow_unsigned_uploads "gpg SignatureVerifyError: 0" verbindet Signaturprüfung von dput
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge