« Lxc » : différence entre les versions

De Wiki doc

Aucun résumé des modifications
mAucun résumé des modifications
 
(34 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Installation et utilisation de LXC (au plus simple)
[[Category:conteneurisation]]


=Installation=
=Installation=
Installation des paquets
Installation du paquet


  # apt install lxc bridge-utils
  # apt install lxc


=Configuration du reseau=
=Configuration du réseau=
Création d'une interface pour le mode bridge (le NAT c'est le mal)
==Réseau par pont==
Ce mode est le plus adapté pour un usage "machine virtuelle" du conteneur (et donc mieux pour héberger sur un serveur). En effet, avec le pont réseau, le conteneur aura accès, tant en entrée que en sortie au même réseau que votre machine hôte (un par-feux sera peut être judicieux en fonction du cas). Le réseau n'est donc pas limité.
 
Installation du paquet
 
# apt install bridge-utils
 
Création d'une interface pour le mode bridge


  # vim /etc/network/interfaces
  # vim /etc/network/interfaces
Ligne 14 : Ligne 21 :
auto br0
auto br0
iface br0 inet static
iface br0 inet static
address 192.168.1.161
      address 192.168.1.161
netmask 255.255.255.0
      netmask 255.255.255.0
network 192.168.1.0
      network 192.168.1.0
broadcast 192.168.1.255
      broadcast 192.168.1.255
gateway 192.168.1.1
      gateway 192.168.1.1
bridge_ports eth0
      bridge_ports eth0      
bridge_stp off
      bridge_stp off
bridge_maxwait 5
      bridge_maxwait 5
bridge_fd 0
      bridge_fd 0
</source>
</source>
==Réseau privé==
Depuis la version 2.0 de LXC, le service '''lxc-net''' permet de créer automatiquement une interface bridge <source lang="bash" inline>lxcbr0</source> qui servira à privatiser l'interface réseau du conteneur. On utilisera des redirections de ports '''iptables''' pour accéder à nos services ou ont routera les paquets provenant du réseau privé. L'intérêt principal du réseau privé face au mode bridge est qu'il est plus adapté à un usage sur machine bureautique. En effet, la création d'un bridge via le fichier interfaces fout la merde avec network-manager et ajoute une certaine lourdeur à l'usage quotidien (surtout avec un PC portable). De plus, aucun autre paquet que lxc n'est nécessaire. En outre, on peut également dire que l'accès au conteneur est plus limité (donc plus sécurisant) de par les la porté limité du réseau privé entre l'hôte et le conteneur (pas besoin de par-feux).
Création du fichier <source lang="bash" inline>/etc/default/lxc-net</source> avec le paramètre suivant
# echo "USE_LXC_BRIDGE="true"" >> /etc/default/lxc-net
Relancer le service pour montée automatiquement l'interface <source lang="bash" inline>lxcbr0</source>.
# service lxc-net restart


=Création d'un conteneur et configuration=
=Création d'un conteneur et configuration=
Création d'un conteneur sous Debian 8
'''Création d'un conteneur sous Debian 9'''


  # lxc-create -n <NOM_CONTENEUR> -t debian -- -r jessie
  # lxc-create -n ''<NOM_CONTENEUR>'' -t debian -- -r stretch


Ajout de la configuration réseau.
'''Ajout de la configuration réseau'''
Attention, la directive <source  lang="bash" inline>lxc.network.ipv4</source> donne une IP au conteneur mais le fichier interfaces du debian est réglé sur dhcp par défaut. Le conteneur récupère donc 2 IP. Soit on désactive cette directive, soit on vire le DHCP (je pense que mettre une IP fixe au conteneur est plus simple).


# vim /var/lib/lxc/<NOM_CONTENEUR>/config
Au fil des versions de LXC, la directive <source lang="bash" inline>lxc.network.ipv4</source> ne cesse de faire de la merde (mais une différente à chaque version). Sur la 1.X, elle donnait une IP au conteneur mais le fichier interfaces du Debian était réglé sur DHCP par défaut, le conteneur récupérait 2 IP. Avec la 2.X, il n'y a plus ce problème mais le conteneur met 3 plombes à démarrer. Le plus simple est de ne pas utiliser cette merde...


