簡體   English   中英

通過Ansible劇本安裝Node.js

[英]Installing nodejs through Ansible playbook

我創建了一個Vagrant vm(Ubuntu)並安裝了Ansible。 我可以ping我的本地主機,這對我的VM意味着。 我寫了一部劇本來安裝nodejs。

---
- hosts: node #it contains localhost
  gather_facts: no
  tasks:
  - name: install node.js
    shell: apt-get install nodejs
    sudo: yes

當我運行劇本時,狀態顯示成功。 據我了解,它應該在我的虛擬機中安裝nodejs和npm。 但是,如果鍵入node -v ,則表明它尚未安裝。

vagrant@vagrant-ubuntu-trusty-64:/vagrant_data$ ansible-playbook ping.yml

PLAY [node] *******************************************************************

TASK: [install node.js] *******************************************************
changed: [localhost]

PLAY RECAP ********************************************************************
localhost                  : ok=1    changed=1    unreachable=0    failed=0

vagrant@vagrant-ubuntu-trusty-64:/vagrant_data$ node -v
The program 'node' can be found in the following packages:
 * node
 * nodejs-legacy
Ask your administrator to install one of them

我在這里做錯了什么?

我在這里做錯了什么?

  • 您正在通過shell模塊而不是使用本機的,冪等的Ansible模塊執行命令;

  • 您正在執行不帶參數的apt-get來防止交互式提示( -y );

  • 您正在使用一個過時的sudo參數(在當前的Ansible版本中將被忽略),而不是become ;

  • 最后,您似乎在閱讀屏幕消息和區分包名稱時遇到了問題:期望node.js安裝node可執行文件,而您的系統明確指出可以在nodenodejs-legacy包中找到它。


獎勵:您正在通過一個單獨的過程來安裝一組程序,這些程序設置和利用用戶環境變量,但是在不設置環境的情況下繼續使用Shell會話(這對node可執行文件的可用性沒有直接影響,但是無論如何都是錯誤的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM