documentation_technique:lxc:creation_conteneur_en_utilisant_lxd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
documentation_technique:lxc:creation_conteneur_en_utilisant_lxd [03/13/2023 18:15:50] – guilhemdocumentation_technique:lxc:creation_conteneur_en_utilisant_lxd [02/20/2025 20:14:13] (Version actuelle) – typo thomas
Ligne 1: Ligne 1:
-==== Creation conteneur en utilisant LXD ====+==== Creation conteneur en utilisant incus ====
  
 ====== Création d'un conteneur ====== ====== Création d'un conteneur ======
Ligne 11: Ligne 11:
 ===== Création effective du conteneur ===== ===== Création effective du conteneur =====
  
-Sur l'//hyperviseur// lxd, lancer le script ''%%new-lxc-ct.sh%%'' situé dans /root. Aucun paramètre n'est nécessaire. Le script demande le hostname et l'IPv6 principale a utiliser directement sur la stdin. Ce script crée le conteneur, le démarre, change ses dépots apt, le met à jour, installe python (nécessaire pour qu'ansible fonctionne par la suite) et définie les limites suivantes :+Sur l'//hyperviseur// lxd, lancer le script ''%%new-incus-ct.sh%%'' situé dans /root. Aucun paramètre n'est nécessaire. Le script demande le hostname et l'IPv6 principale a utiliser directement sur la stdin. Ce script crée le conteneur, le démarre, change ses dépots apt, le met à jour, installe python (nécessaire pour qu'ansible fonctionne par la suite) et définie les limites suivantes :
  
-  * CPU = 1 ( ''%%lxc config set ${hostname} limits.cpu 1%%'') +  * CPU = 1 ( ''%%incus config set ${hostname} limits.cpu 1%%'') 
-  * RAM = 256Mo (''%%lxc config set ${hostname} limits.memory 256MB%%'') +  * RAM = 256Mo (''%%incus config set ${hostname} limits.memory 256MB%%'') 
-  * Pas de Swap (''%%lxc config set ${hostname} limits.memory.swap true%%'') +  * Pas de Swap (''%%incus config set ${hostname} limits.memory.swap true%%'') 
-  * Taille du / = 5Go (''%%lxc config device set ${hostname} root size 5GB%%'')+  * Taille du / = 5Go (''%%incus config device set ${hostname} root size 5GB%%'') 
 +  * Gestion stricte de la RAM (''%%incus config device set ${hostname} limits.memory.enforce: hard%%'')
  
-Il est possible d'adapter ces limites après coup si nécessaire, en utilisant les commandes ''%%lxc config ...%%'' .+Il est possible d'adapter ces limites après coup si nécessaire, en utilisant les commandes ''%%incus config ...%%'' .
  
 Pour mémoire, la sortie du script quand il s'exécute correctement : Pour mémoire, la sortie du script quand il s'exécute correctement :
- +<code> 
-<HTML> +root@karadoc:/root# ./new-incus-ct.sh 
-<pre> +
-root@karadoc:/root# ./new-lxc-ct.sh +
 CT hostname ? CT hostname ?
 test-doc test-doc
Ligne 55: Ligne 54:
 Device eth0 added to test-doc Device eth0 added to test-doc
 Fin de l'install, restart CT Fin de l'install, restart CT
-</pre> +</code>
-</HTML> +
-Une fois le conteneur crée, il doit apparaître dans le résultat de la commande ''%%lxc list%%'' comme "RUNNING".+
  
-Pour obtenir un prompt sur le conteneur directement depuis l'hyperviseur, on peut utiliser la commande ''%%lxc exec ${HOSTNAME} bash%%''+Une fois le conteneur crée, il doit apparaître dans le résultat de la commande ''%%incus list%%'' comme "RUNNING". 
 + 
 +Pour obtenir un prompt sur le conteneur directement depuis l'hyperviseur, on peut utiliser la commande ''%%incus exec ${HOSTNAME} bash%%''
  
 ====== Mise en place du réseau ====== ====== Mise en place du réseau ======
