为Ansible安装NodeJS LTS

时间:2017-08-23 13:08:49

标签: node.js ansible ansible-role

我正在寻找一个合适的Ansible Role或Ansible YAML文件,用于在Ubuntu 16.04.3 xenial系统上安装NodeJS LTS。我尝试过来自Galaxy的10多个Ansible角色,但没有找到任何工作(抛出错误,如potentially dangerous to add this PPA etc.

任何人都可以提供任何Ansible剧本或建议我在Ubuntu 16.04上安装NodeJS LTS的角色吗?

4 个答案:

答案 0 :(得分:12)

以下是工作示例:

---
- hosts: all
  gather_facts: yes
  become: yes
  vars:
    NODEJS_VERSION: "8"
    ansible_distribution_release: "xenial" #trusty
  tasks:
    - name: Install the gpg key for nodejs LTS
      apt_key:
        url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key"
        state: present

    - name: Install the nodejs LTS repos
      apt_repository:
        repo: "deb https://deb.nodesource.com/node_{{ NODEJS_VERSION }}.x {{ ansible_distribution_release }} main"
        state: present
        update_cache: yes

    - name: Install the nodejs
      apt:
        name: nodejs
        state: present

希望它能帮到你

答案 1 :(得分:5)

可接受的答案是好的,但是如果您愿意,可以将发现的变量用于发行版代号(即ansible_lsb.codename)。另外,确保在主机上安装了gcc g++ make,以确保Node.js的本机插件正常工作。

只需将节点版本12替换为您想要的版本即可。

---
- name: Install nodejs
  hosts: all
  become: true
  tasks:
    - name: install nodejs prerequisites
      apt:
        name:
          - apt-transport-https
          - gcc
          - g++
          - make
        state: present
    - name: add nodejs apt key
      apt_key:
        url: https://deb.nodesource.com/gpgkey/nodesource.gpg.key
        state: present
    - name: add nodejs repository
      apt_repository:
        repo: deb https://deb.nodesource.com/node_12.x {{ ansible_lsb.codename }} main
        state: present
        update_cache: yes
    - name: install nodejs
      apt:
        name: nodejs
        state: present

答案 2 :(得分:0)

您可以使用:

ansible-galaxy install nodesource.node

然后在你的剧本上添加 roles: - nodesource.node

答案 3 :(得分:0)

不是我真的对必须这样做感到高兴,但是...

env:Ubuntu 18.04,ansible 2.6.1,主机:macOS

来自https://github.com/nodesource/distributions/blob/master/README.md#debinstall

- name: install node 
  shell: |
    curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - && sudo apt-get install -y nodejs

结果:

> vagrant@vagrant:~$ node --version
v10.15.2

npm也必须出现:

vagrant@vagrant:~$ npm --version
6.4.1

在我运行此代码时,https://www.npmjs.com/package/npm最近显示了 6.8.0 ,而 6.4.1 是6个月前的结果。 Node显示的 10.15.2 是最新的10.x系列,日期早于5天。

顺便说一句,我也尝试过apt-get,但是以节点8.x而不是10.x结尾

我之所以不使用星际银河角色,是因为我没有看到任何NodeJS脚本似乎来自知名作家,并且有很多明星和下载作品(我很谨慎且可疑)。 / p>

更新npm

我的开发机上有6.8.0,所以我添加了这个内容:

vars.yml

versions:
  npm: "6.8.0"

playbook.yml

- name: npm self-update
  command: npm install npm@{{ versions.npm }} -g

这使我一路走到

vagrant@vagrant:~$ npm --version
6.8.0