Aller au contenu

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.

Terminal window
wget https://github.com/asdf-vm/asdf/releases/download/v0.16.2/asdf-v0.16.2-linux-amd64.tar.gz
tar -xvzf asdf-v0.16.2-linux-amd64.tar.gz -C ${HOME}/.local/bin
chmod +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 :

Terminal window
echo -e '\nexport PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"' >> ~/.bashrc
echo -e '\n. <(asdf completion bash)' >> ~/.bashrc

Pour Zsh :

Terminal window
echo -e '\n. export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"' >> ~/.zshrc
mkdir -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

Terminal window
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 :

Terminal window
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 :

Terminal window
asdf --version
0.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 :

Terminal window
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 :

Terminal window
asdf list all nodejs
...
22.9.0
22.10.0
22.11.0
22.12.0
22.13.0
22.13.1
22.14.0
23.0.0
23.1.0
23.2.0
23.3.0
23.4.0
23.5.0
23.6.0
23.6.1
23.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 :

Terminal window
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 :

Terminal window
asdf set python 22.9.0 --home

Et pour une version locale dans un projet spécifique :

Terminal window
cd mon_projet
asdf 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 :

Terminal window
asdf plugin update nodejs

Et pour installer une nouvelle version après sa sortie :

Terminal window
asdf install nodejs [nouvelle_version]
asdf set --home nodejs [nouvelle_version]

Pour mettre à jour tous les plugins :

Terminal window
asdf plugin update --all

Vérifier les dernières versions disponibles de vos outils :

Terminal window
act 0.2.74 missing
awscli 2.24.4 missing
dagger 0.15.4 missing
direnv 2.35.0 installed
fzf 0.60.0 missing
gitleaks 8.23.3 missing
glab 1.53.0 missing
golang 1.24.0 missing
helm 3.17.1 missing
k9s 0.32.7 missing
kind 0.26.0 missing
krew 0.4.4 installed

Tips : Mettre à jour tous les outils

Terminal window
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 :

Terminal window
asdf uninstall <nom du plugin> <version>

Désinstaller un plugin :

Terminal window
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 :

Terminal window
python 3.12.1
poetry 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.