Maison >développement back-end >Tutoriel Python >Mises à jour dynamiques basées sur les risques à l'aide de Python et Excel

Mises à jour dynamiques basées sur les risques à l'aide de Python et Excel

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 19:44:02333parcourir

Dynamic Risk-Based Updates Using Python and Excel

Mises à jour dynamiques basées sur les risques à l'aide de Python et Excel"

Dans ce blog, nous prendrons un simple script de mise à jour du serveur Ansible et le transformerons en un Système de mise à jour basé sur les risques. Ici, les serveurs présentant le risque le plus faible sont corrigés en premier, ce qui nous donne la possibilité de tester de manière approfondie avant de passer à des systèmes plus prioritaires.

  • Automatisation Ansible :
    • Mises à jour dynamiques basées sur les risques à l'aide de Python et Excel"
    • Fichier hôte
    • Liste d'hôtes dynamique
    • Pourquoi ne pas utiliser un fichier Hosts ?

La sauce secrète ? Mise en place de groupes bien définis pour que ce flux se déroule de manière transparente. Mais la vraie question est la suivante : pouvons-nous y parvenir sans apporter de modifications majeures à notre script Ansible par rapport à la dernière fois ? Découvrons-le !

Fichier hôte

Le fichier hôte est au cœur de ce changement. Dans le dernier article, nous avons utilisé un fichier statique regroupé par types de serveurs. Nous ajoutons désormais une deuxième couche de regroupement par niveau de risque, ce qui ajoute une certaine complexité au fichier hôte.

Mais voici le problème : et si notre fichier hôte pouvait être généré dynamiquement à partir d'une source plus générique ? Cela garderait les choses flexibles et nous éviterait une édition de fichiers sans fin !

Liste d'hôtes dynamique

Ansible peut fonctionner avec des fichiers hôtes créés dynamiquement, ce qui nous offre un moyen plus flexible de suivre les serveurs. Dans cet exemple, nous utiliserons un fichier Excel pour organiser nos hôtes.

Exemple de structure hosts_data.xlsx :

Host Name Server Environment Ansible User Server Type DNS Notes
mint dev richard desktop desktop.sebostech.LOCAL Mint desk top
ansible_node dev ansible_admin Ansible ansible_node.sebostech.local Development server; Only updates monthly
clone_master dev ansible_admin clone clone.dev.sebostech.local Development server; Only updates monthly
mele staging richard nas nas.stage.sebostech.local Testing server; Used for application testing
pbs production root backup server pbs.prod.sebostech.local Testing server; Used for application testing
pve production root hypervisor api.stage.sebostech.local Testing server; Used for application testing
samba production richard nas nas.prod.sebostech.local Critical server; Requires daily backup
firewall production richard firewall firewall.sebostech.local Critical server; Requires daily backup

La plupart des services informatiques ont déjà une liste de serveurs cachée dans un fichier Excel, alors pourquoi ne pas en faire bon usage ? Cette approche permet de garder facilement nos hôtes Ansible organisés et à jour sans mises à jour manuelles constantes.

Mais comment Ansible utilise-t-il le fichier Excel ? Voyons comment nous pouvons transformer ces données en un inventaire dynamique utilisable !

## This will run agains all host
ansible-playbook -i dynamic_inventory.py playbook.yml

Vous pouvez également utiliser l'option de variables d'environnement pour cibler des groupes spécifiques, en fonction de l'environnement du serveur, du type de serveur ou même d'une combinaison des deux :

## Just production
SERVER_ENVIRONMENT="production" 
ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"

## Just nas
SERVER_TYPE="nas" 
ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"

## production nas
SERVER_ENVIRONMENT="production" 
SERVER_TYPE="nas" 
ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"

Besoin de nouveaux groupes ? Mettez simplement à jour le fichier Excel et ajustez le script Python en conséquence, aussi simple que cela !

Pour un aperçu du code Python, voir ici.

Pourquoi ne pas utiliser un fichier Hosts ?

Lorsque j'ai commencé à utiliser Ansible, le fichier hosts était mon outil de prédilection. Mais à mesure que j'ajoutais plus de serveurs, en particulier ceux à double rôle, ce fichier devenait de plus en plus complexe.

Pourriez-vous utiliser un fichier hosts traditionnel pour y parvenir ? Bien sûr, mais il y a quelques inconvénients.

Avec un fichier hosts, vous vous retrouverez probablement avec des entrées en double ou des variables supplémentaires pour capturer toute la structure dont vous avez besoin. Un fichier Excel, en revanche, fournit une structure propre et facile à entretenir qui permet de garder les choses organisées.

Dans un environnement d'entreprise, il y a de fortes chances qu'il existe déjà au moins un fichier Excel avec une liste de serveurs, alors pourquoi ne pas en profiter ?

Si vous souhaitez que j'approfondisse le code Python, faites-le-moi savoir !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn