documentation:technique:lxc
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
doc:technique:lxc [2016/11/22 20:27] – hoccau | documentation:technique:lxc [2017/02/27 22:10] – ↷ Page déplacée de doc:technique:lxc à documentation:technique:lxc hoccau | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== |
+ | |||
+ | ===== Introduction | ||
LXC est utilisé sur notre serveur dans le but de séparer les différents services que nous allons proposer. Cette documentation fait suite aux différents ateliers réalisés pour découvrir et se former sur LXC. | LXC est utilisé sur notre serveur dans le but de séparer les différents services que nous allons proposer. Cette documentation fait suite aux différents ateliers réalisés pour découvrir et se former sur LXC. | ||
Ligne 9: | Ligne 11: | ||
* **cgroups(7)** | * **cgroups(7)** | ||
- | ====== Installation | + | ===== Installation ===== |
Sous Debian, il suffit d' | Sous Debian, il suffit d' | ||
Ligne 15: | Ligne 17: | ||
D' | D' | ||
- | ===== Configuration par défaut | + | ==== Configuration par défaut ==== |
Il est possible de définir une configuration par défaut qui sera incluse dans chaque nouveau conteneur. Cela est particulièrement pratique pour la configuration réseau, souvent la même pour tous. Ce fichier en question est ''/ | Il est possible de définir une configuration par défaut qui sera incluse dans chaque nouveau conteneur. Cela est particulièrement pratique pour la configuration réseau, souvent la même pour tous. Ce fichier en question est ''/ | ||
+ | |||
===== Configuration réseau ===== | ===== Configuration réseau ===== | ||
Ligne 43: | Ligne 46: | ||
Il faut tout d' | Il faut tout d' | ||
- | echo ' | + | echo ' |
Celle-ci va créer le fichier '' | Celle-ci va créer le fichier '' | ||
Ligne 75: | Ligne 78: | ||
-> exemple de règle iptables NAT | -> exemple de règle iptables NAT | ||
- | ====== Utilisation ====== | + | ==== lxc-net |
- | ===== Création | + | '' |
- | Pour créer un conteneur, cela se fait avec la commande '' | + | === Intérêt === |
- | Si l' | + | Même si on pourrait être tenté de n'utiliser que '' |
- | lxc-create -n pouet -t debian -- -r jessie | + | Enfin, une fois de plus, il est bon de se questionner sur ce que l'on veut faire avant tout, afin de voir s'il est adapté et nécessaire. Pour une utilisation sur son poste personnel, orientée développement par exemple, ce script apporte un bon nombre d' |
- | Le conteneur est désormais créé, il est stocké par défaut dans le dossier ''/ | + | === Mise en place === |
- | ==== Optimisations ==== | + | 1. Créer un fichier ''/ |
- | Par défaut, le conteneur sera crée avec une interface réseau | + | <code bash> |
+ | # Active l'utilisation de lxc-net | ||
+ | USE_LXC_BRIDGE=" | ||
+ | # Nom de l'interface bridge qui sera créé | ||
+ | LXC_BRIDGE=" | ||
+ | # IP de l'interface bridge | ||
+ | LXC_ADDR=" | ||
+ | # Masque de sous-réseau de l' | ||
+ | LXC_NETMASK=" | ||
+ | # Adresse | ||
+ | LXC_NETWORK=" | ||
+ | # Plage d'IP servies par le DHCP | ||
+ | LXC_DHCP_RANGE=" | ||
+ | # Nombre d'IP au sein de la plage définie ci-dessus | ||
+ | LXC_DHCP_MAX=" | ||
+ | # Extension de la configuration de dnsmasq | ||
+ | LXC_DHCP_CONFILE="" | ||
+ | # Domaine des conteneurs sur le réseau | ||
+ | LXC_DOMAIN= | ||
+ | </ | ||
+ | |||
+ | Pour information, ce fichier | ||
- | iface eth0 inet manual | + | 2. Redémarrer le service '' |
- | ===== Accès à un conteneur ===== | + | systemctl restart lxc-net.service |
- | Une fois le conteneur créé, il va falloir le démarrer avec la commande '' | + | ... et l'activer si besoin, pour les futurs (re)démarrage |
- | | + | systemctl enable |
- | Par défaut, à partir de LXC 2.0, le conteneur se lance en arrière plan. Si ce n' | + | 3. On peut désormais vérifier |
- | L'un des façons rapides de s' | + | * est-ce que l'interface bridge a bien été créé ? |
- | lxc-attach -n toto | + | ip addr |
- | Attention, vous serez néanmoins dans un environnement restreint. Pour se connecter au conteneur, comme on le ferait pour n' | + | * est-ce que le serveur DNS a bien été lancé et écoute sur la bonne interface ? |
- | lxc-console -n toto | + | ps aux | grep dnsmasq |
- | | + | |
- | ====== lxc-net ====== | + | |
- | lxc-net | + | * est-ce que le service |
+ | systemctl status lxc-net.service | ||
- | 1. Créer un fichier =/ | + | 4. Enfin, il reste à adapter la configuration par défaut des conteneurs (dans '' |
+ | lxc.network.type = veth | ||
+ | lxc.network.link = lxcbr0 | ||
+ | lxc.network.flags = up | ||
- | # Active l' | + | ===== Utilisation |
- | USE_LXC_BRIDGE=" | + | |
- | # Nom de l' | + | |
- | LXC_BRIDGE=" | + | |
- | # IP de l' | + | |
- | LXC_ADDR=" | + | |
- | # Masque de sous-réseau de l' | + | |
- | LXC_NETMASK=" | + | |
- | # Utilisé pour les règles iptables | + | |
- | LXC_NETWORK=" | + | |
- | # Plage d'IP servies par le DHCP | + | |
- | LXC_DHCP_RANGE=" | + | |
- | # Nombre d'IP maximum au sein de la plage définie ci-dessus | + | |
- | LXC_DHCP_MAX=" | + | |
- | # Extension de la configuration de dnsmasq | + | |
- | LXC_DHCP_CONFILE="" | + | |
- | # Domaine des conteneurs sur le réseau | + | |
- | LXC_DOMAIN= | + | |
- | + | ||
- | Ce fichier sera lu à la fin du fichier | + | |
- | 2. (Re)démarrer le service lxc-net | + | ==== Création d'un conteneur ==== |
- | systemctl restart | + | Pour créer un conteneur, cela se fait avec la commande '' |
- | Et l'activer si besoin | + | Si l'on veut créer un conteneur nommé //pouet//, en Debian Jessie, et en utilisant le //backend// par défaut |
- | systemctl enable | + | |
- | 3. Vérifier | + | Le conteneur est désormais créé, il est stocké par défaut dans le dossier ''/ |
- | Est-ce que l' | + | === Optimisations === |
- | ip addr | + | Par défaut, le conteneur sera crée avec une interface réseau '' |
- | Est-ce que le serveur DNS a bien été lancée et écoute sur la bonne interface ? | + | iface eth0 inet manual |
- | ps aux | grep dnsmasq | + | ==== Accès à un conteneur ==== |
- | netstat -ntlp | + | |
- | Est-ce que le service s'est bien exécuté ? | + | Une fois le conteneur créé, il va falloir le démarrer avec la commande '' |
- | systemctl status | + | |
- | 4. Adapter la configuration par défaut | + | Par défaut, à partir de LXC 2.0, le conteneur se lance en arrière plan. Si ce n'est pas le cas, il faudra passer l' |
- | | + | L'un des façons rapides de s' |
- | lxc.network.link = lxcbr0 | + | |
- | lxc.network.flags = up | + | |
+ | lxc-attach -n toto | ||
+ | |||
+ | Attention, vous serez néanmoins dans un environnement restreint. Pour se connecter au conteneur, comme on le ferait pour n' | ||
+ | |||
+ | lxc-console -n toto |
documentation/technique/lxc.txt · Dernière modification : 2018/09/09 21:26 de cacatoes