2017-11-18 1 views
-1

Ich habe ein Vagrant vm (Ubuntu) erstellt und Ansible installiert. Ich kann meinen localhost anpingen, das bedeutet zu meinem vm. Ich habe ein Playbook geschrieben, um nodejs zu installieren.Installieren von nodejs über Ansible playbook

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

Wenn ich das Playbook den Status zeigen Erfolg zeigen. Nach meinem Verständnis sollte es nodejs und auch npm in meinem vm installieren. Wenn ich jedoch node -v eintippe, wird angezeigt, dass es noch nicht installiert ist.

[email protected]:/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 

[email protected]:/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 

Was mache ich hier falsch?

Antwort

3

Was mache ich hier falsch?

  • Sie einen Befehl über shell Modul ausgeführt wird anstelle der Verwendung eines nativen, idempotent Ansible module;

  • Sie führen apt-get ohne Argumente aus, um interaktive Eingabeaufforderungen zu verhindern (-y);

  • Sie verwenden einen lange veralteten sudo Parameter (der in der aktuellen Ansible-Version ignoriert wird) anstelle von become;

  • schließlich, Sie scheinen Probleme zu haben, mit Anweisungen auf dem Bildschirm zu lesen und Paketnamen unterscheiden: node.js die node ausführbare Datei zu installieren erwartet, während das System eindeutig fest, kann es in node oder nodejs-legacy Paketen.


Bonus: Sie installieren - durch einen separaten Prozess - eine Reihe von Programmen, die eingestellt und Benutzerumgebungsvariablen nutzen, sondern auch weiterhin die Shell-Sitzung ohne die Umwelt Satz verwenden (dies hat keine direkte Einfluss auf node ausführbare Verfügbarkeit, ist aber trotzdem ein Fehler).