# vim /var/lib/lxc/''<NOM_CONTENEUR>''/config
Pour un bridge :
<source lang="bash">
<source lang="bash">
lxc.network.type = veth
lxc.network.type = veth
Ligne 42 : Ligne 59 :
lxc.network.link = br0
lxc.network.link = br0
lxc.network.flags = up
lxc.network.flags = up
</source>
Pour un réseau privé :
<source lang="bash">
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:62:91:94
</source>
'''Auto démarrage'''
On peut configurer un conteneur pour qu'il démarre automatiquement avec le serveur. Le nom des valeurs parle d'eux même.
<source lang="bash">
# Autostart
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 5
</source>
</source>


Ligne 47 : Ligne 81 :
==Démarrage==
==Démarrage==
Démarrage du conteneur en tache de fond
Démarrage du conteneur en tache de fond
# lxc-start -n ''<NOM_CONTENEUR>'' -d
''Le <source lang="bash" inline>-d</source> est facultatif depuis la version 2.0 de LXC.''
Démarrage du conteneur dans le terminal courant
# lxc-start -n ''<NOM_CONTENEUR>'' -F


  # lxc-start -n <NOM_CONTENEUR> -d
{{astuce|Pour changer le mot de passe root, on utilisera la commande suivante :
  # lxc-attach -n ''<NOM_CONTENEUR>'' passwd
Depuis LXC 2.0, il n'y a plus du tout de mot de passe à root par défaut, ce qui fait qu'il est impossible de s'y connecter. Cette étape est donc désormais obligatoire en l'absence de <source lang="bash" inline>sudo</source>.
}}


==Console==
==Console==
#ntrer dans la console du conteur (attach). Pour sortir, tappez <source inline>ctrl+a q</source>
Entrer dans la console du conteur (attach). Pour sortir, tapez <source lang="bash" inline>ctrl+a q</source>


  # lxc-console -n <NOM_CONTENEUR>
  # lxc-console -n ''<NOM_CONTENEUR>''


==Arrêter==
==Arrêter==
Arrêter le conteneur (-k pour forcer)
Arrêter le conteneur (-k pour forcer)


  # lxc-stop -n <NOM_CONTENEUR> [-k]
  # lxc-stop -n ''<NOM_CONTENEUR>'' [-k]


==Supprimer==
==Supprimer==
Supprimer un conteneur
Supprimer un conteneur (-f pour forcer)
 
# lxc-destroy -n ''<NOM_CONTENEUR>'' [-f]
 
À noter qu'il est préférable d'utiliser la commande suivante pour supprimer un conteneur (j'ai déjà eu des mauvaises surprises avec l'autre commandes)


  # lxc-destroy -n <NOM_CONTENEUR> [Ajouter -f si il est allumé (à verrifier)]
  # rm -rf /var/lib/lxc/''<NOM_CONTENEUR>''


==Lister==
==Lister==
Ligne 72 : Ligne 118 :
Lister les conteneur dans un tableau
Lister les conteneur dans un tableau
  # lxc-ls --fancy
  # lxc-ls --fancy
ou
# lxc-ls -f


==Info==
==Info==
Savoir si un conteneur est allumé ou éteint
Savoir si un conteneur est allumé ou éteint
  # lxc-info -n <NOM_CONTENEUR>
  # lxc-info -n ''<NOM_CONTENEUR>''


=Sauvegarder et restaurer un conteneur=
=Sauvegarder et restaurer un conteneur=
==Sauvegarde==
==Sauvegarde==
Sauvegarde (conserve automatiquement les permissions)
Sauvegarde (conserve automatiquement les permissions). Enlevez l'argument <source lang="bash" inline>z</source> pour ne pas compresser (archive tar au lieu de tar.gz) si vous voulez que ce soit (beaucoup) plus rapide. 
 
===Un seul conteneur===
  # ls /var/lib/lxc/
  # ls /var/lib/lxc/
  # tar czvf Nom_Conteneur_Date.tar.gz Nom_Conteneur
  # tar czvf Nom_Conteneur_Date.tar.gz Nom_Conteneur
===Tout les conteneurs démarrés===
# list=`lxc-ls --active`;for i in $list; do tar czvf /répertoire/de/sauvegarde/${i}.tar.gz /var/lib/lxc/$i; done
===Tout les conteneurs===
# list=`lxc-ls`;for i in $list; do tar czvf /répertoire/de/sauvegarde/${i}.tar.gz /var/lib/lxc/$i; done


