Asdf le maxi choco du Devops !
Mise à jour :
En tant que spécialiste DevOps, je suis constamment à la recherche d’outils qui rendent la gestion des environnements de développement plus fluide et efficace. Dans cette quête, j’ai découvert asdf-vm appelé aussi asdf qui permet d’installer plusieurs versions de différents outils et langages sur un même système, offrant ainsi une flexibilité et une efficacité accrues pour les développeurs et les administrateurs système.
Les Avantages d’asdf
L’un des principaux défis en développement et en administration système dans un contexte DevOps est de maintenir un environnement de développement cohérent et à jour. Ceci est particulièrement important lorsqu’on travaille avec de multiples projets, langages et outils, chacun ayant ses propres versions et dépendances. Ici, asdf intervient comme une solution élégante et puissante.
asdf se distingue par sa capacité à installer plusieurs langages et outils
de développement. Il remplace avantageusement l’utilisation de multiples
gestionnaires de versions spécifiques à un langage, tels que nvm
pour Node.js
ou pyenv
pour Python. Cela
simplifie considérablement la configuration de l’environnement de développement,
car vous n’avez besoin que d’un seul outil pour gérer toutes vos versions.
asdf permet de définir des versions globales ou locales pour chaque projet. Cela garantit que chaque membre de l’équipe travaille avec la même configuration, évitant ainsi les problèmes liés aux différences de versions.
En résumé, asdf apporte une solution unifiée pour gérer les multiples versions d’outils et de langages, facilitant ainsi la vie des développeurs et des administrateurs système. Sa polyvalence et sa facilité d’utilisation en font un outil incontournable dans l’arsenal DevOps.
Installation d’asdf
L’installation de asdf est un processus simple et direct, qui peut être adapté à différents systèmes d’exploitation. Voici les étapes générales pour installer asdf sur un système Unix-like, tel que Linux ou macOS.
wget https://github.com/asdf-vm/asdf/releases/download/v0.16.2/asdf-v0.16.2-linux-amd64.tar.gztar -xvzf asdf-v0.16.2-linux-amd64.tar.gz -C ${HOME}/.local/binchmod +x ${HOME}/.local/bin/asdf
Ensuite, vous devez configurer votre shell pour utiliser asdf. Si vous
utilisez Bash, Zsh ou un autre shell commun, ajoutez les lignes suivantes à
votre fichier de configuration shell (par exemple, .bashrc
, .zshrc
).
Pour Bash :
echo -e '\nexport PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"' >> ~/.bashrcecho -e '\n. <(asdf completion bash)' >> ~/.bashrc
Pour Zsh :
echo -e '\n. export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"' >> ~/.zshrcmkdir -p "${ASDF_DATA_DIR:-$HOME/.asdf}/completions"asdf completion zsh > "${ASDF_DATA_DIR:-$HOME/.asdf}/completions/_asdf"
Ajoutez la ligne suivant avant celle contenant autoload -Uz compinit && compinit
echo -e '\n. fpath=(${ASDF_DATA_DIR:-$HOME/.asdf}/completions $fpath)' >> ~/.zshrc
Après avoir ajouté ces lignes, rechargez votre fichier de configuration shell. Par exemple, pour Bash, utilisez :
source ~/.bashrc # ou source ~/.zshrc pour Zsh
Certaines dépendances peuvent être nécessaires, selon les langages et outils que vous prévoyez d’utiliser avec asdf. Par exemple, pour les plugins Ruby et Node.js, vous devrez peut-être installer certaines bibliothèques. Vous pouvez trouver ces informations spécifiques dans la documentation des plugins sur le site d’asdf.
Pour vérifier que asdf a été correctement installé, exécutez :
asdf --version0.16.3
Si cette commande retourne la version d’asdf, alors l’installation a été réussie. Vous êtes maintenant prêt à commencer à utiliser asdf pour gérer les versions de vos outils de développement.
Utilisation d’asdf
Une fois asdf installé sur votre système, sa puissance réside dans sa capacité à gérer facilement différentes versions de multiples outils et langages de programmation. Cela se fait en quelques commandes simples, rendant l’expérience de développement plus fluide et moins sujette aux conflits de versions.
Ajout de Plugins
Chaque langage ou outil dans asdf est géré via un plugin. Pour ajouter un plugin, par exemple pour Node.js, utilisez la commande suivante :
asdf plugin add nodejs
Liste des versions
Après avoir ajouté le plugin désiré, vous pouvez lister les versions disponibles de l’outil ou du langage :
asdf list all nodejs
...
22.9.022.10.022.11.022.12.022.13.022.13.122.14.023.0.023.1.023.2.023.3.023.4.023.5.023.6.023.6.123.7.0
Installation d’une Version Spécifique
Vous pouvez installer des versions spécifiques de cet outil. Par exemple, pour installer une version spécifique de python :
asdf install nodejs 22.9.0
Ceci installe la version 22.9.0 de Node.js sur votre système.
Définir une Version Globale ou Locale
Avec asdf, vous pouvez définir des versions globales (pour tout le système) ou locales (pour un projet spécifique). Pour définir une version globale :
asdf set python 22.9.0 --home
Et pour une version locale dans un projet spécifique :
cd mon_projetasdf set nodejs 23.6.0
Mise à jour des Versions et des Plugins
asdf facilite également la mise à jour des versions et des plugins. Pour mettre à jour un plugin :
asdf plugin update nodejs
Et pour installer une nouvelle version après sa sortie :
asdf install nodejs [nouvelle_version]asdf set --home nodejs [nouvelle_version]
Pour mettre à jour tous les plugins :
asdf plugin update --all
Vérifier les dernières versions disponibles de vos outils :
act 0.2.74 missingawscli 2.24.4 missingdagger 0.15.4 missingdirenv 2.35.0 installedfzf 0.60.0 missinggitleaks 8.23.3 missingglab 1.53.0 missinggolang 1.24.0 missinghelm 3.17.1 missingk9s 0.32.7 missingkind 0.26.0 missingkrew 0.4.4 installed
Tips : Mettre à jour tous les outils
for tool in $(asdf plugin list); do asdf install "${tool}" latest \ && asdf set --home "${tool}" latest \ && echo "${tool} set globally"done
Désinstaller une version d’un outil ou un plugin
Pour désinstaller une version d’un outil :
asdf uninstall <nom du plugin> <version>
Désinstaller un plugin :
asdf plugin remove <nom du plugin>
Utilisation d’un fichier de configuration .tool-versions
Dans un contexte d’équipe, asdf aide à synchroniser les environnements de
développement de tous les membres. En partageant simplement les fichiers de
configuration .tool-versions
, chaque membre de l’équipe peut aligner son
environnement sur les versions définies pour le projet.
Supposons que vous travaillez sur un projet nécessitant une version spécifique
de Node.js et Ruby. Avec asdf, vous pouvez définir ces versions dans le
fichier .tool-versions
à la racine de votre projet :
python 3.12.1poetry 1.7.1
Chaque fois que quelqu’un se place dans le répertoire de ce projet, asdf
utilisera automatiquement les versions spécifiées pour python
et poetry
.
Pourquoi je vous déconseille d’utiliser asdf dans vos pipelines CI/CD ?
Conclusion
En tant que spécialiste DevOps, je considère asdf comme un outil essentiel dans l’arsenal de tout développeur ou administrateur système. Sa polyvalence, sa simplicité d’utilisation et sa capacité à gérer de multiples langages et outils font de asdf un choix incontournable pour tout environnement de développement moderne.
D’ailleurs, c’est pour cette raison qu’ASDF a rejoint ma liste d’outils DevOps Indispensables !
Plus d’infos
Pour vous aider à mieux comprendre et à utiliser asdf, voici une liste utile de liens vers le projet et sa documentation. Ces ressources vous fourniront des informations détaillées et des guides pratiques pour tirer le meilleur parti de cet outil.
-
Site Officiel de asdf : https://asdf-vm.com/ ↗ Cette page offre un aperçu général de asdf, incluant ses fonctionnalités principales et les raisons pour lesquelles vous pourriez vouloir l’utiliser.
-
Documentation asdf : https://asdf-vm.com/guide/ ↗ Ce lien mène à la documentation complète de asdf, où vous pouvez trouver des informations détaillées sur l’installation, la configuration et l’utilisation de l’outil.