TOOCS.asdf
TOOCS / Rôle Ansible : TOOCS.asdf
- Installe
asdf - Pour les utilisateurs de
zsh, configure~/.zloginpour une expérience prête à l'emploi - Utilise
asdfpour installer les langages de votre choix (support limité, voir Installer des langages)
TOOCS ?
TOOCS - Les configurations express qui ne laissent pas de place au doute sont un ensemble d'outils / rôles Ansible conçus pour configurer un système en un clic. Ce sont une méthode simple et fiable pour configurer un outil donné. Vous pouvez les utiliser telles quelles, ou en inspectant leur code, comme un tutoriel à suivre étape par étape.
Comme leur nom l'indique, elles ont une opinion : bien qu'elles garantissent de configurer l'outil donné en un clic, elles ne garantissent pas la cohérence de la manière dont cela est réalisé, des nouvelles versions peuvent introduire des changements perturbateurs.
Lisez le code et assurez-vous de comprendre ce qui se passe !
Table des matières
- Pré-requis
- Post-installation - Configuration du shell
- Installer des langages
- Variables du rôle
- Exemple de Playbook
Pré-requis
Ce rôle fonctionne uniquement sur MacOSX et Ubuntu/Debian.
Post-installation - Configuration du shell
Utilisateurs de Zsh
Lorsque vous utilisez ce TOOCS sur un utilisateur dont le shell est zsh, le TOOCS configurera automatiquement le fichier ~/.zlogin. Aucune action supplémentaire n'est requise.
Si vous n'utilisez pas de framework, tel que oh-my-zsh, ou si à l'ouverture de votre shell vous obtenez un message d'erreur du type 'commande non trouvée : compinit', ajoutez cette ligne avant celles ajoutées par le TOOCS dans votre fichier ~/.zlogin :
autoload -Uz compinit && compinit
Utilisateurs non-Zsh
Pour les utilisateurs non-zsh, une configuration manuelle est requise. Selon votre système d'exploitation et votre shell, exécutez ce qui suit :
Bash sur Ubuntu (et d'autres distributions Linux)
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrcBash sur macOS
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profileFish
echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish mkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
Redémarrez votre shell pour que les changements de PATH prennent effet. (Ouvrir un nouvel onglet de terminal le fera généralement.)
Si vous rencontrez des problèmes de détection des shims que vous avez installés, il est fort probable que cela soit dû au fait que l’inclusion des fichiers asdf.bash ou asdf.fish ne se trouve pas en bas de votre fichier ~/.bash_profile, ~/.zshrc ou ~/.config/fish/config.fish. Cela doit être fait après avoir défini votre $PATH.
Source : configuration officielle d' 'asdf'
Installer des langages
Après avoir installé asdf, ce TOOCS peut installer automatiquement différentes versions des langages de votre choix. Il se chargera d'installer les dépendances requises pour chaque langage et d'installer les différentes versions, en préférant généralement compiler à partir des sources plutôt que de télécharger des binaires pré-compilés.
La variable languages_to_install est une liste contenant tous les langages à installer, ainsi que les versions spécifiques.
Pour installer un langage, ajoutez une entrée à la liste dans
languages_to_installL'entrée doit avoir la forme :
- LANG: - x.x.x - y.y.yOù
LANGest le nom du langage, etx.x.x / y.y.ysont des numéros de version.La liste
languages_to_installest ordonnée :languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - elixir: - 1.7.4Dans cet exemple, les deux versions d’
erlangseront installées avant queelixirne soit installé. Cela est pratique puisqueelixirnécessite qu’erlangsoit compilé.Pour chaque langage, la liste des versions à installer est également ordonnée.
- La première version de la liste sera définie comme
global - Pour les langages supportant plusieurs versions
global, toutes les versions de la liste, dans l'ordre, seront définies comme globales (ex : python)
languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - python: # Support pour plusieurs `global` - 3.7.0 - 2.6.6 - 2.7.15Dans cet exemple, après avoir exécuté le TOOCS, le shell sera configuré comme suit :
- La commande
erl(pourerlang) pointera vers la version21.1.14 - La commande
pythonpointera vers la version3.7.0 - Puisque
pythonsupporte plusieursglobal, les commandes suivantes seront également disponibles :python3.7/pip3.7python2.7/pip2.7python2.6/pip2.6python3/pip3=> Dernière versionpython3:python3.7/pip3.7python2/pip2=> Dernière versionpython2:python2.7/pip2.7
- La première version de la liste sera définie comme
Langages pris en charge
- Python
- Support pour plusieurs versions
global - Sur Debian stretch (et Ubuntu bionic), seules les versions de python
>= 2.7.13et>= 3.5.3peuvent être installées automatiquement. Les versions antérieures peuvent être installées manuellement par la suite, mais cela nécessite un contournement pour le moment. Voir : Pyenv - Problèmes de construction courants - OpenSSL
- Support pour plusieurs versions
- Erlang
- Compilé avec documentation mais sans
jinterface
- Compilé avec documentation mais sans
- Elixir
- Nécessite
erlang - Compilé explicitement à partir des sources
- **/!\ Assurez-vous que la version actuelle d'
erlangest compatible avec la version d’elixirà installer /!\**- Ex :
elixir v1.6.6n'est pas compatible avecerlang 21! Pour compilerelixir v1.6.6,erlang 20doit être utilisé.
- Ex :
- Nécessite
Variables du rôle
asdf_version- Version de
asdfà installer - Par défaut :
v0.6.2
- Version de
skip_shell_setup- Si
True, n'installera queasdfsans configurer le shell - Par défaut :
False
- Si
languages_to_install- Liste des langages, et versions, à installer en utilisant
asdf. Voir Installer des langages - Par défaut :
[]
- Liste des langages, et versions, à installer en utilisant
Exemple de Playbook
- hosts: sandbox
tasks:
- include_role:
name: TOOCS.asdf
# OU
- hosts: sandbox
tasks:
- include_role:
name: TOOCS.asdf
vars:
asdf_version: v0.6.1
skip_shell_setup: True
# OU
- hosts: sandbox
tasks:
- include_role:
name: TOOCS.asdf
vars:
languages_to_install:
- python:
- 3.7.0
- 2.7.15
- 2.6.6
- erlang:
- 20.3.8.9
- 21.1.4
- elixir:
- 1.7.4
- 1.6.6
Licence
MIT
Informations sur l'auteur
Suivez-moi sur Twitter : @ThisIsFlorianK
En savoir plus sur mon travail : Florian Kempenich - Site Personnel
ansible-galaxy install TOOCS.asdf