==Restauration==
==Restauration==
Restaurer le conteneur (par défaut, l'option -p est activé et permet de conserver les permissions. Verifiez si c'est le cas le première fois)
Restaurer le conteneur (par défaut, l'option -p est activé et permet de conserver les permissions. Vérifiez si c'est le cas le première fois)
  # ls /var/lib/lxc/
  # ls /var/lib/lxc/
  # tar xzvf[p| --preserve-permissions] Nom_Conteneur_Date.tar.gz
  # tar xzvf[p| --preserve-permissions] Nom_Conteneur_Date.tar.gz
=Mettre à jour tout les conteneurs=
Il est assez facile d'imaginer la lourdeur occasionnée par une mise à jour de l'ensemble des conteneurs dans les cas où leur nombre devient important. Je vous propose les scripts que j'utilise pour effectuer cette opération dans cette section.
==Arrêter tout les conteurs==
Cette étape n'est pas obligatoire mais certain services risquent de ne pas utiliser les librairies mises à jours si on ne les redémarrent pas, ce qui peut représenter une faille de sécurité. Nous allons donc éteindre tout les conteneurs afin de garantir la bonne application des mises à jours.
<source lang="bash">
#!/bin/bash
# Nom : lxc-stop.sh
# Fonction: Mettre à jour tout les conteneurs
# Auteur initial: Vivek Gite <www.cyberciti.biz>, under GPL v2+
# -------------------------------------------------------
# Obtenir la liste des conteneurs
vms="$(lxc-ls --active)"
# Éteindre tout les conteneurs de la liste
stop_lxc(){
  local vm="$1"
  echo -e "\\033[1;34m*** [VM: $vm [$(hostname) @ $(date)] ] ***"
  echo -e "\\033[1;32m-----------------------------------------------------------------"
  tput sgr0
  /usr/bin/lxc-attach -n "$vm" init 0
  # Pour RHEL/CentOS/Fedora Linux, remplacez la commande lxc-attach précédente par celle-ci :
  # lxc-attach -n "$vm" poweroff
  echo -e "\\033[1;32m-----------------------------------------------------------------"
  tput sgr0
}
# Exécuter l'extinction                                                               
for v in $vms
do
  stop_lxc "$v"
done
</source>
Ou cette ligne :
<source lang="bash">
list=`lxc-ls --active`;for i in $list; do lxc-stop -n $i; done
</source>
==Mettre à jour tout les conteneurs==
<source lang="bash">
#!/bin/bash
# Nom : lxc-maj.sh
# Fonction : Mettre à jour tout les conteneurs
# Auteur initial: Vivek Gite <www.cyberciti.biz>, under GPL v2+
# -------------------------------------------------------
# Obtenir la liste des conteneurs
vms="$(lxc-ls --active)"
# Mettre à jour tout les conteneurs de la liste
maj_lxc(){
  local vm="$1"
  echo -e "\\033[1;34m*** [VM: $vm [$(hostname) @ $(date)] ] ***"
  echo -e "\\033[1;32m-----------------------------------------------------------------"
  tput sgr0
  /usr/bin/lxc-attach -n "$vm" apt -- -q update
  /usr/bin/lxc-attach -n "$vm" apt -- -q -y upgrade
  /usr/bin/lxc-attach -n "$vm" apt-get -- -qq -y clean
  /usr/bin/lxc-attach -n "$vm" apt-get -- -qq -y autoclean
  # Pour RHEL/CentOS/Fedora Linux, remplacez les commandes lxc-attach précédentes par celle-ci :
  # lxc-attach -n "$vm" yum -y update
  echo -e "\\033[1;32m-----------------------------------------------------------------"
  tput sgr0
}
# Exécuter la mise à jour                                                             
for v in $vms
do
  maj_lxc "$v"
done
</source>
==Démarrer tout les conteneurs==
<source lang="bash">
list=`lxc-ls`;for i in $list; do lxc-start -n $i -d; done
</source>
==Source de la section==
*#Source : https://www.cyberciti.biz/faq/how-to-update-debian-or-ubuntu-linux-containers-lxc/


=Bonus=
=Bonus=
Script de génération d'adresse MAC (en fonction du nom du conteneur)
==Script de génération d'adresse MAC==
Voici un script de génération d'adresse MAC en fonction du nom du conteneur :
<source lang="bash">
<source lang="bash">
    if [ -n "$1" ]; then
#!/bin/bash
                OID="44:8a:5b"
