2017-06-02 49 views
0

我不明白为什么Ansible正在安装的是旧版本的的NodeJS即使我将它安装最新:Ansible:力最新安装包的NodeJS

- name: NodeJS => Install NodeJS 
    apt: 
     pkg: "{{ item }}" 
     state: latest 
     force: yes 
     update_cache: yes 
    with_items: 
    - nodejs 
    - npm 
    become: yes 

- name: NodeJS => Create link symlink for node 
    become: yes 
    file: 
    src: /usr/bin/nodejs 
    dest: /usr/bin/node 
    state: link 

对于目前的版本我现在有:

$ node -v 
v0.10.25 

$ npm -v 
1.3.10 

更新的解决方案

我终于在我的任务这样做/ main.yml

--- 
- name: Ensure apt-transport-https is installed. 
    apt: name=apt-transport-https state=present 

- name: Add Nodesource apt key. 
    become: yes 
    apt_key: 
    url: https://keyserver.ubuntu.com/pks/lookup?op=get&fingerprint=on&search=0x1655A0AB68576280 
    id: "68576280" 
    state: present 

- name: Add NodeSource repositories for Node.js. 
    become: yes 
    apt_repository: 
    repo: "{{ item }}" 
    state: present 
    with_items: 
    - "deb https://deb.nodesource.com/node_{{ params['nodejs'].version }} {{ ansible_distribution_release }} main" 
# - "deb-src https://deb.nodesource.com/node_{{ params['nodejs'].version }} {{ ansible_distribution_release }} main" 
    register: node_repo 

- name: Update apt cache if repo was added. 
    become: yes 
    apt: update_cache=yes 
    when: node_repo.changed 

- name: Ensure Node.js and npm are installed. 
    become: yes 
    apt: "name=nodejs={{ params['nodejs'].version|regex_replace('x', '') }}* state=present" 
+0

ansible会采取最新的回购,你的流浪者箱子是什么? –

+0

config.vm.box =“ubuntu/trusty64” – numediaweb

回答

0

您需要先设置为你想要安装的分支的NodeJS PPA的库,例如用于6.x的分支(其他城市,如果你想在7.x的分支)

- apt_repository: 
    repo: deb https://deb.nodesource.com/setup_6.x nodejs 
    state: present 

然后你将能够安装节点和npm。

+0

有没有可能在不指定版本的情况下更新到最新版本? – numediaweb

+0

不是真的,因为这个版本的回购很旧,您需要更新回购,并且nodejs以这种方式维护回购 –