Skip to content

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

curl -fsSL http://VOTRE_HOTE:80/repos/dists/jammy/InRelease \
  | gpg --dearmor \
  | sudo tee /etc/apt/trusted.gpg.d/repod.gpg > /dev/null
  1. Ouvrir Paramètres → GPG dans l'interface Repod
  2. Cliquer Copier la clé publique
  3. Sur la machine cliente :
    echo "COLLER_LA_CLE_ICI" | gpg --dearmor \
      | sudo tee /etc/apt/trusted.gpg.d/repod.gpg > /dev/null
    

É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

sudo apt update
sudo apt install monpaquet

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

sudo rpm --import http://VOTRE_HOTE:80/repos/gpg.key

É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

sudo dnf makecache --repo=repod
sudo dnf install monpaquet

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)

/etc/apt/auth.conf.d/repod.conf
machine VOTRE_HOTE:80
login token
password VOTRE_TOKEN_API
/etc/yum.repos.d/repod.repo
[repod]
...
username=token
password=VOTRE_TOKEN_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

Guide de dépannage complet →