Ligne 71: Ligne 70:
   * éditer le fichier ''%%/etc/tayga.conf%%'' pour y ajouter une ligne //map// faisant correspondre une IPv4 disponible avec l'ipv6 principale du conteneur. Puis redémarrer taygua ''%%systemctl restart tayga%%'' pour appliquer le changement.   * éditer le fichier ''%%/etc/tayga.conf%%'' pour y ajouter une ligne //map// faisant correspondre une IPv4 disponible avec l'ipv6 principale du conteneur. Puis redémarrer taygua ''%%systemctl restart tayga%%'' pour appliquer le changement.
   * éditer le fichier ''%%/etc/bird/bird.conf%%'' pour y ajouter une route en /32 vers l'interface nat64. Puis vérifier que la conf est syntaxiquement correcte avec ''%%birdc configure check%%''; si c'est le cas, appliquer la conf avec ''%%birdc configure %%''   * éditer le fichier ''%%/etc/bird/bird.conf%%'' pour y ajouter une route en /32 vers l'interface nat64. Puis vérifier que la conf est syntaxiquement correcte avec ''%%birdc configure check%%''; si c'est le cas, appliquer la conf avec ''%%birdc configure %%''
 +
 +Dans le cas d'une configuration dual-stack ipv4 et ipv6 ([[documentation_technique:machines:karadoc|karadoc]] par ex) on ne touche pas à bird / tayga et on utilise les résolveurs suivants:
 +<code>
 +cat /etc/resolv.conf
 +nameserver 80.67.169.12 
 +nameserver 2a00:5881:8100:1000::3
 +options timeout:1
 +</code>
  
 ====== Normalisation et installation des bases avec ansible ====== ====== Normalisation et installation des bases avec ansible ======
  
-<HTML><ul></HTML> +Depuis l'hyperviseur, utiliser la commande ''%%incus exec ${HOSTNAME} bash%%'' pour obtenir un prompt sur notre nouveau conteneur.<HTML></li></HTML> 
-<HTML><li></HTML>Depuis l'hyperviseur, utiliser la commande ''%%lxc exec ${HOSTNAME} bash%%'' pour obtenir un prompt sur notre nouveau conteneur.<HTML></li></HTML> + 
-<HTML><li></HTML>Ajouter sa clef ssh, temporairement, au ''%%/root/.ssh/authorized_keys%%'' du conteneur nouvellement crée<HTML></li></HTML> +Ajouter sa clef ssh, temporairement, au ''%%/root/.ssh/authorized_keys%%'' du conteneur nouvellement crée<HTML></li></HTML> 
-<HTML><li></HTML>Vérifier que l'on parvient à se connecter en SSH depuis sa machine.<HTML></li></HTML> + 
-<HTML><li></HTML>Sur sa propre machine, installer ansible et cloner le dépot git qui contient les rôles ansible: +Vérifier que l'on parvient à se connecter en SSH depuis sa machine.<HTML></li></HTML> 
-<HTML> + 
-<pre>+Sur sa propre machine, installer ansible et cloner le dépot git qui contient les rôles ansible: 
 + 
 +<code>
 sudo apt install git ansible sudo apt install git ansible
 mkdir ~/Hadoly mkdir ~/Hadoly
Ligne 86: Ligne 95:
 git clone https://git.hadoly.fr/CS_CT/ansible_hadoly.git git clone https://git.hadoly.fr/CS_CT/ansible_hadoly.git
 cd admin/ansible cd admin/ansible
