首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带nvm的不可安装安装节点

带nvm的不可安装安装节点
EN

Stack Overflow用户
提问于 2018-12-03 15:08:13
回答 4查看 8.8K关注 0票数 6

我正在寻找一种通过ansible和nvm安装给定版本的节点的方法,nvm的安装工作正常,因为如果我与根用户连接,我可以执行命令understand 8.11.3,但是这个命令不能用于Ansible,我不明白为什么。

代码语言:javascript
复制
---
- name: Install nvm
  git: repo=https://github.com/creationix/nvm.git dest=~/.nvm version=v0.33.11
  tags: nvm

- name: Source nvm in ~/.{{ item }}
  lineinfile: >
      dest=~/.{{ item }}
      line="source ~/.nvm/nvm.sh"
      create=yes
  tags: nvm
  with_items:
    - bashrc
    - profile

- name: Install node and set version
  become: yes
  become_user: root
  shell: nvm install 8.11.3
...

错误日志

代码语言:javascript
复制
TASK [node : Install node and set version] *************************************************************************************
    fatal: [51.15.128.164]: FAILED! => {"changed": true, "cmd": "nvm install 8.11.3", "delta": "0:00:00.005883", "end": "2018-12-03 15:05:10.394433", "msg": "non-zero return code", "rc": 127, "start": "2018-12-03 15:05:10.388550", "stderr": "/bin/sh: 1: nvm: not found", "stderr_lines": ["/bin/sh: 1: nvm: not found"], "stdout": "", "stdout_lines": []}
        to retry, use: --limit .../.../ansible/stater-debian/playbook.retry
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-12-03 15:53:28

没关系,这是可以工作的配置

代码语言:javascript
复制
- name: Install node and set version
  become: yes
  become_user: root
  shell: "source /root/.nvm/nvm.sh && nvm install 8.11.3" 
  args:
    executable: /bin/bash
票数 17
EN

Stack Overflow用户

发布于 2018-12-03 15:24:08

我认为你需要输出的线索是:

"/bin/sh: 1: nvm:未找到“

若要运行命令而不包括该命令的完整路径(即nvm而不是/the/dir/nvm/is/installed/in/nvm),则包含该命令的目录必须位于运行该命令的shell的$PATH环境变量中。

在本例中,与运行交互命令的shell相比,Ansible生成的shell似乎不存在这种情况。更改:

代码语言:javascript
复制
- name: Install node and set version
  become: yes
  become_user: root
  shell: nvm install 8.11.3

代码语言:javascript
复制
- name: Install node and set version
  become: yes
  become_user: root
  shell: /full/path/to/nvm install 8.11.3

如果您不知道应该用什么来代替'/full/path/ to ',请尝试:

代码语言:javascript
复制
which nvm

代码语言:javascript
复制
find / -name nvm
票数 1
EN

Stack Overflow用户

发布于 2021-05-04 13:51:32

我只会在这里张贴,因为有数百个这样的帖子。

代码语言:javascript
复制
- name: Install node
    become: true
    become_user: root
    shell: "source /root/.nvm/nvm.sh && nvm install {{ personal_node_version }} && nvm alias default {{ personal_node_version }}"                                 
    args:
      executable: /bin/bash

为我工作过。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53596477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档