Configuration des clients¶
Configurer les machines pour installer des paquets depuis votre dépôt Repod.
Prérequis¶
- Le serveur Repod est démarré et accessible depuis la machine cliente
- Au moins un paquet a été uploadé et publié
- La clé GPG publique du dépôt est disponible (Paramètres → GPG)
Clients APT (Debian / Ubuntu)¶
Étape 1 — Importer la clé GPG¶
Étape 2 — Ajouter la source APT¶
# Remplacer 'jammy' par le nom de code de votre distribution cible
echo "deb http://VOTRE_HOTE:80/repos jammy main" \
| sudo tee /etc/apt/sources.list.d/repod.list
Étape 3 — Mettre à jour et installer¶
Plusieurs distributions¶
/etc/apt/sources.list.d/repod.list
# Paquets Ubuntu 22.04
deb http://VOTRE_HOTE:80/repos jammy main
# Paquets Ubuntu 24.04 (si vous maintenez des paquets séparés par version)
deb http://VOTRE_HOTE:80/repos noble main
Rôle Ansible¶
configure-repod.yml
---
- name: Configurer le dépôt APT Repod
hosts: all
become: true
tasks:
- name: Importer la clé GPG Repod
ansible.builtin.get_url:
url: "http://VOTRE_HOTE:80/repos/gpg.key"
dest: /tmp/repod.asc
- name: Convertir et installer la clé
ansible.builtin.shell: |
gpg --dearmor < /tmp/repod.asc > /etc/apt/trusted.gpg.d/repod.gpg
- name: Ajouter la source APT
ansible.builtin.apt_repository:
repo: "deb http://VOTRE_HOTE:80/repos {{ ansible_distribution_release }} main"
filename: repod
state: present
update_cache: yes
Clients RPM — DNF (AlmaLinux / RHEL / Rocky / Fedora)¶
Étape 1 — Importer la clé GPG¶
Étape 2 — Créer le fichier de dépôt¶
/etc/yum.repos.d/repod.repo
[repod]
name=Repod Private Repository
baseurl=http://VOTRE_HOTE:80/repos/almalinux9/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://VOTRE_HOTE:80/repos/gpg.key
repo_gpgcheck=0
metadata_expire=300
Étape 3 — Installer des paquets¶
URLs par distribution¶
| Distribution | baseurl |
|---|---|
| AlmaLinux 8 | http://VOTRE_HOTE:80/repos/almalinux8/x86_64/ |
| AlmaLinux 9 | http://VOTRE_HOTE:80/repos/almalinux9/x86_64/ |
| Rocky Linux 9 | http://VOTRE_HOTE:80/repos/rocky9/x86_64/ |
| Fedora 42 | http://VOTRE_HOTE:80/repos/fedora/x86_64/ |
| openSUSE Leap 15.6 | http://VOTRE_HOTE:80/repos/opensuse-leap-15.6/x86_64/ |
Clients RPM — Zypper (openSUSE)¶
sudo zypper addrepo \
--name "Repod Private Repository" \
--gpgcheck \
http://VOTRE_HOTE:80/repos/opensuse-leap-15.6/x86_64/ \
repod
sudo rpm --import http://VOTRE_HOTE:80/repos/gpg.key
sudo zypper refresh repod
sudo zypper install monpaquet
Accès authentifié (tokens API)¶
CI/CD¶
.github/workflows/install.yml
- name: Configurer le dépôt Repod (APT)
run: |
curl -fsSL http://${{ secrets.REPOD_HOST }}/repos/dists/jammy/InRelease \
| gpg --dearmor \
| sudo tee /etc/apt/trusted.gpg.d/repod.gpg > /dev/null
echo "deb http://${{ secrets.REPOD_HOST }}/repos jammy main" \
| sudo tee /etc/apt/sources.list.d/repod.list
sudo apt update
sudo apt install monpaquet
.gitlab-ci.yml
install:
before_script:
- |
curl -fsSL http://${REPOD_HOST}/repos/dists/jammy/InRelease \
| gpg --dearmor \
| tee /etc/apt/trusted.gpg.d/repod.gpg > /dev/null
echo "deb http://${REPOD_HOST}/repos jammy main" \
> /etc/apt/sources.list.d/repod.list
apt-get update -qq
script:
- apt-get install -y monpaquet
Résolution de problèmes¶
| Problème | Cause probable | Solution |
|---|---|---|
NO_PUBKEY lors de apt update |
Clé GPG non importée ou expirée | Ré-exécuter la commande d'import de clé |
404 Not Found lors de apt update |
Nom de distribution incorrect | Vérifier le codename dans sources.list |
GPG key retrieval failed sur dnf |
Clé non importée | Exécuter rpm --import ... |
| Version de paquet obsolète | Cache metadata trop long | dnf makecache ou apt update |