-</pre> +</code> 
-</HTML><HTML></li></HTML> +Editer le fichier ''%%ansible/hosts%%'' et ajouter le nouveau CT dans la section new, en suivant le modèle: ''%%2001:912:3064:XXX ansible_user=root ansible_port=22%%'' 
-<HTML><li></HTML>Editer le fichier ''%%ansible/hosts%%'' et ajouter le nouveau CT dans la section new, en suivant le modèle: ''%%2001:912:3064:XXX ansible_user=root ansible_port=22%%''<HTML></li></HTML> + 
-<HTML><li></HTML>Exécuter le playbook ansible //etckeeper.yml//: ''%%ansible-playbook -l new etckeeper.yml%%''<HTML></li></HTML> +Exécuter le playbook ansible //etckeeper.yml//: ''%%ansible-playbook -l new etckeeper.yml%%'' 
-<HTML><li></HTML>Éditer le fichier ''%%roles/base/vars/main.yml%%'' ajouter la nouvelle machine. Executer le playbook //main.yml// avec la commande ''%%ansible-playbook -l new base.yml%%''<HTML></li></HTML> + 
-<HTML><li></HTML>Se connecter au conteneur en SSH avec son compte attitré.<HTML></li></HTML> +Éditer le fichier ''%%roles/base/vars/main.yml%%'' ajouter la nouvelle machine. Executer le playbook //base.yml// avec la commande ''%%ansible-playbook -l new base.yml%%'' 
-<HTML><li></HTML>Initialiser son mot de passe sudo avec ''%%sudo passwd-init%%''.<HTML></li></HTML> + 
-<HTML><li></HTML>Supprimer sa clef ssh du ''%%/root/.ssh/authorized_keys%%''.<HTML></li></HTML> +Se connecter au conteneur en SSH avec son compte attitré. 
-<HTML><li></HTML>Redémarrer ssh avec ''%%systemctl restart ssh%%''.<HTML></li></HTML> + 
-<HTML><li></HTML>A partir de cet instant, il faut se connecter en ssh sur le port **6900**.<HTML></li></HTML> +Initialiser son mot de passe sudo avec ''%%sudo passwd-init%%''. 
-<HTML><li></HTML>Sur sa machine, éditer a nouveau le fichier ''%%ansible/hosts%%'', supprimer l'hote de la section new, le mettre dans la section conteneur avec tous les autres.<HTML></li></HTML> + 
-<HTML><li></HTML>''%%git commit%%'' et ''%%git push%%'' pour posser sur le dépot git les modifications liées à l'ajout du nouveau conteneur.<HTML></li></HTML> +Supprimer sa clef ssh du ''%%/root/.ssh/authorized_keys%%''. 
-<HTML><li></HTML>Ne pas oublier d'//etc-commiter// sur toutes les machines où il y a eu des changements de conf.<HTML></li></HTML><HTML></ul></HTML>+ 
 +Redémarrer ssh avec ''%%systemctl restart ssh%%''. 
 + 
 +A partir de cet instant, il faut se connecter en ssh sur le port **6900**. 
 + 
 +Sur sa machine, éditer a nouveau le fichier ''%%ansible/hosts%%'', supprimer l'hote de la section new, le mettre dans la section conteneur avec tous les autres. 
 + 
 +''%%git commit%%'' et ''%%git push%%'' pour posser sur le dépot git les modifications liées à l'ajout du nouveau conteneur. 
 + 
 +Ne pas oublier d'//etc-commiter// sur toutes les machines où il y a eu des changements de conf. 
 + 
 + 
 +mettre à jour https://wiki.hadoly.fr/documentation_technique:machines 
 + 
 +====== Déploiement agent zabbix ====== 
 + 
 +Exécuter le playbook "zabbix_client.yml": ''%%ansible-playbook -l CHANGEME zabbix_client.yml%%'' #CHANGEME étant le nom du container défini dans le fichier hosts. 
 + 
 +On peut ignorer l'erreur "create zabbix mysql account" 
 + 
 +À ce stade, le client [[documentation_technique:supervision|zabbix]] est fonctionnel et la machine s'est normalement enregistrée auprès de https://infra.opendoor.Fr/zabbix 
 + 
 +Les éléments suivants sont surveillés: 
 + * espace disque 
 + * disponibilité de la machine 
 + * nombre de processus en cours de fonctionnement 
 + * charge cpu, mémoire et IO 
 + 
 +Une fois les services déployées sur la machine, il est possible de se connecter sur le serveur zabbix pour parfaire la supervision 
 + 
 +====== Déploiement backup ====== 
 + 
 +Voir [[:documentation_technique:sauvegardes?s[]=borg#mise_en_œuvre|la page sauvegarde]] 
  
  
  • documentation_technique/lxc/creation_conteneur_en_utilisant_lxd.1678731350.txt.gz
  • Dernière modification : 03/13/2023 18:15:50
  • de guilhem