if [ -n "$1" ]
                RAND=$(echo $1 | md5sum | sed 's/\(..\)\(..\)\(..\).*/\1:\2:\3/')
    then
                echo "$OID:$RAND"
        OID="44:8a:5b"
        else
        RAND=$(echo $1 | md5sum | sed 's/\(..\)\(..\)\(..\).*/\1:\2:\3/')
                echo "ERREUR: Merci de soumettre un nom pour générer l'adresse MAC :"
        echo "$OID:$RAND"
                echo "      $FUNCNAME myhost"
    else
        fi
        echo "ERREUR: Merci de soumettre un nom pour générer l'adresse MAC :"
        echo "      $FUNCNAME myhost"
fi
</source>
</source>


==Activer la couleur dans le shell du conteneur==
Par défaut, le shell Bash des conteneurs n'affichent pas de couleurs. Pour corriger ça il faut définir la variable <source lang="bash" inline>TERM</source> à <source lang="bash" inline>xterm-256color</source>
On peut mettre cette linge dans <source lang="bash" inline>/etc/environment</source>
<source lang="bash">
TERM=xterm-256color
</source>
=Informations utiles=
=Informations utiles=
*Les conteneurs sont situés dans <source lang="bash" inline>/var/lib/lxc</source>
*Les conteneurs sont situés dans <source lang="bash" inline>/var/lib/lxc</source>
*Les conteneurs étalons téléchargés sont stockés dans <source lang="bash" inline>/var/cache/lxc</source>
*Le paquet contenant l'outil ping est <source lang="bash" inline>iputils-ping</source>
*Le paquet contenant l'outil ping est <source lang="bash" inline>iputils-ping</source>
*Pour fixer le DNS (qui est automatiquement récupéré par le DHCP) il faut installer le paquet <source lang="bash" inline>resolconf</source> et mettre une section dns-namerver <IP_DNS> dans le fichier <source lang="bash" inline>/etc/network/interfaces</source>
*Pour fixer le DNS (qui est automatiquement récupéré par le DHCP) il faut installer le paquet <source lang="bash" inline>resolconf</source> et mettre une section dns-namerver <IP_DNS> dans le fichier <source lang="bash" inline>/etc/network/interfaces</source>
Ligne 110 : Ligne 253 :
=Sources=
=Sources=
*http://giantdorks.org/alain/how-to-generate-a-unique-mac-address/
*http://giantdorks.org/alain/how-to-generate-a-unique-mac-address/
*https://wiki.debian.org/LXC#Changes_between_.22Jessie.22_and_.22Stretch.22

Dernière version du 23 novembre 2017 à 23:45


Installation

Installation du paquet

# apt install lxc

Configuration du réseau

Réseau par pont

Ce mode est le plus adapté pour un usage "machine virtuelle" du conteneur (et donc mieux pour héberger sur un serveur). En effet, avec le pont réseau, le conteneur aura accès, tant en entrée que en sortie au même réseau que votre machine hôte (un par-feux sera peut être judicieux en fonction du cas). Le réseau n'est donc pas limité.

Installation du paquet

# apt install bridge-utils

Création d'une interface pour le mode bridge

# vim /etc/network/interfaces
auto br0
iface br0 inet static
       address 192.168.1.161
       netmask 255.255.255.0
       network 192.168.1.0
       broadcast 192.168.1.255
       gateway 192.168.1.1
       bridge_ports eth0       
       bridge_stp off
       bridge_maxwait 5
       bridge_fd 0

Réseau privé

Depuis la version 2.0 de LXC, le service lxc-net permet de créer automatiquement une interface bridge lxcbr0 qui servira à privatiser l'interface réseau du conteneur. On utilisera des redirections de ports iptables pour accéder à nos services ou ont routera les paquets provenant du réseau privé. L'intérêt principal du réseau privé face au mode bridge est qu'il est plus adapté à un usage sur machine bureautique. En effet, la création d'un bridge via le fichier interfaces fout la merde avec network-manager et ajoute une certaine lourdeur à l'usage quotidien (surtout avec un PC portable). De plus, aucun autre paquet que lxc n'est nécessaire. En outre, on peut également dire que l'accès au conteneur est plus limité (donc plus sécurisant) de par les la porté limité du réseau privé entre l'hôte et le conteneur (pas besoin de par-feux).

Création du fichier /etc/default/lxc-net avec le paramètre suivant

