IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Virtualisation Discussion :

vm interface nat et firewall suite avec podman


Sujet :

Virtualisation

  1. #1
    Membre averti
    Homme Profil pro
    en veille
    Inscrit en
    Avril 2024
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : en veille

    Informations forums :
    Inscription : Avril 2024
    Messages : 44
    Par d�faut vm interface nat et firewall suite avec podman
    J'ai d�cid� de changer de config pour des petits d�v web, dans la pr�c�dente config, j'utilisais kvm-qemu avec samba et sur la machine h�te firejail pour isoler le navigateur web et tester en local le fonctionnement d'un site web semi statique avec un peu de php. Garder une vm en fonctionnement continu avec les interfaces r�seaux, je trouvais �a un peu trop contraignant

    Maintenant, j'ai essay� de tester les conteneurs avec podman qui n'utilise pas un processus permanent. Je me suis rendu compte quand la config tourne que je n'ai pas document� toutes les �tapes et que au cas o� il faut refaire les manips, �a serait du temps � reprendre toutes les �tapes. Et puis je voudrais voir � partir s'il y des am�liorations possibles, les technos �voluent et je ne suis pas au courant de tout. Surtout pour la partie config r�seau sur podman, �a a l'air un peu casse t�te

    Ces infos compl�tent les infos sur ce site

    Pour podman, utilisation en tant qu'utilisateur standard... Il faut pr�voir plusieurs go d'espaces libre dans le r�pertoire utilisateur sur debian c'est dans:
    /home/utilisateur/.local/share/containers/storage

    🟨 verif que podman est install�

    ou

    si c'est pas install�

    pour debian

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    sudo apt update
    sudo apt install podman
    ou combin� avec podman compose

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    sudo apt update
    sudo apt install podman podman-compose
    si c'est install�, regarder s'il n'y a pas d�j� des images parce que �a prend de l'espace disque
    🟠 lire les discussions suivantes parce que sur debian pour la version linux 6.1 il faut installer un package suppl�mentaire pour modifier le mode de stockage des images. Si cette �tape est ignor�e, les images peuvent occuper des dizaines de go au lieu de quelques go

    Eventuellement enregistrer les images existantes dans un fichier archive, voir apr�s la partie commit

    regarder s'il pas un conteneur en cours de fonctionnement

    sinon arr�ter les conteneurs actifs

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman stop -a && podman rm -a
    t�l�chargement de l'image php avec le serveur httpd
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman pull php:8.2-apache
    t�l�chargement de l'image mysql 8
    t�l�chargement de l'image phpmyadmin
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman pull phpmyadmin:5.2.2
    voir l'espace disque occup� par les conteneurs
    d�marrage du conteneur avec l'image de php-apache

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman run -d --name web_server -p 8080:80 docker.io/library/php:8.2-apache
    ouvrir le navigateur web ou curl et il doit y avoir "it works" sur http://locahost:8080
    il peut aussi il y avoir une erreur de permission... sur l'exp�rience, de ce tuto, possible d'ignorer cette erreur et de passer aux �tapes suivantes et de modifier le fichier de config pour autoriser option indexes dans le directory listing...

    on peut entrer dans le conteneur sur le shell bin bash avec l'alias web_server de la commande run
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman exec -it web_server /bin/bash
    ou avec l'id du conteneur

    89b...ci-dessous correspond � l'id du conteneur en 1�re colonne de la cde pr�c�dente

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman exec -it 89b... /bin/bash

    cr�ation d'un fichier html simple, comme il n'y a pas d'�diteur de texte, la commande cat peut servir � �crire dans un fichier � partir de la m�moire tampon (buffer) jusqu'� la saisie de 'EOL'

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    cat > index_s1.html<< EOL
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    <html><body><h1>Conteneur/image podman html<h1>
    </h1></body></html>
    on termine la saisie avec EOL

    on fait la meme chose pour tester php

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <html><body><h1>Conteneur/image podman php</h1>
    <h2>config php</h2>
    <br>
    
    <?php phpinfo(); ?>
    
    </h1></body></html>
    EOL termine le buffer


    on est toujours dans le shell bin/bash du conteneur mais on peut v�rifier dans le navigateur que les fichiers index_s1.html et index_s2.php sont acccessibles

    http://localhost:8080/index_s1.html
    http://localhost:8080/index_s2.php



    si c'est bon, on continue

    ici, c'est pour modifier le fichier de configuration du serveur avec un affichage du r�pertoire web

    toujours dans le bin bash du conteneur, attention � ne pas �tre sur le fichier de config de la machine h�te ou d'une �ventuelle vm!!!

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    cd /etc/apache2/sites-available
    copier le contenu ci dessous dans un �diteur de texte de la machine hote
    ajouter ou remplacer en dessous de documentroot
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
      <Directory /var/www/html>
        Options +Indexes
        AllowOverride all
        Order allow,deny 
        Allow from all 
        Require all granted
      </Directory>
    la commande ci-dessous va effacer le fichier de config et il sera possible de le remplacer par copie avec le fichier de config modifier. Ne pas tenir compte de l'affichage, appuyer sur enter apr�s la copie et saisir EOL pour terminer le buffer

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    cat > 000-default.conf << EOL
    copier la totalit� du fichier de config, attention � ne pas copier autre chose

    tester la configuration
    dans le navigateur
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    http://localhost:8080/
    il devrait s'afficher
    index_s1.html
    index_s2.php

    si c'est bon on peut sortir du shell bin/bash du conteneur maintenant avec exit ou continuer et installer des modules php

    📦 config de php dans le conteneur

    pour les modules suivants (cde php -m avec transpo en ligne):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    ctype	curl	date	dom	fileinfo	filter	gd	hash	iconv	json	libxml	
    mbstring	mysqli	mysqlnd	openssl	pcre	PDO	pdo_mysql	pdo_pgsql	pdo_sqlite	
    pgsql	Phar	posix	random	readline	Reflection	session	SimpleXML	
    sodium	SPL	sqlite3	standard	tokenizer	xml	xmlreader	xmlwriter	Zend OPcache	zlib
    Toujours dans le conteneur de l'image httpd exec -it

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
      docker-php-ext-install mysqli
      docker-php-ext-enable mysqli
      apache2ctl restart
      docker-php-ext-install intl opcache pgsql pdo pdo_mysql pdo_pgsql gd mbstring zip
      docker-php-ext-install intl
      docker-php-ext-install intl
      docker-php-ext-install opcache
      docker-php-ext-install opcache
      docker-php-ext-enable opcache
      docker-php-ext-enable opcache
      docker-php-ext-install intl
      docker-php-ext-enable intl
      docker-php-ext-install pgsql
      docker-php-ext-enable pgsql
      /usr/local/bin/docker-php-ext-enable gd mysqli
      /usr/local/bin/docker-php-ext-enable pdo pdo_mysql
      /usr/local/bin/docker-php-ext-enable pgsql
      docker-php-ext-install pdo
      docker-php-ext-enable pdo
      docker-php-ext-install pdo_mysql
      docker-php-ext-enable pdo_mysql
      docker-php-ext-install pdo_pgsql
      docker-php-ext-enable pdo_mysql
     docker-php-ext-install gd
     docker-php-ext-enable gd
     /usr/local/bin/docker-php-ext-enable gd
     docker-php-ext-enable gd
     docker-php-ext-install mbstring
     docker-php-ext-enable mbstring
     docker-php-ext-install zip
     docker-php-ext-enable pdo_pgsql
     docker-php-ext-enable zip
    Les modules gd et pgsql ne se sont pas install�s alors il faut maj le conteneur

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    apt update
    
    docker-php-ext-install gd
    docker-php-ext-enable gd
    docker-php-ext-install pgsql
    docker-php-ext-enable pgsql
    docker-php-ext-install pgsql
    docker-php-ext-install pdo_pgsql
    ou
    docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql     && docker-php-ext-install pgsql pdo_pgsql
    apt-get install -y libpq-dev     && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql     && docker-php-ext-install pdo pdo_pgsql
    pour voir les modules install�s
    php -m

    ou php-info avec http://localhost:8080/index_s2.php

    si c'est bon on peut sortir du shell bin/bash du conteneur maintenant avec exit ou continuer ...

    et on peut enregistrer le conteneur dans une nouvelle image
    d'abord, r�cup�rer l'id du conteneur en 1�re colonne ou le nom alias de la cde run

    enregistrement avec l'id
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman commit f580f66abe50 localhost/httpd-php:8.2
    enreg avec l'alias
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman commit web_server localhost/httpd-php:8.2
    on arr�te les conteneurs actifs
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman stop -a && podman rm -a
    📍️si l'image a bcp �t� modifi�e ou pour d�placer sur une autre machine il est possible d'enregistrer l'image modifi�e dans une archive ou d'enregistrer n'importe quelle image pour �viter podman pull...il est �galement possible d'enregistrer plusieurs images dans la m�me archive, il faut juste s�parer les images par un espace

    par exemple dans le r�pertoire courant pour l'image docker.io/library/mariadb:latest

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman save --output image_mariadb_12_0.tar docker.io/library/mariadb:latest
    on peut supprimer l'image pour par exemple �conomiser de l'espace disque

    podman rmi docker.io/library/mariadb:latest

    et plus tard recharger l'image depuis le r�pertoire d'enregistrement

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman load --input image_mariadb_12_0.tar
    test de la nouvelle image

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman run -d --name serveur_web -p 8080:80 localhost/httpd-php:8.2
    dans le navigateur
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    http://localhost:8080/
    🟢il est possible de supprimer la premi�re image pour �conomiser de l'espace disque avec la commande "podman rmi"

    cette commande map un r�pertoire web avec le serveur web php de podman
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    podman run -d --name php-dev -v /media/DOSSIER_WEB_ORDI_HOTE:/var/www/html:Z localhost/httpd-php:8.2
    normalement les fichiers web s'affichent dans le navigateur

    avec podman run pour lancer un serveur lamp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    podman pod create --name db0 --publish 8080:80 && 
    podman run -d --name php8-dev --pod db0 -v /media/DOSSIER_WEB_ORDI_HOTE:/var/www/html:Z httpd-php:8.2 && 
    podman pod create --name db1 --publish 8000:80 --publish 3306:3306 && podman run --name mysql-dev --pod db1 -v /media/DOSSIER_BDD_HOTE:/var/lib/mysql:Z -e MYSQL_ROOT_PASSWORD="mdp" -e MYSQL_USER="utilisateur_bdd" -e MYSQL_PASSWORD="mdpbdd" -d mysql:8 && 
    podman run --name pma --pod db1 -d -e PMA_HOST=127.0.0.1 -e PMA_PORT=3306 phpmyadmin:latest && 
    echo -e '\n' && podman pod ps && 
    echo -e '\n' && podman ps && 
    echo -e '\n'

    phpmyadmin sur port 8000

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    http://127.0.0.1:8000

    mais avec podman-compose le r�seau fonctionne mieux
    il faut installer podman-compose et cr�er des fichier yml

    pour installer podman compose

    sur debian
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    sudo apt update
    sudo apt install podman-compose

    ci-dessous le fichier podman-compose.yml �quivalent � podman run mais fonctionne mieux au niveau du r�seau, acc�s possible simultan�ment au web, bdd et pma

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    version: '3.8'
    services:
      php-apache-environment:
        image: httpd-php:8.2
        container_name: httpd-php8
        volumes:
          - /media/DOSSIER_WEB_ORDI_HOTE:/var/www/html
        ports: 
          - 8080:80
      db:
        image: mysql:8
        container_name: db-mysql8
        environment:
          MYSQL_ROOT_PASSWORD: mdp
          MYSQL_DATABASE: demo
          MYSQL_USER: utilisateur_bdd
          MYSQL_PASSWORD: mdpbdd
          restart: unless-stopped
        volumes:
          - /media/DOSSIER_BDD_HOTE:/var/lib/mysql
        ports:
          - "3306:3306"
      phpmyadmin:
        image: phpmyadmin:5.2.2
        container_name: pma
        environment:
          PMA_HOST: db
          MYSQL_ROOT_PASSWORD: rootpassword
        ports:
          - "8000:80"

    dans le r�pertoire du fichier yml podman-compose.yml , d�marrer avec
    et �teindre avec
    Il est aussi possible d'utiliser podman-desktop mais en ligne de cde on peut voir pas mal de chose d'un coup


    Pascal
    info2gestion📍️

  2. #2
    Membre averti
    Homme Profil pro
    en veille
    Inscrit en
    Avril 2024
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : en veille

    Informations forums :
    Inscription : Avril 2024
    Messages : 44
    Par d�faut
    et pour firejail pour isol� le d�veloppement web

    je cr�e un profil d�di� dans firefox, avec un theme d�di�, je sais que c'est pour podman et pas kvm et je lance firefox avec

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    /usr/bin/firejail --ignore=nogroups /opt/waterfox/waterfox -P webdev1 -no-remote
    de cette fa�on, avec ce profile, il n'y a pas d'acc�s web et donc pas de liens cdn qui peuvent masquer des fichiers ou styles

  3. #3
    Membre averti
    Homme Profil pro
    en veille
    Inscrit en
    Avril 2024
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : en veille

    Informations forums :
    Inscription : Avril 2024
    Messages : 44
    Par d�faut
    Donc apr�s cette config, �videmment, j'ai des questions

    Est-ce que j'ai suivi les bonnes pratiques pour un d�veloppement en local (pas d'acc�s ext�rieur http ou ssh)?

    Comment �a se fait qu'avec cette install et 2 images de php-httpd avec php8.2 et php 7.3, l'image de mysql9 et l'image de phpmyadmin, j'ai approx.20 go d'espace disque occup�?

    En comparaison la vm sur kvm debian server headless, avec 2 versions de php, la m�me bdd, c'est une vm qui occupe 5,2 gb???

  4. #4
    Membre averti
    Homme Profil pro
    en veille
    Inscrit en
    Avril 2024
    Messages
    44
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : en veille

    Informations forums :
    Inscription : Avril 2024
    Messages : 44
    Par d�faut
    J'ai pass� l'installation de 20 go � 2go pour obtenir le m�me r�sultat un serveur web, une base de donn�es et phpmyadmin

    Avant:
    du -hs .local/*
    23,6G .local/share

    Maintenant
    du -hs .local/*
    1,8G .local/share

    La diff�rence vient de la config de podman. L'installation par d�faut sur debian utilise un syt�me de stockage vfs qui r�plique les images par couches. En modifiaint le fichier de config vfs par overlay, les images occupent moins d'espace disque et la performance en est am�lior�e. Apparemment, l'installation sur fedora par d�faut c'est en overlay. A confirmer

    Pour debian donc il faut

    avant il n'y avait pas de config dans ce dossier
    cd /usr/share/containers

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    podman info | grep graphDriverName
    #vfs
    possible de cr�er un fichier de config containers.conf et d'y ajouter driver = "overlay" mais j'ai essay� et certaines commandes comme podman save plantent � cause d'une erreur runroot

    r�solution, install�e le package containers-storage

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    apt update
    apt install containers-storage
    et l� il y a bien un fichier de config dans
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    podman info | grep graphDriverName
    #overlay
    mais tout est comment�, je ne comprends pas pourquoi. En tout cas, le reste fonctionne mais il faut passer par system reset. Avant il faut enregistrer les images. J'avais qui php7.4 qui a plant� donc j'ai du reconstruire un image. Et d'ailleurs, je posterai les �tapes parce que j'ai d� install� et activ� des modules php dans le conteneur de l'image.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    podman system reset
    #ca efface tout!
    voil� � partir de la pour une nouvelle configuration, je me retrouve avec 3 images qui font tourner les pages de mon site web en local, php, phpspreadsheet...pour 2 go d'espace disque utilis� au lieu de 20 go

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    podman system df
    TYPE           TOTAL       ACTIVE      SIZE        RECLAIMABLE
    Images         3           3           2.118GB    0B (0%)
    Containers     3           3           30.17kB     0B (0%)
    Local Volumes  0           0           0B          0B (0%)

    Je modifierai le 1er post de la discussion en cons�quence 🏁

Discussions similaires

  1. vm interface nat et firewall
    Par barpasc dans le forum Virtualisation
    R�ponses: 1
    Dernier message: 11/08/2025, 13h25
  2. Quel firewall utiliser avec kaspersky ?
    Par quaresma dans le forum S�curit�
    R�ponses: 3
    Dernier message: 27/10/2006, 13h16
  3. R�ponses: 7
    Dernier message: 27/09/2006, 16h03
  4. Probl�me d'interface de base de donn�es avec Frontpage
    Par Auxtown-Son dans le forum Outils
    R�ponses: 3
    Dernier message: 11/07/2006, 16h42
  5. interface idlj et Object Suite (JAVA)
    Par canou94 dans le forum CORBA
    R�ponses: 5
    Dernier message: 25/11/2005, 22h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo