Modifications entre les versions 4 et 20 (s'étendant sur 16 versions)
Version 4 à la date du 2008-01-15 17:08:52
Taille: 2388
Éditeur: ThomasNoël
Commentaire:
Version 20 à la date du 2008-02-27 09:16:17
Taille: 5590
Éditeur: ThomasNoël
Commentaire: ce n'est plus un projet, ça marche, c'est en production
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Cette page présente un projet de dépôt de paquets Debian/Ubuntu (au moins) accessible aisément via le système de gestion de paquets APT. ## page was renamed from Projet/DépôtAPT
Cette page présente le dépôt de paquets pour Debian et Ubuntu spécifiques à l'AUF.
Ligne 3: Ligne 4:
== Stratégie ==
 * création d'un nom DNS `apt.auf.org` dirigé dans un premier temps vers `apt.vn.auf.org` ''=> fait le 06/09/2007''
 * mise en place d'un dépôt `apt.vn.auf.org` (au BAP, Vietnam) géré par ProgFou '''=> septembre 2007'''
 * test de ce dépôt à l'échelle de l'ensemble des machines du Bureau Asie-Pacifique ''=> octobre 2007''
 * test de ce dépôt à l'échelle de l'ensemble des machines de la région Asie-Pacifique ''=> décembre 2007''
 * déplacement de ce dépôt sur un serveur à Montréal (ou Paris, ou mieux : les deux en miroir rsync) ''=> janvier 2008''
/* Bientôt ici du blabla pour dire à quoi ça sert, qui peut s'en servir, etc... */
Ligne 10: Ligne 6:
== Mise en place ==
 * création d'un serveur virtuel web `apt.vn.auf.org`
 * création de dossiers par distribution (objectifs différents pour Debian et Ubuntu)
 * création de compte utilisateurs avec accès sftp (très peu au début, plus ouvert ensuite)
  * les utilisateurs déposeront leurs paquets via leurs comptes
  * la signature des paquets sera ensuite vérifiée
  * puis les paquets seront transférés vers l'arborescence du dépôt
 * mise en place des clés SSH et GPG des utilisateurs
 * création d'une ''keyring'' (liste de clés) des utilisateurs
 * mise en place d'une technique de mise à jour des infos du dépôt :
  * faire un comparatif entre `apt-ftparchive` (que j'utilise déjà), `debarchiver` et `mini-dinstall`
  * mise en place d'une technique de signature de l'archive via GPG
= Accès aux paquets disponibles =
Ligne 23: Ligne 8:
= apt.auf.org = == Ajout de la clé GPG utilisée pour signer le dépôt ==
Ligne 25: Ligne 10:
Mise en place en cours par Thomas (et ses faibles connaissances en la matière). Il faut d'abord installer la clé publique GPG qui signe ce dépôt<<FootNote(et ça ajoute aussi la clé de celui de Dakar, en cadeau)>>.
Ligne 27: Ligne 12:
J'ai renoncé à mini-dinstall et autres solutions bancales pour tenter d'aller vers une gestion "classique" avec repertoire ''pool'' et séparation "composant par composant". Je suis donc allé vers [http://mirrorer.alioth.debian.org/ reprepro] ([http://packages.debian.org/etch/reprepro version etch])

L'idée est d'avoir au final des sources.list de ce genre là :
Ajouter dans le `sources.list` le dépôt AUF concernant votre distribution :
Ligne 31: Ligne 14:
# les paquets pour mise en place VoIP :
deb http://apt.auf.org/ etch voip
# les paquets pour mise en place RPV2 :
deb http://apt.auf.org/ etch rpv2
# les paquets pour un poste client Ubuntu :
deb http://apt.auf.org/ gutsy auf-desktop
# à ajouter dans /etc/apt/sources.list (ou créer un /etc/apt/sources.list.d/auf)
# remplacer distrib par etch, lenny, feisty, gutsy, hardy, ... selon votre système.
deb http://apt.auf.org/ distrib auf
Ligne 39: Ligne 19:
Où c'est que j'en suis : à 99%. J'écrirais la doc quand j'aurais moins mal aux yeux. Puis installer le paquet `auf-keyring` :
 {{{
# aptitude update
# aptitude install auf-keyring
}}}

'''Note''' : lors de la première installation de `auf-keyring` ''aptitude'' va vous demander de confirmer l'installation car il ne juge pas la source "sûre". Confirmez l'installation, la clé sera ajoutée, ''aptitude'' fera désormais confiance au dépôt AUF<<FootNote(On peut aussi faire "{{{wget -qO - http://apt.auf.org/auf-keyring.gpg | sudo apt-key add -}}}". C'est un peu plus rapide, mais ça ne mettra pas à jour automatiquement les clés AUF si on en ajoute dans le paquet auf-keyring.)>>.

== Configuration des sources de paquets (sources.list) ==

Ensuite ajouter les sources qui vous conviennent en fonction de ce que vous avez à mettre en place. Les lignes à ajouter dans le `sources.list` sont de la forme :
 {{{
deb http://apt.auf.org/ distribution composant
}}}

Exemples :
 {{{
# paquets pour la mise en place d'un serveur VoIP Asterisk AUF :
deb http://apt.auf.org/ etch voip
# paquets spécifiques à Dakar pour les postes clients Ubuntu Feisty :
# deb http://apt.auf.org/ feisty sn
}}}

= Pour ajouter ses petits paquets dans le dépôt =

Si vous savez fabriquer des paquets Debian ou Ubuntu, vous pouvez les mettre à disposition de vos collègue sur ce dépôt.

Pour cela, il faut :
 * savoir faire des beaux paquets Debian : `dpkg-buildpackage`, `dh-make`, retroportages, ...
 * savoir à quelle distribution sont destinés les paquets : etch, lenny, feisty, gutsy, hardy, ...
 * trouver un nom pour le composant : voip, rpv2, auf-desktop, votre-iso-pays, votre-nom, ...
 * avoir un compte ''ssh'' sur la machine `apt.auf` (accès à `apt.auf.org` via le RPV, demander à Moussa)
 * avoir un répertoire (''incoming'' ou tout autre nom poétique) configuré pour recevoir les paquets (le groupe `reprepro` doit y avoir les droits d'écriture)

Pour envoyer un paquet, on utilise '''dput''' (`aptitude install dput`) que l'on configure ainsi (dans `~/.dput.cf`) :
 {{{
# extrait de ~/.dput.cf (inspiré de /etc/dput.cf) :
[DEFAULT]
method = rsync
hash = md5
allow_unsigned_uploads = 1
run_lintian = 0
run_dinstall = 0
check_version = 0
default_host_main = test
fqdn = apt.auf

# par défaut on envoie ici :
[test]
incoming = ~/incoming/test

# mais on peut aussi envoyer ici en précisant "voip" comme paramètre "section" lors de l'appel à dput :
[voip]
incoming = ~/incoming/voip
}}}

Pour envoyer un paquet il suffit de faire :
 {{{
$ dput section nom-du-paquet.changes
}}}

Si tout va bien le paquet sera ajouté dans le dépôt 5 minutes plus tard (par cron) et un rapport vous sera envoyé par courriel.

= Comment ça marche à l'intérieur =

{{attachment:reprepro-apt-auf-org.png}}

Le système est basé sur [[http://mirrorer.alioth.debian.org/|reprepro]] ([[http://packages.debian.org/etch/reprepro|version etch]]). C'est ce logiciel qui gère le dépot : on lui dit quel paquet ajouter à quel composant de quelle distribution, et il gère le pool, les fichiers Release, Packages, Sources, etc. A côté, un serveur ''apache2'' propose le dépôt en HTTP.

Le principe : il y a un utilisateur virtuel "reprepro" sur le système, qui gère le dépôts. C'est cet utilisateur qui va lancer le logiciel "reprepro" avec les bons arguments. Il est le seul à avoir accès en écriture sur le dépôt.

 * `/srv/www/apt.auf.org/pool` et `.../dists` : le dépôt lui-même
 * `~reprepro/conf/` : configuration de reprepro, voir `man reprepro` pour explication :
 * `~reprepro/db/` : contient les bases de données internes de reprepro

Un script shell appelé `reprepro-incoming` lance le logiciel reprepro en lui disant d'aller chercher les paquets de tel composant pour telle distribution dans tel répertoire. La liste de ces paramètres est dans `~reprepro/incomings` :
 {{{
# Fichier ~reprepro/incomings
#
# Format d'une ligne :
# distrib composant repertoire email-pour-rapport
#
# voip : la config AUF d'asterisk 1.2 pour etch
etch voip /home/thomas/incoming/voip thomas.noel@auf.org
# voip-test : backport de asterisk 1.4 en cours
etch test-thomas /home/thomas/incoming/test thomas.noel@auf.org
}}}

Le script `reprepro-incoming` gère l'envoie de rapport par mail (dernier paramètre de chaque ligne d'appel). Il est lancé par '''cron toutes les 5 minutes'''.

Pour info, le script dans sa version du 11 février 15h TU : [[attachment:reprepro-incoming]]

= Il reste à faire =

 * regarder le [[http://packages.debian.org/etch-backports/reprepro|backport de reprepro]] et notamment son "processincoming"

------
Notes de bas de page :

Cette page présente le dépôt de paquets pour Debian et Ubuntu spécifiques à l'AUF.

Accès aux paquets disponibles

Ajout de la clé GPG utilisée pour signer le dépôt

Il faut d'abord installer la clé publique GPG qui signe ce dépôt1.

Ajouter dans le sources.list le dépôt AUF concernant votre distribution :

  • # à ajouter dans /etc/apt/sources.list (ou créer un /etc/apt/sources.list.d/auf) 
    # remplacer distrib par etch, lenny, feisty, gutsy, hardy, ... selon votre système.
    deb http://apt.auf.org/ distrib auf

Puis installer le paquet auf-keyring :

  • # aptitude update
    # aptitude install auf-keyring

Note : lors de la première installation de auf-keyring aptitude va vous demander de confirmer l'installation car il ne juge pas la source "sûre". Confirmez l'installation, la clé sera ajoutée, aptitude fera désormais confiance au dépôt AUF2.

Configuration des sources de paquets (sources.list)

Ensuite ajouter les sources qui vous conviennent en fonction de ce que vous avez à mettre en place. Les lignes à ajouter dans le sources.list sont de la forme :

  • deb http://apt.auf.org/ distribution composant

Exemples :

  • # paquets pour la mise en place d'un serveur VoIP Asterisk AUF :
    deb http://apt.auf.org/ etch voip
    # paquets spécifiques à Dakar pour les postes clients Ubuntu Feisty :
    # deb http://apt.auf.org/ feisty sn

Pour ajouter ses petits paquets dans le dépôt

Si vous savez fabriquer des paquets Debian ou Ubuntu, vous pouvez les mettre à disposition de vos collègue sur ce dépôt.

Pour cela, il faut :

  • savoir faire des beaux paquets Debian : dpkg-buildpackage, dh-make, retroportages, ...

  • savoir à quelle distribution sont destinés les paquets : etch, lenny, feisty, gutsy, hardy, ...
  • trouver un nom pour le composant : voip, rpv2, auf-desktop, votre-iso-pays, votre-nom, ...
  • avoir un compte ssh sur la machine apt.auf (accès à apt.auf.org via le RPV, demander à Moussa)

  • avoir un répertoire (incoming ou tout autre nom poétique) configuré pour recevoir les paquets (le groupe reprepro doit y avoir les droits d'écriture)

Pour envoyer un paquet, on utilise dput (aptitude install dput) que l'on configure ainsi (dans ~/.dput.cf) :

  • # extrait de ~/.dput.cf (inspiré de /etc/dput.cf) :
    [DEFAULT]
    method                  = rsync
    hash                    = md5
    allow_unsigned_uploads  = 1
    run_lintian             = 0
    run_dinstall            = 0
    check_version           = 0
    default_host_main       = test
    fqdn                    = apt.auf
    
    # par défaut on envoie ici :
    [test]
    incoming                = ~/incoming/test
    
    # mais on peut aussi envoyer ici en précisant "voip" comme paramètre "section" lors de l'appel à dput :
    [voip]
    incoming                = ~/incoming/voip

Pour envoyer un paquet il suffit de faire :

  • $ dput section nom-du-paquet.changes

Si tout va bien le paquet sera ajouté dans le dépôt 5 minutes plus tard (par cron) et un rapport vous sera envoyé par courriel.

Comment ça marche à l'intérieur

reprepro-apt-auf-org.png

Le système est basé sur reprepro (version etch). C'est ce logiciel qui gère le dépot : on lui dit quel paquet ajouter à quel composant de quelle distribution, et il gère le pool, les fichiers Release, Packages, Sources, etc. A côté, un serveur apache2 propose le dépôt en HTTP.

Le principe : il y a un utilisateur virtuel "reprepro" sur le système, qui gère le dépôts. C'est cet utilisateur qui va lancer le logiciel "reprepro" avec les bons arguments. Il est le seul à avoir accès en écriture sur le dépôt.

  • /srv/www/apt.auf.org/pool et .../dists : le dépôt lui-même

  • ~reprepro/conf/ : configuration de reprepro, voir man reprepro pour explication :

  • ~reprepro/db/ : contient les bases de données internes de reprepro

Un script shell appelé reprepro-incoming lance le logiciel reprepro en lui disant d'aller chercher les paquets de tel composant pour telle distribution dans tel répertoire. La liste de ces paramètres est dans ~reprepro/incomings :

  • # Fichier ~reprepro/incomings
    #
    # Format d'une ligne :
    # distrib composant repertoire email-pour-rapport
    #
    # voip : la config AUF d'asterisk 1.2 pour etch
    etch voip        /home/thomas/incoming/voip      thomas.noel@auf.org
    # voip-test : backport de asterisk 1.4 en cours
    etch test-thomas /home/thomas/incoming/test      thomas.noel@auf.org

Le script reprepro-incoming gère l'envoie de rapport par mail (dernier paramètre de chaque ligne d'appel). Il est lancé par cron toutes les 5 minutes.

Pour info, le script dans sa version du 11 février 15h TU : reprepro-incoming

Il reste à faire


Notes de bas de page :

  1. et ça ajoute aussi la clé de celui de Dakar, en cadeau (1)

  2. On peut aussi faire "wget -qO - http://apt.auf.org/auf-keyring.gpg | sudo apt-key add -". C'est un peu plus rapide, mais ça ne mettra pas à jour automatiquement les clés AUF si on en ajoute dans le paquet auf-keyring. (2)

DépôtAPT/EnvoyerSesPaquets (dernière édition le 2011-03-11 03:14:48 par JeanChristopheAndré)