| 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 [01/23/2025 20:13:26] – rajout déploiement du client zabbix thomas | documentation_technique:lxc:creation_conteneur_en_utilisant_lxd [02/20/2025 20:14:13] (Version actuelle) – typo thomas |
|---|
| ==== Creation conteneur en utilisant LXD ==== | ==== Creation conteneur en utilisant incus ==== |
| |
| ====== Création d'un conteneur ====== | ====== Création d'un conteneur ====== |
| ===== 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 |
| 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 ====== |
| ====== 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> |
| 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. |
| |
| '%%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. |
| |
| 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. |
| ====== Déploiement agent zabbix ====== | ====== 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. | 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" | On peut ignorer l'erreur "create zabbix mysql account" |
| |
| À ce stade, le client zabbix est fonctionnel et la machine s'est normalement enregistrée auprès de https://infra.opendoor.Fr/zabbix | À 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: | Les éléments suivants sont surveillés: |
| |
| Une fois les services déployées sur la machine, il est possible de se connecter sur le serveur zabbix pour parfaire la supervision | 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]] |
| | |
| |
| |