
Procédure
Déploiement d'un container LXC Ubuntu18.04 depuis un hôte Manjaro Linux.
Installation
yay -S lxc
yay -S lxd
sudo usermod -aG lxd $USER
sudo systemctl enable lxd
reboot
Configuration
# Créer ensuite des bridges, pools et autres joyeusetés selon ses besoins
sudo lxd init
Modifier le fichier /etc/lxc/default.conf
pour y ajouter :
lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536
Créer le fichier /etc/subuid
:
root:1000:1
root:100000:65536
Et le fichier /etc/subgid
:
root:1000:1
root:100000:65536
Création et lancement d'un container Ubuntu Server 18.04
sudo lxc launch ubuntu:18.04 rcwd
Et pour un accès terminal :
lxc exec rcwd -- /bin/bash # root
lxc exec rcwd -- su ubuntu # regular user
Montage
Du container vers l'hôte (avec bindfs)
sudo mkdir /mnt/lxc_ubuntu_server_18.04_web_root
# Utilisation de bindfs pour pouvoir monter en tant qu'utilisateur
sudo bindfs -u chinaskijr /var/lib/lxd/containers/rcwd/rootfs/var/www/html/ /mnt/lxc_ubuntu_server_18.04_web_root
De l'hôte vers le container
On va router vers un container non privilégié l'user 1000 à l'user www-data sur place.
# Le montage "écrase" les autres fichiers, le mettre dans un dossier vide
lxc config device add rcwd phpstorm_projects disk source=/home/chinaskijr/PhpstormProjects path=/var/www/html/xenon_phpstorm_projects
# Bind l'utilisateur courant de l'hôte sur www-data de rcwd
lxc config set rcwd raw.idmap "both 1000 33"
lxc restart rcwd
Création d'un proxy
# Le serveur web du container sera accessible sur `localhost:8080`
lxc config device add rcwd port80 proxy listen=tcp:0.0.0.0:8080 connect=tcp:127.0.0.1:80ç
# Pour accéder à la base de données PostgreSQL depuis PHPStorm
lxc config device add rcwd port5432 proxy listen=tcp:0.0.0.0:8081 connect=tcp:127.0.0.1:5432
Virtual Hosts et sous-domaines
On se fait plaisir avec des VirtualHost
<VirtualHost *:80>
DocumentRoot /var/www/html/xenon_phpstorm_projects/thesee
Servername thesee.localhost
# Le reste de la conf...
</VirtualHost>
Thésée est accessible à l'adresse thesee.localhost:8080
Actions à mener après une installation Ubuntu 18.04
Encodage des caractères
Dans le fichier /etc/locale.gen
décommenter la ligne
Fr_FR.UTF-8
Puis lancer les commandes suivantes
sudo locale-gen
systemctl restart postgresql