TOOCS.asdf
TOOCS / Rôle Ansible : TOOCS.asdf
- Installe
asdf
- Pour les utilisateurs de
zsh
, configure~/.zlogin
pour une expérience prête à l'emploi - Utilise
asdf
pour 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' >> ~/.bashrc
Bash sur macOS
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profile
Fish
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_install
L'entrée doit avoir la forme :
- LANG: - x.x.x - y.y.y
Où
LANG
est le nom du langage, etx.x.x / y.y.y
sont des numéros de version.La liste
languages_to_install
est ordonnée :languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - elixir: - 1.7.4
Dans cet exemple, les deux versions d’
erlang
seront installées avant queelixir
ne soit installé. Cela est pratique puisqueelixir
nécessite qu’erlang
soit 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.15
Dans 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
python
pointera vers la version3.7.0
- Puisque
python
supporte plusieursglobal
, les commandes suivantes seront également disponibles :python3.7
/pip3.7
python2.7
/pip2.7
python2.6
/pip2.6
python3
/pip3
=> Dernière versionpython3
:python3.7
/pip3.7
python2
/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.13
et>= 3.5.3
peuvent ê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'
erlang
est compatible avec la version d’elixir
à installer /!\**- Ex :
elixir v1.6.6
n'est pas compatible avecerlang 21
! Pour compilerelixir v1.6.6
,erlang 20
doit ê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 queasdf
sans 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