# echo "USE_LXC_BRIDGE="true"" >> /etc/default/lxc-net

Relancer le service pour montée automatiquement l'interface lxcbr0.

# service lxc-net restart

Création d'un conteneur et configuration

Création d'un conteneur sous Debian 9

# lxc-create -n <NOM_CONTENEUR> -t debian -- -r stretch

Ajout de la configuration réseau

Au fil des versions de LXC, la directive lxc.network.ipv4 ne cesse de faire de la merde (mais une différente à chaque version). Sur la 1.X, elle donnait une IP au conteneur mais le fichier interfaces du Debian était réglé sur DHCP par défaut, le conteneur récupérait 2 IP. Avec la 2.X, il n'y a plus ce problème mais le conteneur met 3 plombes à démarrer. Le plus simple est de ne pas utiliser cette merde...

# vim /var/lib/lxc/<NOM_CONTENEUR>/config

Pour un bridge :

lxc.network.type = veth
lxc.network.hwaddr = 00:16:3e:62:91:94
lxc.network.name = eth0
#lxc.network.ipv4 = 192.168.1.163
lxc.network.link = br0
lxc.network.flags = up

Pour un réseau privé :

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:62:91:94

Auto démarrage

On peut configurer un conteneur pour qu'il démarre automatiquement avec le serveur. Le nom des valeurs parle d'eux même.

# Autostart
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 5

Commandes de gestion des conteneurs

Démarrage

Démarrage du conteneur en tache de fond

# lxc-start -n <NOM_CONTENEUR> -d

Le -d est facultatif depuis la version 2.0 de LXC.

Démarrage du conteneur dans le terminal courant

# lxc-start -n <NOM_CONTENEUR> -F

ASTUCE

Pour changer le mot de passe root, on utilisera la commande suivante :
# lxc-attach -n <NOM_CONTENEUR> passwd

Depuis LXC 2.0, il n'y a plus du tout de mot de passe à root par défaut, ce qui fait qu'il est impossible de s'y connecter. Cette étape est donc désormais obligatoire en l'absence de sudo.

Console

Entrer dans la console du conteur (attach). Pour sortir, tapez ctrl+a q

# lxc-console -n <NOM_CONTENEUR>

Arrêter

Arrêter le conteneur (-k pour forcer)

# lxc-stop -n <NOM_CONTENEUR> [-k]

Supprimer

Supprimer un conteneur (-f pour forcer)

# lxc-destroy -n <NOM_CONTENEUR> [-f]

À noter qu'il est préférable d'utiliser la commande suivante pour supprimer un conteneur (j'ai déjà eu des mauvaises surprises avec l'autre commandes)

# rm -rf /var/lib/lxc/<NOM_CONTENEUR>

Lister

Lister les conteurs démarrés ou arrétés

# lxc-ls [--active | --stopped]

Lister les conteneur dans un tableau

# lxc-ls --fancy

ou

# lxc-ls -f

Info

Savoir si un conteneur est allumé ou éteint

# lxc-info -n <NOM_CONTENEUR>

Sauvegarder et restaurer un conteneur

Sauvegarde

Sauvegarde (conserve automatiquement les permissions). Enlevez l'argument z pour ne pas compresser (archive tar au lieu de tar.gz) si vous voulez que ce soit (beaucoup) plus rapide.

Un seul conteneur

# ls /var/lib/lxc/
# tar czvf Nom_Conteneur_Date.tar.gz Nom_Conteneur

Tout les conteneurs démarrés

# list=`lxc-ls --active`;for i in $list; do tar czvf /répertoire/de/sauvegarde/${i}.tar.gz /var/lib/lxc/$i; done

Tout les conteneurs

# list=`lxc-ls`;for i in $list; do tar czvf /répertoire/de/sauvegarde/${i}.tar.gz /var/lib/lxc/$i; done

Restauration

Restaurer le conteneur (par défaut, l'option -p est activé et permet de conserver les permissions. Vérifiez si c'est le cas le première fois)

# ls /var/lib/lxc/
# tar xzvf[p| --preserve-permissions] Nom_Conteneur_Date.tar.gz

Mettre à jour tout les conteneurs

Il est assez facile d'imaginer la lourdeur occasionnée par une mise à jour de l'ensemble des conteneurs dans les cas où leur nombre devient important. Je vous propose les scripts que j'utilise pour effectuer cette opération dans cette section.

