Améliorer votre code Ansible avec Spotter
Mise à jour :
Dans ce guide, je vais vous présenter Steampunk Spotter, un outil puissant qui révolutionne qui optimise mes développements Ansible. Steampunk Spotter n’est pas seulement un outil d’analyse ; c’est un complément indispensable à ansible-lint, conçu pour approfondir l’analyse et améliorer considérablement la qualité du code Ansible.
Fonctionnalités Clés de Steampunk Spotter
Steampunk Spotter se distingue par ses fonctionnalités, conçues pour améliorer et faciliter le travail avec Ansible. L’une de ses principales caractéristiques est son interface en ligne de commande (CLI), qui est non seulement facile à utiliser, mais aussi extrêmement puissante.
En outre, Steampunk Spotter s’intègre parfaitement avec des plateformes de de CI/CD populaires comme GitLab ou GitHub. Il propose aussi une extension pour Visual Studio Code. Cette intégration poussée renforce son utilité en permettant aux utilisateurs de l’incorporer facilement dans leur environnement de travail.
Spotter
est plus qu’un simple outil de lint
. En effet, il possède un site
qui recense tous les rapports d’exécution.
En résumé, Spotter permet de vous aider à :
- Structurer vos playbooks pour qu’ils soient lisibles ;
- Éviter les anti-patterns les plus courants dans les playbooks ;
- Identifier des erreurs difficiles à corriger ;
- Identifier les changements de nom de modules et de collections ;
- Identifier les paramètres manquants ou obsolètes ;
- Identifier les modules obsolètes ;
- Identifier les collections non mises à jour ;
- Corriger automatiquement les fqcn incomplet ;
- Migrer votre code vers de nouvelles versions d’Ansible ;
Installation et Configuration de Spotter
Installation de Spotter
Spotter est écrit en python et on peut donc l’installer avec pip
ou pipx
par exemple :
Pour vérifier que Spotter est correctement installé, tapez la commande suivante :
Création d’un compte
Pour commencer à utiliser Steampunk Spotter, rendez-vous sur la page d’inscription ↗, créez un compte et vérifiez votre e-mail.
Configuration
Pour l’authentification, vous avez le choix :
- D’utiliser le combo user/mot de passe:
- via les paramètres
-u <utilisateur> -p <mot-de-passe>
. - via les variables d’environnement
SPOTTER_USERNAME
etSPOTTER_PASSWORD
.
- via les paramètres
- D’utiliser un token que vous aurez généré sur le portail de
spotter ↗ dans la section
my settings
.- via le paramètre
-t <token>
. - via la variable d’environnement
SPOTTER_API_TOKEN
.
- via le paramètre
Analyse du code Ansible avec Spotter
Spotter vous permet de vérifier la qualité de votre contenu Ansible, tel que les playbooks, les rôles et les collections pour améliorer leur qualité. Il peut aussi vous aider à vérifier la qualité des référentiels Git publics pour garantir que les ressources que vous utilisez sont fiables. , sécurisé et bien entretenu.
Pour vérifier le code d’un playbook la commande est assez simple :
Reste plus qu’à analyser le retour. Par exemple ici, il conseille de mettre à
jour la collection community.general
qui est vraiment obsolète.
Vous pouvez vérifier une collection, plusieurs rôles en indiquant simplement le chemin de ceux-ci :
Si vous avez trop d’erreurs, vous pouvez limiter l’analyse à un des niveaux suivant HINT, WARNING ou ERROR :
Il est aussi possible de bypasser certaines erreurs (ce n’est pas bien !) :
Il est aussi possible de limiter aussi l’analyse à certains types de profil : default, security ou full :
Vous pouvez aussi demander à Spotter à corriger pour vous votre code :
Spotter peut aussi analyser le code d’un dépôt git. Il suffit de créer dans l’interface web de Spotter un projet de type Git. Une fois enregistré, le code est automatiquement scanné.
Spotter stocke les informations de toutes vos analyses, que vous pouvez ensuite
visualiser dans l’interface web de l’application. Par défaut, les résultats de
votre analyse sont stockés dans le premier projet de votre organisation, mais si
vous souhaitez organiser vos analyses ou avoir plusieurs organisations ou
projets pour mettre de l’ordre dans vos données d’analyse, alors la gestion par
projets est la réponse. Pour spécifier le projet sous lequel vous souhaitez
stocker les résultats d’analyse spécifiques, utilisez l’argument --project-id
ou -p
.
Définir la configuration
Pour simplifier, il est possible de définir une configuration par défaut. Pour cela, il faut créer un fichier de configuration au format JSON :
Pour appliquer la configuration :
Pour afficher la configuration en cours :
Pour effacer la configuration en cours
Utilisation de l’extension Visual Studio Code
Dans ce chapitre, je me penche sur l’extension Steampunk Spotter pour Visual Studio Code, un outil très pratique pour les développeurs Ansible. Cette extension améliore significativement l’expérience de développement Ansible directement dans l’environnement VS Code.
Elle permet une intégration transparente avec Steampunk Spotter, offrant ainsi aux développeurs la possibilité d’analyser et d’optimiser leurs playbooks sans quitter leur environnement de développement. L’extension fournit des retours en temps réel sur les erreurs potentielles, les questions de sécurité, et les conseils d’optimisation, rendant le processus de développement plus efficace et fiable.
Un peu d’IA dans l’extension Visual Studio code
L’extension Steampunk Spotter pour Visual Studio Code (VSC) intègre une fonctionnalité d’écriture assistée par IA, facilitant l’écriture de code Ansible.
En activant les paramètres de cette fonctionnalité, les utilisateurs ont accès à une multitude de suggestions qui économisent du temps et enrichissent la rédaction des playbooks. Spotter permet de personnaliser le nombre de suggestions affichées, offrant un contrôle total sur le niveau d’assistance.
Conclusion
En conclusion, Steampunk Spotter se révèle être un outil précieux pour tout professionnel travaillant avec Ansible. Ses fonctionnalités avancées, comme l’intégration avec Visual Studio Code et l’écriture assistée par IA, transforment radicalement le processus de création et d’optimisation du code Ansible. Steampunk Spotter offre une plateforme robuste pour améliorer la qualité, la sécurité et l’efficacité des automatisations résalisés avec Ansible.