MaDoVi - Le wiki

Machines - Données - Virtualisation

Outils pour utilisateurs

Outils du site


services:web:tuto:adminer_tuto1

Adminer - Interface web SGBD

Dans le cadre du projet , ce service va nous de «piloter» le SGBD MariaDB installé dans un container. Mais il pourra accéder à d'autre serveur évidemment (on vérifiera l'accès à celui du VHS).

On va positionner ce composant au sein d'un container LXC lxc-web01, ce qui correspond au schéma plus global proposé dans ce paragraphe.

Les manipulations listées ci-dessous s'appliquent dans le CT lxc-web01 – dont l'installation est donc un préalable – mais elles pourront s'appliquer dans un environnement Linux quelconque – aux commandes près propres à la distribution choisie. Vous pouvez ainsi ignorer les mentions au container si vous ne travaillez pas dans ce contexte, le reste demeure applicable…


1. Création du container LXC

On considère que le container lxc-web01 est déjà crée via la procédure ici. On l'a construit avec un serveur ssh; on va donc s'y connecter dans ce mode, à partir de la console de notre serveur, sur le compte défini au moment de la création du container:

  • On s'assure qu'il tourne:
    admin@wasabi:~$ lxc-ls -f
    NAME        STATE   AUTOSTART GROUPS             IPV4      IPV6 UNPRIVILEGED 
    lxc-web01   RUNNING 1         onboot, webserver  10.0.3.51 -    true         
  • On s'y connecte:
    admin@wasabi:~$ ssh monusr@lxc-web01
    cram28@lxc-web01's password: 
    Welcome to Alpine!
     
    The Alpine Wiki contains a large amount of how-to guides and general
    information about administrating Alpine systems.
    See <http://wiki.alpinelinux.org/>.
     
    You can setup the system with the command: setup-alpine
     
    You may change this message by editing /etc/motd.
     
    lxc-web01:~$ 
  • Notre compte a des droits d'administrateur dans le CT. On y bascule pour faire nos manip:
    lxc-web01:~$ sudo -i
    [sudo] password for monusr: 
    lxc-web01:~# 

2. Préparation & Installation

  • On commence par définir le répertoire cible de l'outil, dans l'arborescence des sites:
    lxc-web01:~# mkdir /www/adminer
  • On télécharge la dernière version (à date, à vérifier sur le site au préalable):
    lxc-web01:~# wget https://github.com/vrana/adminer/releases/download/v4.7.6/adminer-4.7.6.php \
                 -O /www/adminer/index.php
  • On ajoute un thème (choix personnel…):
    lxc-web01:~# wget https://raw.githubusercontent.com/vrana/adminer/master/designs/hever/adminer.css \
                 -O /www/adminer/adminer.css
  • On change propriétaire et droit:
    lxc-web01:~# chown -R www:www /www/adminer
    lxc-web01:~# chmod -R 755 /www/adminer

3. Configuration

On se contente ici de définir le “VirtualHost” correspondant au service, dans le répertoire de configuration du serveur Nginx: On alimente un fichier dédier selon:

lxc-web01:~# nano /etc/nginx/conf.d/adminer.conf
## Contenu Virtualhost service Adminer
server {
    listen         80;
    server_name    adminer.lxc-web01.lxc;
    access_log     /var/log/nginx/adminer.access.log;
    error_log      /var/log/nginx/adminer.error.log;
 
    root           /www/adminer;
    index          index.php;
 
    location / {
        try_files $uri $uri/ =404;
    }
 
    location ~ \.php$ {
    	try_files $uri =404;
    	fastcgi_split_path_info ^(.+\.php)(/.+)$;
    	fastcgi_pass php;
    	fastcgi_index index.php;
    	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    	include fastcgi_params;
    }
}

S'il existe un fichier de définition par défaut, le supprimer:

lxc-web01:~# rm /etc/nginx/conf.d/default.conf

4. Quelques compléments

☛ Démarrage avec l'hôte: Si vous souhaitez éviter de faire «à la main» le lancement du container après un arrêt/relance du serveur, il suffit de modifier sa configuration en ajoutant ou dé-commentant les lignes suivantes:

$ nano $(lxc-config lxc.lxcpath)/lxc-web01/config
lxc.group = onboot
lxc.group = webserver
lxc.start.auto = 1

Pour autant que vous ayez suivi la partie “autostart:” dans la configuration des containers «non privilégiés»

☛ «Lien» proxy: Le container lxc-web01 contient maintenant le service Adminer. On a prévu de l'atteindre en passant par le CT Proxy Web: En conséquence, vous devez vous assurer que ce service est bien identifié dans la configuration du proxy:

## Dans le CT ''lxc-proxy''
lxc-proxy:~$ cat /etc/nginx/conf.d/lxc-proxy.conf 
#Contents of /etc/nginx/conf.d/lxc-web01.conf
server {
    listen                  80;
    ...
}
 
server {
    listen                  443 ssl http2;
    ...
 
    location /adminer {
        include             conf.d/proxy_set_header.inc;
        proxy_pass          http://lxc-web01/adminer/;
    }
 
    ...
}

:!: Vous devez redémarrer le serveur Nginx du proxy à chaque fois que vous modifiez ce fichier, pour bonne prise en compte (cf. le tuto proxy).

☛ Accès direct: Vous pouvez «by-passer» le proxy… Dans ce cas, le CT lxc-web01 n'embarque pas le HTTPS et il vous faudra ouvrir le port du container sur un port libre sur serveur via la commande iptables qui peut prendre les formes suivantes:

Ouvrir & fermer et Voir les @:ports NATés:

Terminal
Ouvrir:
sudo iptables -t nat -A PREROUTING -p tcp -i <interface> --dport <portHost> -j DNAT --to-destination <@IP:Port Destination>
Exemple:
sudo iptables -t nat -A PREROUTING -p tcp -i br0 --dport 8000 -j DNAT --to-destination 10.0.3.51:80
 
Fermer:
sudo iptables -t nat -D PREROUTING -p tcp -i <interface> --dport <portHost> -j DNAT --to-destination <@IP:Port Destination>
Exemple:
sudo iptables -t nat -D PREROUTING -p tcp -i br0 --dport 8000 -j DNAT --to-destination 10.0.3.51:80
 
Liste:
sudo iptables -t nat -L
sudo iptables -t nat -S

☛ Utilisation: On suppose ici que vous passez par le proxy configuré comme ci-dessus, et que votre serveur s'appelle wasabi. Il faut bien sûr vous souvenir du login/mot de passe MariaDB que vous avez défini ici

login

  • L’URL saisie dans votre navigateur est https://wasabi/adminer/
  • Le système est MySQL (MariaDB en est un fork…)
  • Le nom du serveur est le nom du container qui fait tourner MariaDB: Il est accessible par lxc-web01 car les CT sont sur le même sous-réseau.

data

services/web/tuto/adminer_tuto1.txt · Dernière modification: 08/03/2020 22:33 de Cram28