Outils pour utilisateurs

Outils du site


yunohost_un_container_lxc

Ceci est une ancienne révision du document !


Yunohost dans un container LXC

Installation du container LXC

Créer le container avec comme nom ynh

lxc-create -n ynh -t download -- -d debian -r buster -a amd64

La config du container

nano /var/lib/lxc/ynh/config
# Template used to create this container: /usr/share/lxc/templates/lxc-download
# Parameters passed to the template: -d debian -r buster -a amd64
# Distribution configuration
lxc.include = /usr/share/lxc/config/common.conf
lxc.arch = linux64
# Container specific configuration
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
lxc.rootfs.path = dir:/var/lib/lxc/ynh/rootfs
lxc.uts.name = ynh
# Network configuration
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:dd:91:8b

Démarrer le container

lxc-start ynh

Vérifier et lister les container

lxc-ls -f
NAME STATE   AUTOSTART GROUPS IPV4       IPV6 UNPRIVILEGED 
ynh  RUNNING 0         -      10.0.3.243 -    false

Entrer dans le container

lxc-attach ynh
root@ynh:~#

Configurations complémentaires de l'hôte à prendre en compte :

Config LXC

Faire marcher le système de gestion du temps, ajouter une config pour les containers LXC : Yes, every option you place in files you include in /usr/share/lxc/config/common.conf.d/ will be automatically included. So if you do something like:

nano /usr/share/lxc/config/common.conf.d/01-sys-time.conf

y ajouter

lxc.cap.drop =
lxc.cap.drop = mac_admin mac_override sys_module sys_rawio

Redémarrer le container

lxc-stop ynh
lxc-start ynh

Voir également les fichiers de config génériques de lxc

nano /etc/default/lxc
nano /etc/default/lxc-net

Apache vhost proxy vers le container

Apache va servir de proxy pour renvoyer le traffic au container yunohost, une fois apache installé, on lui rajoute des bouts

a2enmod expires headers ssl proxy proxy_http proxy_html proxy_wstunnel

Installer un certificat https avec certbot et un vhost type

On constitue ensuite un vhost proxy pour le https, le http redirige systématiquement sur ce vhost

nano /etc/apache2/sites-available/ynh.futuretic.fr-le-ssl.conf 
<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerAdmin     tech@futuretic.fr
                ServerName      ynh.futuretic.fr
 
                SSLEngine on
                SSLProxyEngine On
                SSLCertificateFile /etc/letsencrypt/live/ynh.futuretic.fr/fullchain.pem
                SSLCertificateKeyFile /etc/letsencrypt/live/ynh.futuretic.fr/privkey.pem
                Include /etc/letsencrypt/options-ssl-apache.conf
 
	        ProxyPreserveHost       On
	        ProxyRequests Off
 
		ProxyPass / https://ynh.futuretic.fr/
		ProxyPassReverse / https://ynh.futuretic.fr/
 
		# For WebSockets
		RewriteEngine on
		RewriteCond %{HTTP:Connection} Upgrade [NC]
		RewriteCond %{HTTP:Upgrade} websocket [NC]
		RewriteRule /(.*) wss://ynh.futuretic.fr/$1  [P,L]
 
		RequestHeader set X-Forwarded-Proto “https”
		RequestHeader set X-Forwarded-Port “443#SetEnv proxy-sendchunks 1

		<Proxy *>
			Order deny,allow
			Allow from all
		</Proxy>
 
                ErrorLog /var/log/apache2/ynh.futuretic.fr.error.log
                LogLevel error
                CustomLog /var/log/apache2/ynh.futuretic.fr.access.log vhost_combined
 
        </VirtualHost>
 
</IfModule>

A noter le LogLevel à mettre sur debug à la place de error si debug

Ajouter l'adresse à votre fichier hosts

nano /etc/hosts
10.0.3.243 ynh.futuretic.fr

Il faut aussi donner des règles pour transférer les websockets, sinon yunohost-api ne reçoit pas les messages par ce bias et cryptpad n'est pas content non plus

Pour débug :

 coté hôte : tail -f /var/log/apache2/ynh.futuretic.fr.error.log
 coté ynh lxc :  tail -f /var/log/yunohost/yunohost-api.log
yunohost_un_container_lxc.1606265767.txt.gz · Dernière modification : 2020/11/25 00:56 de Benjamin Labomedia