grzegorznowak.nvm_node
Ansible NVM Node
Instala Node a través de NVM en Debian y Redhat.
Instalación
puedes optar por
ansible-galaxy install grzegorznowak.nvm_node
- clonar el repositorio directamente
Descargo de responsabilidad
Es una instalación bastante específica de Node que no depende de ningún paquete de apt/yum ni sigue la forma recomendada (@ver https://github.com/creationix/nvm/issues/1533) de usar NVM. Además, la gestión de versiones solo se puede lograr a través de Ansible. Asegúrate de que la configuración proporcionada aquí es la que realmente necesitas. Yo diría que es 70% para propósitos de DESARROLLO y 30% para uso en producción. Y 0% si planeas tener muchos usuarios/roles usándolo en un solo servidor; no funcionará en su estado actual (aunque podría funcionar en algún momento con un mínimo esfuerzo adicional).
El punto clave es que instala NVM en una ruta global y crea un enlace simbólico de vuelta a /usr/local/bin
para garantizar el acceso general, y modifica el bashrc global para incluir las rutas de NVM para cada usuario en el sistema. Aunque esto puede parecer menor, rompe el concepto de NVM como una herramienta por usuario, y no funciona al 100% cuando se utilizan shells no interactivas específicas. Esto podría afectar el uso de los paquetes instalados por npm en esos casos.
Sin embargo, como es una herramienta genial, NVM realmente es nuestra herramienta de elección, así que así la necesitamos y puede que tú también la necesites.
Requisitos
No tiene dependencias, solo ten en cuenta que instalará wget
para obtener el script de instalación de NVM.
Cobertura
Actualmente, se compila e integra en estas distribuciones:
Ubuntu: 20.04, 18.04, 16.04, 14.04
Debian: buster, stretch
CentOS: 7
Variables
valores predeterminados
nvm_install_script_version: "0.33.11" # el script de instalación de nvm a utilizar (última versión estable al momento de escribir esto)
nvm_user_name: "root" # puedes usar un usuario diferente, y quizás logres un enfoque más parecido a nvm
# pero no lo he cubierto en pruebas, etc.
nvm_dir: "/var/lib/nvm" # para instalación global (predeterminada). Sigue la misma regla que la variable nvm_user_name
nvm_node_version: "8.11.3" # la versión de Node a instalar a través de NVM
nvm_install_globally: [] # bibliotecas para instalar globalmente y crear enlaces simbólicos, mira más abajo para detalles
Ejemplo de playbook
cuando se clona desde github
---
- hosts: all
vars:
nvm_node_version: "4.1.1"
roles:
- role: ansible-nvm-node
cuando se instala desde ansible-galaxy
---
- hosts: all
vars:
nvm_node_version: "tu.versión.node"
roles:
- role: grzegorznowak.nvm_node
Actualización de Node
Simplemente reemplaza nvm_node_version
con la versión que quieras usar globalmente y vuelve a ejecutar el playbook.
Instalación de paquetes globales
Para la mejor coherencia, se te recomienda encarecidamente instalar los paquetes globales utilizando este rol también, en cuyo caso solo debes editar la variable nvm_install_globally
, de la siguiente manera:
nvm_install_globally: ['gulp']
también puedes usar la especificación de versión para los paquetes globales:
nvm_install_globally:
- name: yarn
version: 1.9.4
o mezclar ambos:
nvm_install_globally:
- gulp
- lighthouse
- name: yarn
version: 1.9.4
y eso instalará las bibliotecas listadas y creará un enlace simbólico en el $PATH global para que entornos específicos puedan acceder a él (como cron).
Pruebas
Requisitos
puedes usar un script auxiliar que instalará un entorno virtual con todo lo necesario
./bootstrap_test.sh
luego simplemente activa el entorno virtual con source test_env/bin/activate
o hazlo manualmente para tener más control
sudo apt install virtualenv python3-pip
virtualenv test_env --python=python3
source test_env/bin/activate
pip install -r test-requirements.txt
Pruebas con contenedores LXC
molecule test
Beneficios adicionales de molecule
Puedes hacer todo tipo de cosas útiles como molecule converge
para simplemente iniciar instancia(s) cuando lo desees
y luego destruirlas con molecule destroy
. ¡Las posibilidades son infinitas!
Patrocinado por
Kwiziq.com - La plataforma de educación de idiomas con IA
Spottmedia.com - Diseño tecnológico, entrega y consultoría
Información del autor
Presentado con amor por Grzegorz Nowak.
Installs node via nvm globally; includes molecule testing framework.
ansible-galaxy install grzegorznowak.nvm_node