Dans ce blog, nous prendrons un simple script de mise à jour du serveur ANSIBLE et le transformer en un système de mise à jour basé sur les risques . Ici, les serveurs à risque le plus bas sont d'abord corrigés, nous donnant une chance de tester soigneusement avant de passer à des systèmes plus élevés.
La sauce secrète? Configuration des groupes bien définis pour rendre ce flux de manière transparente. Mais la vraie question est: pouvons-nous réaliser cela sans modifications majeures à notre script anible de la dernière fois? Découvrons!
Le fichier hôte est au cœur de ce changement. Dans le dernier article, nous avons utilisé un fichier statique groupé par des types de serveurs. Maintenant, nous ajoutons une deuxième couche de regroupement par niveau de risque - qui ajoute une certaine complexité au fichier hôte.
Mais voici la torsion: 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 sauverait de l'édition de fichiers sans fin!
ANSIBLE peut fonctionner avec des fichiers hôtes créés dynamiquement, ce qui nous donne un moyen plus flexible de garder une trace des serveurs. Dans cet exemple, nous utiliserons un fichier Excel pour organiser nos hôtes.
Exemple Hosts_data.xlsx Structure:
Nom d'hôte | Environnement du serveur | utilisateur anible | type de serveur | dns | notes |
---|---|---|---|---|---|
menthe | dev | Richard | Desktop | Desktop.sebostech.local | Top de bureau de menthe |
ANSIBLE_NODE | dev | ANSIBLE_ADMIN | anible | anible_node.sebostech.local | Development Server; Met à jour uniquement mensuel |
clone_master | dev | ANSIBLE_ADMIN | cloner | clone.dev.sebostech.local | Development Server; Met à jour uniquement mensuel |
mele | mise en scène | Richard | nas | nas.stage.sebostech.local | Testing Server; Utilisé pour les tests d'application |
pbs | production | racine | Backup Server | pbs.prod.sebostech.local | Testing Server; Utilisé pour les tests d'application |
pve | production | racine | hyperviseur | api.stage.sebostech.local | Testing Server; Utilisé pour les tests d'application |
samba | production | Richard | nas | nas.prod.sebostech.local | Server critique; Nécessite une sauvegarde quotidienne |
pare-feu | production | Richard | pare-feu | Firewall.sebostech.local | Server critique; Nécessite une sauvegarde quotidienne |
La plupart des départements informatiques ont déjà une liste de serveurs cachés dans un fichier Excel, alors pourquoi ne pas le mettre à bon escient? Cette approche facilite le maintien de nos hôtes anibles organisés et à jour sans mises à jour manuelles constantes.
Mais comment Ansible utilise-t-il le fichier Excel? Plongeons dans la façon dont 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 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 comme ça!
pour un aperçu du code Python, voir ici.
Lorsque j'ai commencé à utiliser ANSIBLE, le fichier hôte était mon go-to. Mais comme j'ai ajouté plus de serveurs, en particulier ceux avec deux rôles, ce fichier est de plus en plus complexe.
Pourriez-vous utiliser un fichier d'hôtes traditionnel pour y parvenir? Sûr mais il y a quelques inconvénients.
Avec un fichier d'hôtes, vous vous retrouvez 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 à maintenir qui maintient les choses organisées.
Dans un environnement d'entreprise, il y a de fortes chances qu'il y ait déjà au moins un fichier Excel avec une liste de serveurs, alors pourquoi ne pas en profiter?
Si vous souhaitez que je plonge plus profondément dans le code Python, faites-le moi savoir!
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3