Reprenez le contrôle de vos données avec votre cloud auto-hébergé
Source : Wikipedia
host cloud.gg42.eu
host 51.15.240.32
host collabora.gg42.eu
# Installation de git
apt update && apt install -y git
# Clonage du dépôt
git clone https://github.com/AlbanVidal/cloud_full.git
cd cloud_full
# Configuration de l'hôte, installation de lxd via snapd
./10_install_start.sh
# Création et configuration des conteneurs
./11_install_next.sh
# Depuis l'hôte cloud
# Lister les conteneurs
lxc ls
# Créer et démarrer des conteneurs
lxc launch images:debian/stretch debian-9
lxc launch images:debian/buster debian-10
# Créer sans démarrer
lxc init images:ubuntu/18.04 ubuntu-1804
lxc init images:centos/7 centos-7
# Copier un conteneur
lxc copy debian-10 d10
# Démarrer le conteneur copié
lxc start d10
# Entrer dans un shell
lxc shell d10
# Exécuter une commande simple
lxc exec d10 -- hostname
# Exécuter une commande plus complexe
lxc exec d10 -- bash -c "hostname;date && uptime"
# Copier un fichier vers le conteneur
lxc file push /etc/hosts d10/tmp/test-push
lxc exec d10 -- cat /tmp/test-push
# Récupération d'un fichier du conteneur
lxc file pull d10/etc/network/interfaces d10-interfaces
cat d10-interfaces
# Création d'un snapshot
lxc snapshot d10 initial
lxc ls d10
# Destruction volontaire de fichiers
# Couche 8 du modèle OSI
lxc exec d10 -- rm -rf /etc
# Vérification de la grosse boulette
lxc exec d10 -- ls -l /etc
# Restauration du snapshot
lxc restore d10 initial
# Vérification de la restauration
lxc exec d10 -- ls -l /etc
# Supprimer le snapshot
lxc delete d10/initial
# Limiter la mémoire
lxc exec d10 -- free -m
lxc config set d10 limits.memory 128MB
lxc exec d10 -- free -m
# Limiter le nombre de cpu
lxc shell d10
## top
lxc config set d10 limits.cpu 1
lxc shell d10
# Supprimer les limites
lxc config unset d10 limits.memory
lxc config unset d10 limits.cpu
# Lister les conteneurs avec les profils attachés
lxc ls --fast
# Lister les profils
lxc profile list
# Ajouter un profil
lxc profile create 1cpu512ram
lxc profile set 1cpu512ram limits.cpu 1
lxc profile set 1cpu512ram limits.memory 512MB
# Afficher le profil
lxc profile show 1cpu512ram
# Ajouter le profil à un conteneur
lxc profile add d10 1cpu512ram
# Supprimer les profil
lxc profile delete 1cpu512ram
# Status, type, profils, processus, mémoiré, réseau, snapshots...
lxc info d10
# Image, type (éphémère ou non), profils...
lxc config show d10
# Activation du mote distant sur l'hôte « demo »
lxc config set core.https_address [::]:8443
lxc config set core.trust_password MonMotDePasse
# Ajout de l'hôte « demo » depuis l'hôte « cloud »
lxc config set core.https_address [::]:8443
lxc remote add demo demo.gg42.eu
lxc remote list
# Lister les conteneurs sur l'hôte distant
lxc list demo:
# Actions sur un conteneur distant
lxc exec demo:rvprx -- hostname
# Ouvrir un shell sur un conteneur distant
lxc shell demo:rvprx
# Déplacer un conteneur
lxc stop d10
lxc profile remove d10 1cpu512ram
lxc move local:d10 demo:
lxc list
lxc list demo:
# Ouvrir un shel sur le conteneur copié
lxc start demo:d10
lxc shell demo:d10
# Installation de snapd
apt update && apt install snapd udev btrfs-tools
# Installation lxd via snap en version LTS
## version 2.0 (11/04/2016) Juin 2021
## version 3.0 (02/04/2018) Juin 2023
snap install lxd --channel=3.0
# Initialisation lxd
lxd init
NE PAS UTILISER EN PRODUCTION - TESTS SEULEMENT
# Ajout clé dépôt
wget -O - http://deb.zordhak.fr/gpg.key|apt-key add -
# Ajout dépôt
wget -O /etc/apt/sources.list.d/deb.zordhak.fr.list http://deb.zordhak.fr/deb.zordhak.fr.list
# Installation LXD
apt update && apt install lxd udev btrfs-tools
# Initialisation lxd
lxd init
# Reboot pour prise en compte utilisateur non privilégié
systemctl reboot
# Ajout du dépôt Sid
echo 'deb http://ftp.fr.debian.org/debian/ sid main' > /etc/apt/sources.list.d/sid.list
# Changement de la priorité du dépôt sid
echo -e 'Package: *\nPin: release a=unstable\nPin-Priority: 50' > /etc/apt/preferences.d/sid
# Installation de criu
apt update && apt install criu
lxc move [<remote>:]<container>[/<snapshot>] [<remote>:][<container>[/<snapshot>]] [--container-only]
# Création d'un conteneur sur « lxd1 » et installation openssh
lxc launch images:debian/buster d10
lxc exec d10 -- bash -c "apt update && apt install openssh-server screen"
# Mot de passe root et configuration ssh POUR LES TESTS !
lxc exec d10 -- bash -c "passwd"
lxc exec d10 -- sed -i 's/#\(PermitRootLogin\).*/\1 yes/' /etc/ssh/sshd_config
lxc exec d10 -- systemctl restart sshd
# Connexion ssh et ouverture de screen
ssh root@<IP-d10>
# Dans la session ssh
screen
# Dans le screen
top
# Détacher le screen, sortir du conteneur
<Ctrl> + a d
exit
# Ajouter « lxd2 » depuis « lxd1 »
lxc remote add lxd2 lxd2.gg42.eu
# Déplacement du conteneur
lxc move d10 lxd2:
# Depuis le noeud nextcloud se connecter en ssh et ouvrir screen
ssh root@<IP-d10>
# Dans la session ssh
screen -ls
screen -x
git clone https://github.com/hakimel/reveal.js.git
cd reveal.js
wget -q https://doc.zordhak.fr/meetup-md -O Présentation_Meetup_cloud_privé.md
wget -q https://doc.zordhak.fr/meetup-html -O Présentation_Meetup_cloud_privé.html
Alban Vidal