• [^] # Re: Paquet pour les interfaces ?

    Posté par . En réponse à la dépêche Sortie de YunoHost 4.2. Évalué à 3. Dernière modification le 27 juin 2021 à 12:19.

    Attention, toutes les commandes présentées ici le sont depuis un hôte Debian, il peut y avoir des variations subtiles sur une autre distro.

    Pour créer le conteneur :

    lxc-create -n moncontenur -t debian -- -r buster

    Chez moi, j’utilise une partition /var/lib/lxc formatée en BTRFS, par défaut la racine du conteneur /var/lib/lxc/monconteneur/rootfs est créée dans un sous-volume, ce qui facilite les instantanés en cas de grosse tuile.

    Tu peux éditer le fichier /var/lib/lxc/monconteneur/config, le miens ressemble à ça pour mon conteneur YunoHost :

    # Template used to create this container: /usr/share/lxc/templates/lxc-debian
    # Parameters passed to the template: -r stretch # Oui, mais le conteneur a été mis à jour depuis.
    # Template script checksum (SHA-1): 5a35ad98c578f5487dc5712a1c7d38af399be813
    # For additional config options, please look at lxc.container.conf(5)
    # Uncomment the following line to support nesting containers:
    lxc.include = /usr/share/lxc/config/nesting.conf
    # (Be aware this has security implications)
    ##lxc.net.0.type = empty
    lxc.net.0.type = veth
    lxc.net.0.flags = up
    lxc.net.0.link = bridge0 # Attention, le pont doit être configuré sur l’hôte pour que cela fonctionne, sinon il faudra utiliser une autre méthode de partage du réseau. Il faut aussi régler le réseau dans le conteneur, via le fichier /etc/network/interfaces ou NetworkManager.
    lxc.net.0.name = eth0
    lxc.net.0.ipv4 = [Mettre ici l’adresse IPv4 souhaitée ou rien si le DHCP du réseau s’en occupe] # Pareil pour IPv6 d‘ailleurs, mais chez moi les réglages réseau dans le conteneur s’en occupent.
    lxc.net.0.hwaddr = [Choisir ici une adresse MAC]
    lxc.net.0.veth.pair = veth01
    lxc.apparmor.profile = generated
    lxc.apparmor.allow_nesting = 1 # Important au cas où un paquet YunoHost décide de créer un conteneur dans le conteneur, je n’en ai pas d’exemple mais ça pourrait arriver. Une partie est peut-être redondante avec la ligne lxc.include = /usr/share/lxc/config/nesting.conf plus haut.
    lxc.rootfs.path = dir:/var/lib/lxc/monconteneur/rootfs
    # Common configuration
    lxc.include = /usr/share/lxc/config/debian.common.conf
    # Container specific configuration
    lxc.tty.max = 4
    lxc.uts.name = monconteneur
    lxc.arch = armhf # À adapter évidemment, mais normalement ces lignes sont de toutes façons générées automatiquement par la commande lxc-create.
    lxc.pty.max = 1024
    # Mount points
    lxc.mount.entry = /mnt/userdata/mail var/mail none bind 0 0 # Là c’est au choix, mais j’enregistre les données des utilisateurs en dehors du conteneur.
    lxc.mount.entry = /mnt/userdata/home home none bind 0 0
    # Auto-start
    lxc.start.auto = 1
    lxc.start.delay = 120

    Ensuite, tu le démarres et t‘y connectes si tu veux :

    lxc-start -n monconteneur
    lxc-attach -n moncontenur

    puis Ctrl-D pour sortir.

    À partir de là, tu as un conteneur LXC avec une Debian à la vanille, reste à installer YunoHost :

    echo deb http://forge.yunohost.org/debian/ buster stable > /var/lib/lxc/monconteneur/rootfs/etc/apt/sources.list.d/yunohost.list
    lxc-attach -n moncontenur
    apt update
    apt upgrade
    apt install curl
    curl https://install.yunohost.org | bash # On peut aussi télécharger le script et regarder ce qu’il fait avant de le lancer aveuglément.

    Et tadaaaaaa ! Une fois que tu as finis d‘installer YunoHost, tu peux même désactiver la connexion en SSH dessus puisque ton conteneur est accessible depuis l’hôte. Enfin, de toute façon à partir de là, on fait ce qu’on veut, on est chez soi, et puis y’a toujours les instantanés BTRFS qu’on peut faire à tout moment pour garder un filet de sécurité.

    Note: toutes ces commandes ont été retranscrites de mémoire, il ne faut pas les recopier aveuglément mais elles devraient bien décrire la démarche générale.

    Plus d’infos sur https://yunohost.org/fr/install/hardware:vps_debian.