Asdf le maxi choco du Devops !
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.
Tout d'abord, clonez le dépôt GitHub d'asdf dans votre répertoire utilisateur. Ouvrez votre terminal et exécutez la commande suivante :
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
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 '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
Pour Zsh :
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.zshrc
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.zshrc
Après avoir ajouté ces lignes, rechargez votre fichier de configuration shell. Par exemple, pour Bash, utilisez :
source ~/.bashrc
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 --version
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 python | grep "^3.*"
...
*11.6
*11.7
*12.0
*12-dev
*12.1
*13.0a2
*13-dev
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 python 3.12.1
Ceci installe la version 3.12.1 de python.
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 global python 3.12.1
Et pour une version locale dans un projet spécifique :
cd mon_projet
asdf local nodejs 3.10.11
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 python
Et pour installer une nouvelle version après sa sortie :
asdf install python [nouvelle_version]
asdf global python [nouvelle_version]
Mise à jour d'asdf
Pour la mise à jour vers la dernière release stable, asdf intègre son propre mécanisme d'update :
asdf update
Pour mettre à jour tous les plugins :
asdf plugin update --all
Vérifier les dernières versions disponibles de vos outils :
asdf latest --all
awscli 2.8.0 missing
bat 0.22.1 installed
direnv 2.32.1 installed
docker-compose-v1 docs-v1.8.0-2016-08-03 missing
exa 0.10.1 installed
gohugo 0.104.3 missing
hadolint 2.10.0 installed
helm 3.10.0 missing
jq 1.6 installed
k9s 0.26.6 missing
kind 0.16.0 installed
krew 0.4.3 installed
kubectl 1.25.2 installed
kubectx 0.9.4 installed
kustomize 4.5.7 installed
minikube 1.27.0 installed
mkcert 1.4.4 installed
nomad 1.3.5 installed
packer 1.8.3 installed
polaris 7.1.5 installed
popeye v0.10.1 installed
rclone 1.59.2 installed
tekton-cli 0.26.0 installed
terraform 1.3.1 missing
tflint 0.41.0 missing
tfsec 1.28.0 installed
trivy 0.32.1 missing
vault 1.11.4+ent missing
yq 4.27.5 installed
Tips : Mettre à jour tous les outils
for tool in $(asdf plugin list); do
asdf install "${tool}" latest \
&& asdf global "${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.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
.
Lorsque vous installez un plugin, asdf met à jour un fichier .tool-versions
dans votre répertoire personnel. Alors, sauvegardez le quelque part, pour migrer
de machines rapidement !
Pourquoi je vous déconseille d'utiliser asdf dans vos pipelines CI/CD ?
En parcourant cet outil, je me suis fait cette réflexion : pourquoi ne pas l'utiliser lors de la construction d'image Docker. Très mauvaises idées ! Vous devez garantir la sécurité de votre supply chain. Les scripts des plugins sont à la main de personnes que vous ne connaissez pas. Il est donc très facile d'introduire du code malveillant dans des scripts d'installation
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.