Démarrez avec l'automatisation DevOps à l'aide de scripts Python
? Introduction
Bienvenue dans le monde de DevOps et Python
C’est un mythe répandu selon lequel les ingénieurs DevOps ne codent pas, mais la vérité est loin d’être le cas. Les ingénieurs DevOps s'appuient souvent sur des compétences en programmation pour automatiser les processus, gérer l'infrastructure et simplifier les flux de travail. Python et Go sont deux des langages les plus appréciés dans le monde DevOps en raison de leur polyvalence et de leur facilité d'utilisation.
Aujourd'hui, nous allons nous lancer dans un voyage passionnant pour créer trois projets Python qui non seulement vous présenteront l'essentiel de la programmation, mais vous aideront également à créer des applications significatives et pratiques.
Voici ce que nous allons explorer :
- Programme météo — Un programme qui prend le nom d'une ville comme entrée de l'utilisateur et affiche sa météo actuelle. (Nous utiliserons WeatherAPI pour récupérer des données au format JSON – cela semble excitant, n'est-ce pas ?)
- GitHub Pull Request Tracker — Un projet en temps réel pour répertorier les utilisateurs qui ont effectué des demandes d'extraction vers un référentiel GitHub à l'aide de l'API de GitHub.
- SlackBot pour Jenkins Pipeline — Une merveille de projet qui déclenche un pipeline Jenkins et transmet son statut à votre chaîne Slack via un SlackBot personnalisé.
Alors, êtes-vous prêt à vous lancer dans ce voyage ? Commençons !
? Pré-requis
Avant de nous lancer dans le codage, assurons-nous que vous disposez de tout ce dont vous avez besoin pour commencer. Ces projets sont adaptés aux débutants, mais la mise en place des outils et compétences suivants rendra le processus plus fluide :
1. Connaissances de base de Python
Comprendre les variables, les fonctions, les boucles et comment travailler avec les bibliothèques sera utile. Ne vous inquiétez pas si vous êtes nouveau : ces projets renforceront votre apprentissage !
2. Environnement Python
Assurez-vous que Python est installé sur votre système. Vous pouvez le télécharger depuis python.org. Un éditeur de code comme VS Code ou PyCharm est également recommandé.
3. Principes fondamentaux de l'API
Vous travaillerez avec des API dans les trois projets. La connaissance de la création de requêtes HTTP et de la gestion des réponses JSON est un bonus, mais je vous guiderai à travers chaque étape.
4. Outils à installer
- demande une bibliothèque pour effectuer des appels API. Installez-le à l'aide des requêtes d'installation pip.
- Identifiants de l'API Slack et configuration pour le troisième projet. Ne t'inquiète pas; Je vous fournirai des instructions détaillées une fois sur place.
- Compte GitHub pour le deuxième projet et accès à Jenkins pour le troisième projet.
Une fois que vous êtes prêt avec ces pré-requis, nous pouvons nous lancer dans notre premier projet : créer un programme météo !
? Projet 1 : Programme météo
Plongeons dans notre premier projet Python : un programme météo. Ce script simple mais pratique prendra le nom d'une ville comme entrée de l'utilisateur et affichera sa météo actuelle. Pour y parvenir, nous utiliserons WeatherAPI pour récupérer des données météorologiques en temps réel au format JSON et les afficher de manière conviviale.
Comment ça marche :
- Le script invite l'utilisateur à saisir le nom d'une ville.
- À l'aide de la WeatherAPI et d'une clé API, le script récupère les données météorologiques pour la ville spécifiée.
- La réponse JSON de l'API est analysée pour extraire des informations telles que la température, la vitesse du vent et les conditions météorologiques.
- Les résultats sont affichés dans un format soigné et lisible.
Instructions étape par étape :
-
Créer un fichier Python :
- Ouvrez votre éditeur de code préféré (VS Code ou PyCharm est recommandé) et créez un nouveau fichier nommé Weather.py.
- Insérez le code suivant :
import requests def get_city_weather(city, api_key): city_name = city.lower() url = f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={city_name}" response = requests.get(url) if response.status_code == 200: data = response.json() description = data['current']['condition']['text'] temp = data['current']['temp_c'] wind = data['current']['wind_kph'] print(f"\nWeather in {city.capitalize()}:") print(f"Temperature: {temp}°C") print(f"Wind Speed: {wind} Km/hr") print(f"Condition: {description.capitalize()}") else: print(f"{city_name} not found.") def main(): city = input("Enter Your City: ") API_KEY = "<your_api_key>" get_city_weather(city, API_KEY) if __name__ == "__main__": main() </your_api_key>
-
Configurez votre clé API :
- Visitez WeatherAPI et créez un compte gratuit.
- Après vous être connecté, générez votre clé API en sélectionnant le forfait gratuit.
Copiez la clé API et remplacez-la dans le code par la clé réelle.
-
Exécutez le script :
- Ouvrez un terminal dans le dossier où vous avez enregistré Weather.py.
- Exécutez le script en utilisant python Weather.py.
- Entrez le nom d'une ville (par exemple, « Ganganagar ») lorsque vous y êtes invité. Le script affichera les conditions météorologiques actuelles pour cette ville.
Exemple de sortie :
Enter Your City: Ganganagar Weather in Ganganagar: Temperature: 24°C Wind Speed: 10 Km/hr Condition: Clear
Et c'est tout ! Vous avez créé avec succès votre premier projet Python. Il s'agit d'un moyen simple mais puissant de voir comment les API fonctionnent dans des applications réelles.
? Projet 2 : GitHub Pull Request Tracker
Maintenant, créons un tracker GitHub Pull Request (PR). Ce projet exploite l'API GitHub pour récupérer des détails sur les demandes d'extraction pour un référentiel spécifique. Nous filtrerons les données pour extraire les noms d'utilisateur des créateurs de relations publiques, compter le nombre de relations publiques réalisées par chaque créateur et afficher ces informations.
Comment ça marche :
- Le script envoie une requête HTTP GET à l'API GitHub pour obtenir les détails de la demande d'extraction d'un référentiel.
- Il analyse la réponse JSON pour extraire les noms d'utilisateur des créateurs de relations publiques.
- Ces noms d'utilisateur sont stockés dans un dictionnaire, avec le nombre de PR qu'ils ont créés.
- Le programme génère le dictionnaire et une liste détaillée des créateurs de relations publiques avec leurs décomptes respectifs.
Instructions étape par étape :
-
Créer un fichier Python :
- Ouvrez votre éditeur de code et créez un nouveau fichier nommé gb_tracker.py.
- Insérez le code suivant :
import requests def get_city_weather(city, api_key): city_name = city.lower() url = f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={city_name}" response = requests.get(url) if response.status_code == 200: data = response.json() description = data['current']['condition']['text'] temp = data['current']['temp_c'] wind = data['current']['wind_kph'] print(f"\nWeather in {city.capitalize()}:") print(f"Temperature: {temp}°C") print(f"Wind Speed: {wind} Km/hr") print(f"Condition: {description.capitalize()}") else: print(f"{city_name} not found.") def main(): city = input("Enter Your City: ") API_KEY = "<your_api_key>" get_city_weather(city, API_KEY) if __name__ == "__main__": main() </your_api_key>
Exécutez le script :
- Ouvrez un terminal dans le dossier contenant gb_tracker.py.
- Exécutez le script en utilisant python gb_tracker.py.
Résultat attendu :
Lorsque le script s'exécute avec succès, il récupère les détails des demandes d'extraction du référentiel argoproj/argo-cd. Cela présentera le résultat suivant :
Enter Your City: Ganganagar Weather in Ganganagar: Temperature: 24°C Wind Speed: 10 Km/hr Condition: Clear
Cas d'utilisation :
- Environnement de développement : utilisez-le pour surveiller l'activité des relations publiques dans un référentiel et suivre les contributeurs.
- Collaboration : Identifiez les contributeurs fréquents et leur niveau d'activité pour une meilleure gestion d'équipe.
Et voilà ! Un script fonctionnel qui récupère les données en direct de GitHub et les traite pour obtenir des informations réelles.
? Projet 3 : SlackBot pour Jenkins Pipeline
Notre projet final est un joyau : un script qui intègre Jenkins et Slack pour automatiser les notifications de build. Ce script Python déclenche un pipeline Jenkins, surveille son état et envoie une notification à votre chaîne Slack lorsque le pipeline est terminé.
Comment ça marche :
- Trigger Pipeline : Le script démarre par le déclenchement d'un pipeline Jenkins.
- Surveiller l'état de la construction : il vérifie l'état du pipeline à intervalles réguliers jusqu'à ce que la construction soit terminée.
- Envoyer une notification Slack : une fois la construction terminée, le script utilise un robot Slack pour notifier l'état dans un canal Slack désigné.
Instructions étape par étape :
Créer un fichier Python :
Créez un fichier nommé jenkins-slack-integration.py dans votre éditeur de code.
Insérez le code suivant :
import requests url = 'https://api.github.com/repos/argoproj/argo-cd/pulls' response = requests.get(url) if response.status_code == 200: pull_requests = response.json() pr_creators = {} for pull in pull_requests: creator = pull['user']['login'] if creator in pr_creators: pr_creators[creator] += 1 else: pr_creators[creator] = 1 print(f"PR Creator counts: {pr_creators}") for creator, count in pr_creators.items(): print(f"Creator: {creator}: {count} PRs") else: print(f"Failed to make connection. Status Code: {response.status_code}")
Configurer Jenkins :
Créez un projet de pipeline dans Jenkins nommé Jenkins-Python-pipeline.
Ajoutez le script de pipeline Hello World suivant :
PR Creator counts: {'dependabot[bot]': 7, 'devopsjedi': 1, 'aali309': 3, 'adriananeci': 1, 'amine7536': 1, 'lf32': 1, 'OpenGuidou': 1, 'ivan-cai': 1, 'surajyadav1108': 2, 'vasilegroza': 1, 'toyamagu-2021': 1, 'dvcanton': 1, 'vivian-xu': 1, 'rahulbollisetty': 1, 'blakepettersson': 1, 'dacofr': 1, 'mrysavy': 1, 'damsien': 1, 'lsq645599166': 1, 'jpbelangerupgrade': 1, 'Aaron-9900': 1} Creator: dependabot[bot]: 7 PRs Creator: devopsjedi: 1 PRs Creator: aali309: 3 PRs Creator: adriananeci: 1 PRs Creator: amine7536: 1 PRs Creator: lf32: 1 PRs Creator: OpenGuidou: 1 PRs Creator: ivan-cai: 1 PRs Creator: surajyadav1108: 2 PRs Creator: vasilegroza: 1 PRs Creator: toyamagu-2021: 1 PRs Creator: dvcanton: 1 PRs Creator: vivian-xu: 1 PRs Creator: rahulbollisetty: 1 PRs Creator: blakepettersson: 1 PRs Creator: dacofr: 1 PRs Creator: mrysavy: 1 PRs Creator: damsien: 1 PRs Creator: lsq645599166: 1 PRs Creator: jpbelangerupgrade: 1 PRs Creator: Aaron-9900: 1 PRs # The details will vary accroding to the time when you run the script.
Générer un jeton API Jenkins :
- Accédez à vos paramètres utilisateur Jenkins.
- Créez un nouveau jeton et copiez-le.
- Remplacez
dans le script avec ce jeton.
Configurer Slack :
- Créez une chaîne Slack nommée #devops-updates.
- Créez un bot nommé demo et invitez-le sur la chaîne.
- Générez un jeton de bot et remplacez-le dans le script par ce jeton.
Exécutez le script :
- Avant d'exécuter, assurez-vous d'avoir ajouté le bot dans le canal Slack en utilisant invite@demo dans les #devops-updates.
- Exécutez le script en utilisant python jenkins-slack-integration.py.
- Une fois le pipeline terminé, le bot publiera un message dans le canal Slack avec l'état du pipeline.
Exemple de sortie dans Slack :
Pipeline construit avec succès avec le statut : **SUCCÈS**
Ce projet est un exemple fantastique de la façon dont Python peut combler le fossé entre les outils CI/CD et les plateformes de communication, en automatisant les notifications et en améliorant la collaboration.
? Conclusion
Félicitations pour avoir terminé ces trois projets Python passionnants ! Chaque projet a été conçu pour vous apprendre comment Python peut être utilisé dans des scénarios réels :
- Programme météo : vous a montré comment utiliser les API et gérer les données JSON pour récupérer et afficher des informations significatives.
- GitHub PR Tracker : vous a appris à interagir avec l'API de GitHub et à travailler avec des données en direct dans un format structuré.
- SlackBot pour Jenkins Pipeline : démonstration de la puissance de Python pour automatiser les tâches DevOps et améliorer la communication d'équipe avec des intégrations transparentes.
Ces projets ne sont que la pointe de l'iceberg. Au fur et à mesure de votre exploration, vous verrez comment la polyvalence de Python en fait une compétence indispensable pour tout ingénieur DevOps. Au-delà du codage, il permet l'automatisation, améliore la productivité et comble le fossé entre les flux de travail complexes et les solutions conviviales.
Continuez à construire, à expérimenter et à apprendre : c'est l'essence même de Python et de DevOps ! N'oubliez pas que la meilleure façon de maîtriser la programmation est de la faire.
Merci de m'avoir rejoint dans ce voyage ! Si vous avez apprécié ce blog, n'hésitez pas à le partager avec vos amis et camarades apprenants.
? Pour un blog plus informatif, suivez-moi sur Hashnode, X(Twitter) et LinkedIn.
En attendant, bon codage !!
Bon apprentissage ! ?
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!

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Vous pouvez apprendre les bases de Python dans les deux heures. 1. Apprenez les variables et les types de données, 2. Structures de contrôle maître telles que si les instructions et les boucles, 3. Comprenez la définition et l'utilisation des fonctions. Ceux-ci vous aideront à commencer à écrire des programmes Python simples.

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Chargement des fichiers de cornichons dans Python 3.6 Rapport de l'environnement Erreur: modulenotFoundError: NomoduLenamed ...

Comment résoudre le problème de la segmentation des mots jieba dans l'analyse des commentaires pittoresques? Lorsque nous effectuons des commentaires et des analyses pittoresques, nous utilisons souvent l'outil de segmentation des mots jieba pour traiter le texte ...

Comment utiliser l'expression régulière pour correspondre à la première étiquette fermée et à s'arrêter? Lorsque vous traitez avec HTML ou d'autres langues de balisage, des expressions régulières sont souvent nécessaires pour ...


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.