3 votes

lxd-type conteneur IP statique dans le profil

J'essaie de définir une adresse IP statique dans un conteneur lxd. Le conteneur est fait avec :

nonroot $ lxc launch images:centos/7/amd64 my_centos

dans un environnement lxd assez standard (juste l'apt-get install lxd par défaut ; service lxd start). Maintenant, je veux donner à cette chose une IP statique 10.0.3.50 (disons).

Après quelques recherches sur Internet (je ne comprends pas encore pourquoi la documentation du site n'est pas claire à ce sujet), j'ai découvert que les informations du profil, que je dois pirater pour y parvenir, se trouvaient dans une base de données sqlite. Ok :

lxc profile copy default my_centos
lxc profile edit my_centos
...
name: my_centos 
  config: {} 
  description: "" 
  devices:   
    eth0:
      name: eth0
      nictype: bridged
      parent: lxcbr0
      type: nic

et il ne me laisse pas le changer en :

name: my_centos
config: 
  raw.lxc: 
    lxc.network.type = veth
    lxc.network.name = eth0
    lxc.network.link = lxcbr0
    lxc.network.ipv4 = 10.0.3.50/24
    lxc.network.ipv4.gateway = 10.0.3.1
    lxc.network.flags = up

description: ""
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: lxcbr0
    type: nic

L'erreur est : Erreur d'analyse de la configuration : Seules les clés ipv4/ipv6 lxc.network spécifiques à l'interface sont autorisées.

Cela a probablement à voir avec le nictype et le type de eth0, mais la suppression du périphérique a le même effet.

Quelqu'un peut-il m'éclairer sur la bonne façon de procéder ?

C'est un peu lié à Conteneurs LXD et mise en réseau avec IP statique mais je veux le mettre en place avec lxd (donc avec des profils au lieu de fichiers de configuration).

3voto

jahackbeth Points 156

J'ai eu un problème similaire où je voulais des conteneurs avec des IP statiques et je voulais qu'ils soient visibles sur mon réseau local.

Je n'ai pas encore trouvé comment le faire via les profils LXD. Mais ci-dessous sont les étapes pour créer un seul conteneur avec une IP statique. Ensuite, vous pouvez écrire un script qui clone le conteneur et change simplement son IP dans le fichier /etc/network/interfaces, ce qui vous donne en fait la possibilité de créer des conteneurs avec des IP statiques.

Voici les étapes :

Créez un pont sur la machine hôte.

modifier : /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
#iface eth0 inet dhcp

auto br0
iface br0 inet static
    address 172.16.115.208
    broadcast 172.16.119.255
    netmask 255.255.248.0
    gateway 172.16.112.1
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

Remplacez les adresses IP par vos valeurs.

Notez que "bridge_ports" ajoute votre eth0 au pont.

Redémarrez le réseau :

sudo /etc/init.d/networking restart

Amenez le nouveau pont :

sudo ifup br0

À ce stade, vous devez vous assurer que vous disposez toujours d'une connectivité réseau via le pont nouvellement créé.

Modifiez votre profil lxc et définissez le parent comme le pont nouvellement créé.

lxc profile edit default<or your container's profile name>

-       parent: lxcbr0
+       parent: br0

Accédez au conteneur et définissez une adresse IP statique.

lxc exec my-container-name /bin/bash
sudo vim /etc/network/interfaces

    #auto eth0
    #iface eth0 inet dhcp

    auto eth0
    iface eth0 inet static
    address 172.16.115.252
    broadcast 172.16.119.255
    netmask 255.255.248.0
    gateway 172.16.112.1

Encore une fois, changez les adresses IP en conséquence. Redémarrez votre conteneur et vérifiez si la nouvelle IP lui a été attribuée.

lxc info my-container-name

Votre conteneur a maintenant une IP statique et est visible sur le réseau. Vous pouvez maintenant écrire un script qui le clone et change la valeur de l'IP dans le fichier des interfaces pour obtenir plusieurs conteneurs avec des IP statiques différentes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X