Arrêter tout les conteurs

Cette étape n'est pas obligatoire mais certain services risquent de ne pas utiliser les librairies mises à jours si on ne les redémarrent pas, ce qui peut représenter une faille de sécurité. Nous allons donc éteindre tout les conteneurs afin de garantir la bonne application des mises à jours.

#!/bin/bash
# Nom : lxc-stop.sh
# Fonction: Mettre à jour tout les conteneurs
# Auteur initial: Vivek Gite <www.cyberciti.biz>, under GPL v2+
# -------------------------------------------------------
 
# Obtenir la liste des conteneurs
vms="$(lxc-ls --active)"
 
# Éteindre tout les conteneurs de la liste
stop_lxc(){
   local vm="$1"
   echo -e "\\033[1;34m*** [VM: $vm [$(hostname) @ $(date)] ] ***"
   echo -e "\\033[1;32m-----------------------------------------------------------------"
   tput sgr0
   /usr/bin/lxc-attach -n "$vm" init 0
   # Pour RHEL/CentOS/Fedora Linux, remplacez la commande lxc-attach précédente par celle-ci :
   # lxc-attach -n "$vm" poweroff
   echo -e "\\033[1;32m-----------------------------------------------------------------"
   tput sgr0
}
 
# Exécuter l'extinction                                                                 
for v in $vms
do
   stop_lxc "$v"
done

Ou cette ligne :

list=`lxc-ls --active`;for i in $list; do lxc-stop -n $i; done

Mettre à jour tout les conteneurs

#!/bin/bash
# Nom : lxc-maj.sh
# Fonction : Mettre à jour tout les conteneurs
# Auteur initial: Vivek Gite <www.cyberciti.biz>, under GPL v2+
# -------------------------------------------------------
 
# Obtenir la liste des conteneurs
vms="$(lxc-ls --active)"
 
# Mettre à jour tout les conteneurs de la liste
maj_lxc(){
   local vm="$1"
   echo -e "\\033[1;34m*** [VM: $vm [$(hostname) @ $(date)] ] ***"
   echo -e "\\033[1;32m-----------------------------------------------------------------"
   tput sgr0
   /usr/bin/lxc-attach -n "$vm" apt -- -q update
   /usr/bin/lxc-attach -n "$vm" apt -- -q -y upgrade
   /usr/bin/lxc-attach -n "$vm" apt-get -- -qq -y clean
   /usr/bin/lxc-attach -n "$vm" apt-get -- -qq -y autoclean 
   # Pour RHEL/CentOS/Fedora Linux, remplacez les commandes lxc-attach précédentes par celle-ci :
   # lxc-attach -n "$vm" yum -y update 
   echo -e "\\033[1;32m-----------------------------------------------------------------"
   tput sgr0
}
 
# Exécuter la mise à jour                                                              
for v in $vms
do
   maj_lxc "$v"
done

Démarrer tout les conteneurs

list=`lxc-ls`;for i in $list; do lxc-start -n $i -d; done

Source de la section

Bonus

Script de génération d'adresse MAC

Voici un script de génération d'adresse MAC en fonction du nom du conteneur :

#!/bin/bash
 if [ -n "$1" ]
     then
         OID="44:8a:5b"
         RAND=$(echo $1 | md5sum | sed 's/\(..\)\(..\)\(..\).*/\1:\2:\3/')
         echo "$OID:$RAND"
     else
         echo "ERREUR: Merci de soumettre un nom pour générer l'adresse MAC :"
         echo "       $FUNCNAME myhost"
 fi

Activer la couleur dans le shell du conteneur

Par défaut, le shell Bash des conteneurs n'affichent pas de couleurs. Pour corriger ça il faut définir la variable TERM à xterm-256color

On peut mettre cette linge dans /etc/environment

TERM=xterm-256color

Informations utiles

  • Les conteneurs sont situés dans /var/lib/lxc
  • Les conteneurs étalons téléchargés sont stockés dans /var/cache/lxc
  • Le paquet contenant l'outil ping est iputils-ping
  • Pour fixer le DNS (qui est automatiquement récupéré par le DHCP) il faut installer le paquet resolconf et mettre une section dns-namerver <IP_DNS> dans le fichier /etc/network/interfaces
  • Détails des arguments lxc.network du fichier de config : https://linuxcontainers.org/fr/lxc/manpages/man5/lxc.container.conf.5.html

Sources