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 [06/19/2024 19:26:36] – ajout config reseau dual stack thomasdocumentation_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".+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 ''%%lxc exec ${HOSTNAME} bash%%''+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 82: Ligne 81:
 ====== Normalisation et installation des bases avec ansible ====== ====== Normalisation et installation des bases avec ansible ======
  
-Depuis l'hyperviseur, utiliser la commande ''%%lxc exec ${HOSTNAME} bash%%'' pour obtenir un prompt sur notre nouveau conteneur.<HTML></li></HTML>+Depuis l'hyperviseur, utiliser la commande ''%%incus exec ${HOSTNAME} bash%%'' pour obtenir un prompt sur notre nouveau conteneur.<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>
Ligne 90: Ligne 89:
 Sur sa propre machine, installer ansible et cloner le dépot git qui contient les rôles ansible: 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 96: 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
 +</code>
 +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%%''
  
-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>+Exécuter le playbook ansible //etckeeper.yml//: ''%%ansible-playbook -l new etckeeper.yml%%''
  
-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 //base.yml// avec la commande ''%%ansible-playbook -l new base.yml%%''
  
-É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>+Se connecter au conteneur en SSH avec son compte attitré.
  
-Se connecter au conteneur en SSH avec son compte attitré.<HTML></li></HTML>+Initialiser son mot de passe sudo avec ''%%sudo passwd-init%%''.
  
-Initialiser son mot de passe sudo avec ''%%sudo passwd-init%%''.<HTML></li></HTML>+Supprimer sa clef ssh du ''%%/root/.ssh/authorized_keys%%''.
  
-Supprimer sa clef ssh du ''%%/root/.ssh/authorized_keys%%''.<HTML></li></HTML>+Redémarrer ssh avec ''%%systemctl restart ssh%%''.
  
-Redémarrer ssh avec ''%%systemctl restart ssh%%''.<HTML></li></HTML>+A partir de cet instant, il faut se connecter en ssh sur le port **6900**.
  
-A partir de cet instant, il faut se connecter en ssh sur le port **6900**.<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.
  
-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>+''%%git commit%%'' et ''%%git push%%'' pour posser sur le dépot git les modifications liées à l'ajout du nouveau conteneur.
  
-'%%git commit%%'' et ''%%git push%%'' pour posser sur le dépot git les modifications liées à l'ajout du nouveau conteneur.<HTML></li></HTML> +Ne pas oublier d'//etc-commiter// sur toutes les machines où il y a eu des changements de conf.
- +
-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>+
  
  
 mettre à jour https://wiki.hadoly.fr/documentation_technique:machines 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.1718825196.txt.gz
  • Dernière modification : 06/19/2024 19:26:36
  • de thomas