Étiquette : Cluster

  • #YunoHost: un hébergement auto‑géré à la portée de tous

    #YunoHost: un hébergement auto‑géré à la portée de tous

    1. Pourquoi choisir YunoHost ?

    YunoHost est une distribution serveur basée sur Debian qui vise à rendre l’auto‑hébergement accessible à tous, même à ceux qui n’ont que très peu de connaissances systèmes. Le projet repose sur le principe : « Why you no host ? » – pourquoi ne pas héberger soi‑même ? Il regroupe toutes les étapes d’installation et de gestion d’un serveur dans une interface web simple et claire, tout en conservant la robustesse et la sécurité de Debian [3].

    • Installation en quelques clics – le script d’installation officiel prépare le système, crée le premier compte admin, configure le domaine et le routeur, puis vous accueille sur une interface d’administration intuitive [5].
    • Catalogues d’applications – plus de 500 apps (Nextcloud, WordPress, Roundcube, etc.) peuvent être déployées en un seul clic, sans toucher à la ligne de commande [1][5].
    • Gestion centralisée des comptes – les utilisateurs sont créés via LDAP, les droits sont attribués de façon granulaire et un portail SSO permet un accès unique à toutes les applications installées [5].

    2. Usages typiques

    Type d’utilisateur Besoins couverts par YunoHost Exemple d’applications
    Particuliers / Familles Stockage de fichiers, synchronisation de contacts et calendriers, partage de photos, site personnel ou blog Nextcloud, WordPress, Piwigo
    Associations, petits groupes Boîtes mails avec domaine propre, site vitrine, outil de collaboration (chat, wiki) Roundcube, DokuWiki, Mattermost
    Petites entreprises Gestion de comptes multiples, facturation, CRM léger, sauvegardes automatisées Firefly III (comptabilité), Kanboard, Gitlab (déploiement limité)
    Développeurs & makers Installation de services personnalisés via MyWebapp ou conteneurs légers, test d’applications MyWebapp, Docker‑compatible (via scripts)
    Éducation / Laboratoire Création d’environnements d’apprentissage, partage de ressources pédagogiques Moodle, Jupyter Hub (via app)

    Ces scénarios sont directement supportés par le catalogue officiel ; si l’application désirée n’y figure pas, il est possible de créer une custom webapp ou d’installer le logiciel manuellement tout en profitant de la configuration Nginx, DNS, certificats Let’s Encrypt gérée par YunoHost [5].

    3. Choix du matériel

    YunoHost tourne sur tout hardware capable d’exécuter Debian 12 (Bookworm). La flexibilité du projet vous permet de l’installer :

    Plateforme Configuration minimale recommandée Points forts
    Raspberry Pi 3/4 1 Go RAM, carte SD ou SSD USB, connexion Ethernet Faible consommation, idéal pour un petit serveur maison ou une association
    Box ARM (Odroid, Orange Pi, etc.) 2 Go RAM, stockage SSD Bon compromis performance/énergie
    VPS/Dédié 1–2 Go RAM, 1 vCPU (minimum) – 2 vCPU pour plus d’apps Accès réseau stable, évolutif à la demande
    Serveur x86 / x86‑64 2 Go RAM, 20 Go SSD, 1 vCPU (plus selon charge) Support complet des services lourds (Nextcloud + mail)

    Le projet recommande 512 Mo de RAM comme minimum, mais pour un usage multi‑applications (mail + Nextcloud + site) il est conseillé d’avoir 2–4 Go de RAM et au moins 15 Go de SSD afin d’éviter les lenteurs [8]. Sur un Raspberry Pi 3, YunoHost fonctionne très bien pour un petit site web, un Nextcloud et quelques comptes mails ; en revanche, un Pi 1 est souvent jugé trop limité en performances [9].

    4. Sécurité et maintenance

    • Certificats SSL automatisés grâce à Let’s Encrypt ; le renouvellement est géré en tâche de fond [5].
    • Pare‑feu nftables et fail2ban intégrés pour protéger les services contre les attaques courantes [5].
    • Sauvegardes intégrées – chaque application dispose d’un mécanisme de snapshot qui peut être exporté automatiquement sur un stockage externe [5].
    • Mises à jour régulières – le cœur YunoHost et les apps sont mis à jour via le gestionnaire de paquets APT/Dpkg ; les versions stables sont publiées régulièrement (ex. 12.1.6.1 en mai 2025) [3][4].

    5. Conclusion

    YunoHost se démarque par sa simplicité d’utilisation (interface web, installation en un clic), son catalogue riche d’applications et sa flexibilité matérielle (du Pi 3 à un serveur dédié). Que vous soyez un particulier souhaitant reprendre le contrôle de vos données, une petite association cherchant un espace collaboratif, ou une PME qui veut un serveur interne sans complexité, YunoHost propose une solution prête à l’emploi, sécurisée et évolutive.

    « YunoHost : le serveur qui se configure tout seul pour que vous puissiez enfin garder la main sur vos services numériques » — le leitmotiv du projet [1][5].

    Fediverse Reactions
  • Déploiement d’un cluster Docker Swarm

    Déploiement d’un cluster Docker Swarm




    Déployer un cluster Docker Swarm avec GlusterFS et Keepalived : guide rapide étape par étape

    Dans cet article, je vous guide dans le déploiement d’un cluster Docker Swarm haute disponibilité, avec un stockage partagé via GlusterFS et une IP virtuelle avec Keepalived. Chaque étape est détaillée pour que vous puissiez reproduire cette architecture chez vous.




    Prérequis

    3 machines ou plus (physiques ou virtuelles)

    OS : Debian 11/12 ou Ubuntu 22.04 recommandé

    Un accès sudo sur tous les nœuds

    Une interface réseau commune (ex: eth0) sur tous les nœuds

    Des noms d’hôtes configurés proprement





    Étape 1 – Configuration réseau de base

    Modifier /etc/hosts

    Sur chaque nœud, éditez le fichier /etc/hosts pour inclure tous les nœuds :

    sudo nano /etc/hosts

    Ajoutez (adapter les IP/Noms) :

    192.168.1.11 ds1
    192.168.1.12 ds2
    192.168.1.13 ds3




    Étape 2 – Keepalived : IP virtuelle flottante

    Nous allons créer une IP virtuelle (VIP) partagée entre deux nœuds (ds1 et ds2).

    Installer Keepalived

    Sur les deux nœuds concernés :

    sudo apt install keepalived

    Configuration sur le nœud principal (ds1)

    sudo nano /etc/keepalived/keepalived.conf

    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass secret
        }
        virtual_ipaddress {
            192.168.1.100
        }
    }

    Configuration sur le nœud secondaire (ds2)

    Changer state en BACKUP et priority à 90.

    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass secret
        }
        virtual_ipaddress {
            192.168.1.100
        }
    }

    Démarrer Keepalived :

    sudo systemctl enable –now keepalived




    Étape 3 – Installation de GlusterFS

    Nous allons créer un volume partagé et répliqué.

    Installer GlusterFS

    Sur chaque nœud :

    sudo apt install glusterfs-server -y
    sudo systemctl enable –now glusterd

    Préparer les briques de stockage

    Sur chaque nœud :

    sudo mkdir -p /mnt/brick/volume1

    (Si possible, utiliser un disque dédié monté ici)

    Former le cluster

    Depuis ds1 :

    gluster peer probe ds2
    gluster peer probe ds3

    Vérifier :

    gluster peer status

    Créer le volume GlusterFS

    Toujours sur ds1 :

    gluster volume create docker-volume replica 3 \
      ds1:/mnt/brick/volume1 \
      ds2:/mnt/brick/volume1 \
      ds3:/mnt/brick/volume1
    gluster volume start docker-volume

    Monter le volume

    Sur chaque nœud :

    sudo mkdir -p /mnt/docker
    sudo mount -t glusterfs ds1:/docker-volume /mnt/docker

    Pour rendre cela persistant :

    echo « ds1:/docker-volume /mnt/docker glusterfs defaults,_netdev 0 0 » | sudo tee -a /etc/fstab




    Étape 4 – Installation de Docker

    Sur chaque nœud :

    sudo apt update
    sudo apt install -y \
        ca-certificates \
        curl \
        gnupg \
        lsb-release

    Ajouter le dépôt officiel Docker :

    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

    echo \
      « deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
      https://download.docker.com/linux/debian \
      $(lsb_release -cs) stable » | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    Installer Docker :

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io -y
    sudo systemctl enable docker –now




    Étape 5 – Initialisation de Docker Swarm

    Initialiser le cluster (sur ds1)

    docker swarm init –advertise-addr 192.168.1.11

    Note le token donné pour l’ajouter sur les autres nœuds.

    Joindre les autres nœuds (ds2, ds3)

    docker swarm join –token SWMTKN-… 192.168.1.11:2377

    Promouvoir en manager (si besoin) :

    docker node promote ds2
    docker node promote ds3




    Étape 6 – Installation de Portainer

    Portainer permet de gérer ton cluster via une interface web.

    Créer un volume pour Portainer

    docker volume create portainer_data

    Déployer Portainer dans Swarm

    docker service create \
      –name portainer \
      –publish 9000:9000 \
      –constraint ‘node.role == manager’ \
      –mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
      –mount type=volume,src=portainer_data,dst=/data \
      –replicas=1 \
      portainer/portainer-ce:latest

    Accessible via : http://<IP-VIRTUELLE>:9000




    Et après ?

    Déploie tes stacks dans /mnt/docker

    Utilise docker stack deploy pour les lancer

    Ajoute des nœuds ou services à volonté

    Pense à superviser ton cluster et tes volumes

    Fediverse Reactions