为 Ansible 安装 NodeJS LTS
Installing NodeJS LTS for Ansible
我正在寻找合适的 Ansible 角色或 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 的角色吗?
这是工作示例:
---
- 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
希望对您有所帮助
您可以使用:
ansible-galaxy install nodesource.node
然后在你的剧本上,添加
roles:
- nodesource.node
并不是说我真的很高兴不得不这样做,但是...
(env: Ubuntu 18.04, ansible 2.6.1, host: 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
结尾
而我没有使用ansible galaxy角色的原因是我没有看到任何似乎来自知名作者并且有很多明星和下载的nodejs角色(我很谨慎和怀疑) .
正在更新 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
接受的答案很好,但如果您愿意,可以使用已发现的变量作为发行代号(即 ansible_lsb.codename
)。此外,确保 gcc g++ make
安装在主机上可确保 nodejs 的本机插件正常工作。
只需将节点版本 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
我正在寻找合适的 Ansible 角色或 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 的角色吗?
这是工作示例:
---
- 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
希望对您有所帮助
您可以使用:
ansible-galaxy install nodesource.node
然后在你的剧本上,添加
roles:
- nodesource.node
并不是说我真的很高兴不得不这样做,但是...
(env: Ubuntu 18.04, ansible 2.6.1, host: 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
而我没有使用ansible galaxy角色的原因是我没有看到任何似乎来自知名作者并且有很多明星和下载的nodejs角色(我很谨慎和怀疑) .
正在更新 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
接受的答案很好,但如果您愿意,可以使用已发现的变量作为发行代号(即 ansible_lsb.codename
)。此外,确保 gcc g++ make
安装在主机上可确保 nodejs 的本机插件正常工作。
只需将节点版本 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