Ansible npm安装在一个会话列表
问题描述:
我有一个很长的Ansible npm安装项目列表,并且使用“with_items”非常慢。我想在一个会话中使用的列表,如:Ansible npm安装在一个会话列表
- name: "define list for npm install"
set_fact:
npm_install_list:
- 'mkdirp'
- 'request'
- 'extend'
... lots more ...
- name: "npm install a list at once"
npm:
name: "{{ npm_install_list | join(' ') }}"
registry: 'http://path.to.private.registry'
global: yes
state: present
我得到这个错误:
no JSON object could be decoded
莫非这与故宫的工作?如果是这样,我做错了什么?
答
Could this work with npm?
号
试试看与name: package1 package2
,你会看到为什么:
cmd: /bin/npm install --global 'package1 package2'
name
参数需要字符串并设为所述给定值作为从而串逃逸/引用它。
-
作为一个方面说明,在Ansible一些其他的包管理模块自动组合中的项目(包)到一个单一的执行调用(虽然主要是为了避免问题的依赖性,而不是优化)。 npm
模块没有。
答
下group_vats /所有定义数组作为*
npm_install_list:
- 'mkdirp'
- 'request'
- 'extend'
... lots more ...
现在使用这个数组,像往常一样在你的角色
- name: "npm install a list at once"
npm:
name: "{{ npm_install_list | join(' ') }}"
registry: 'http://path.to.private.registry'
global: yes
state: present
感谢您的回答,但我仍然得到同样的错误。也许npm名称只能采取一个参数? – J21042
嗯。也许你是对的。在npm文档中没有看到多个安装示例 –