TOOCS.asdf
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
- Post instalación - Configuración de la Shell
- Instalar Lenguajes
- Variables de Rol
- Ejemplo de Playbook
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, yx.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 instaleelixir
. Esto es conveniente ya queelixir
requiere queerlang
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ón21.1.14
- El comando
python
apuntará a la versión3.7.0
python
soportando múltiplesglobal
, 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 depython3
:python3.7
/pip3.7
python2
/pip2
=> Última versión depython2
:python2.7
/pip2.7
- La primera versión de la lista se establecerá como
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
- Soporte para múltiples versiones
- Erlang
- Compilado con documentación pero sin
jinterface
- Compilado con documentación pero sin
- 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 deelixir
que deseas instalar /!\**- Ej:
elixir v1.6.6
no es compatible conerlang 21
! Para compilarelixir v1.6.6
, debe usarseerlang 20
.
- Ej:
- Requiere
Variables de Rol
asdf_version
- Versión de
asdf
a instalar - Predeterminado:
v0.6.2
- Versión de
skip_shell_setup
- Si es
True
, solo instalaráasdf
sin configurar la shell - Predeterminado:
False
- Si es
languages_to_install
- Lista de lenguajes y versiones a instalar usando
asdf
. Consulta Instalar Lenguajes - Predeterminado:
[]
- Lista de lenguajes y versiones a instalar usando
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
ansible-galaxy install TOOCS.asdf