TOOCS.asdf

Estado de Construcción Rol de Ansible

TOOCS / Rol de Ansible: TOOCS.asdf

  • Instala asdf
  • Para usuarios de zsh, configura ~/.zlogin para una experiencia lista para usar
  • Usa asdf para instalar los lenguajes de tu elección (soporte limitado, consulta Instalar lenguajes)

¿Qué es TOOCS?

TOOCS - Las Configuraciones de Un Clic con Opiniones son un conjunto de herramientas / roles de ansible diseñados para configurar un sistema con un solo clic. Son una forma simple y confiable de configurar una herramienta determinada. Puedes usarlas tal cual o, al inspeccionar su código, como un tutorial a seguir paso a paso.

Como su nombre indica, son opiniones: aunque garantizan configurar la herramienta dada con un clic, no garantizan coherencia en cómo lo logran, nuevas versiones pueden introducir cambios que rompan lo existente.
Lee el código y asegúrate de entender lo que está sucediendo.

Tabla de Contenidos

Requisitos

Este rol solo funciona en MacOSX y Ubuntu/Debian.

Post instalación - Configuración de la Shell

Usuarios de Zsh

Cuando uses TOOCS en un usuario cuyo shell es zsh, el TOOCS configurará automáticamente el archivo ~/.zlogin. No se requiere ninguna acción adicional.

Si no usas un marco como oh-my-zsh, o si al iniciar tu shell recibes un mensaje de error como 'comando no encontrado: compinit', entonces agrega esta línea antes de las que ya fueron añadidas por el TOOCS en tu archivo ~/.zlogin:

autoload -Uz compinit && compinit

Usuarios que no son Zsh

Para los usuarios que no usan zsh, se requiere una configuración manual. Según tu sistema operativo y shell, ejecuta lo siguiente:

  • Bash en Ubuntu (y otras distribuciones de Linux)

    echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
    echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
    
  • Bash en 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
    

Reinicia tu shell para que los cambios de PATH surtan efecto. (Abrir una nueva pestaña de terminal generalmente lo hará.)

Si estás teniendo problemas para detectar los shims que has instalado, lo más probable es que se deba a que la carga de asdf.bash o asdf.fish no esté al final de tu ~/.bash_profile, ~/.zshrc o ~/.config/fish/config.fish. Necesita ser cargado después de que hayas configurado tu $PATH.

Fuente: configuración oficial de 'asdf'

Instalar Lenguajes

Después de instalar asdf, este TOOCS puede instalar automáticamente diferentes versiones de los lenguajes de tu elección. Se encargará de instalar las dependencias necesarias para cada lenguaje e instalar las diferentes versiones, generalmente prefiriendo compilar desde el código fuente en lugar de descargar los binarios precompilados.

La variable languages_to_install es una lista que contiene todos los lenguajes a instalar, junto con las versiones específicas.

  • Para instalar un lenguaje, agrega una entrada a la lista en languages_to_install

  • La entrada debe tener el siguiente formato:

    - LANG:
        - x.x.x
        - y.y.y
    

    Donde LANG es el nombre del lenguaje, y x.x.x / y.y.y son números de versión.

  • La lista de languages_to_install es ordenada:

    languages_to_install:
      - erlang:
          - 21.1.14
          - 20.3.8.9
    
      - elixir:
          - 1.7.4
    

    En este ejemplo, ambas versiones de erlang se instalarán antes de que se instale elixir. Esto es conveniente ya que elixir requiere que erlang esté compilado.

  • Para cada lenguaje, la lista de versiones para instalar también es ordenada.

    • La primera versión de la lista se establecerá como global
    • Para lenguajes que soportan múltiples global, todas las versiones de la lista, en orden, se establecerán como global (ej: python)
    languages_to_install:
      - erlang:
          - 21.1.14
          - 20.3.8.9
    
      - python: # Soporte para múltiples `global`
          - 3.7.0
          - 2.6.6
          - 2.7.15
    

    En este ejemplo, después de ejecutar el TOOCS, la shell se configurará de la siguiente manera:

    • El comando erl (erlang) apuntará a la versión 21.1.14
    • El comando python apuntará a la versión 3.7.0
    • python soportando múltiples global, los siguientes comandos también estarán disponibles:
      • python3.7 / pip3.7
      • python2.7 / pip2.7
      • python2.6 / pip2.6
      • python3 / pip3 => Última versión de python3: python3.7 / pip3.7
      • python2 / pip2 => Última versión de python2: python2.7 / pip2.7

Lenguajes Soportados

  • Python
    • Soporte para múltiples versiones global
    • En Debian stretch (y Ubuntu bionic), solo se pueden instalar automáticamente las versiones de python >= 2.7.13 y >= 3.5.3. Las versiones anteriores se pueden instalar manualmente más tarde, pero necesita un método alternativo en este momento. Consulta: Pyenv - Problemas Comunes de Compilación - OpenSSL
  • Erlang
    • Compilado con documentación pero sin jinterface
  • Elixir
    • Requiere erlang
    • Compilado explícitamente desde el código fuente
    • **/!\ Asegúrate de que la versión actual de erlang sea compatible con la versión de elixir que deseas instalar /!\**
      • Ej: elixir v1.6.6 no es compatible con erlang 21! Para compilar elixir v1.6.6, debe usarse erlang 20.

Variables de Rol

  • asdf_version

    • Versión de asdf a instalar
    • Predeterminado: v0.6.2
  • skip_shell_setup

    • Si es True, solo instalará asdf sin configurar la shell
    • Predeterminado: False
  • languages_to_install

    • Lista de lenguajes y versiones a instalar usando asdf. Consulta Instalar Lenguajes
    • Predeterminado: []

Ejemplo de Playbook

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf

# O

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf
      vars:
        asdf_version: v0.6.1
        skip_shell_setup: True

# O

- 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

Licencia

MIT

Información del Autor

Sígueme en Twitter: @ThisIsFlorianK
Descubre más sobre mi trabajo: Florian Kempenich - Sitio Web Personal

Acerca del proyecto

Install 'asdf'

Instalar
ansible-galaxy install TOOCS.asdf
Licencia
mit
Descargas
175
Propietario
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)