TOOCS.asdf

Statut de construction Rôle Ansible

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

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
    

    LANG est le nom du langage, et x.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 que elixir ne soit installé. Cela est pratique puisque elixir 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 (pour erlang) pointera vers la version 21.1.14
    • La commande python pointera vers la version 3.7.0
    • Puisque python supporte plusieurs global, les commandes suivantes seront également disponibles :
      • python3.7 / pip3.7
      • python2.7 / pip2.7
      • python2.6 / pip2.6
      • python3 / pip3 => Dernière version python3 : python3.7 / pip3.7
      • python2 / pip2 => Dernière version python2 : python2.7 / pip2.7

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
  • Erlang
    • Compilé avec documentation mais sans jinterface
  • 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 avec erlang 21 ! Pour compiler elixir v1.6.6, erlang 20 doit être utilisé.

Variables du rôle

  • asdf_version

    • Version de asdf à installer
    • Par défaut : v0.6.2
  • skip_shell_setup

    • Si True, n'installera que asdf sans configurer le shell
    • Par défaut : False
  • languages_to_install

    • Liste des langages, et versions, à installer en utilisant asdf. Voir Installer des langages
    • Par défaut : []

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

À propos du projet

Install 'asdf'

Installer
ansible-galaxy install TOOCS.asdf
Licence
mit
Téléchargements
175
Propriétaire
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)