grzegorznowak.nvm_node

Estado de Construcción

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.

Acerca del proyecto

Installs node via nvm globally; includes molecule testing framework.

Instalar
ansible-galaxy install grzegorznowak.nvm_node
Licencia
Unknown
Descargas
70.5k
Propietario
Let's solve some more problems, shall we ?