2017-11-18 3 views
-1

나는 Vagrant vm (Ubuntu)을 만들고 Anecess를 설치했습니다. 내 로컬 호스트를 핑 (ping) 할 수 있습니다. 즉, 내 VM을 의미합니다. 나는 nodejs를 설치하기위한 게임 북을 썼다.가능성있는 무비를 통해 nodej 설치

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

재생 목록을 실행하면 상태가 성공적으로 표시됩니다. 나의 이해를 위해, 그것은 VMM에 nodejs와 npm을 설치해야한다. 그러나 node -v을 입력하면 아직 설치되지 않은 것으로 나타납니다.

[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 

여기서 내가 뭘 잘못하고 있니?

답변

3

내가 뭘 잘못하고 있니?

  • 당신은 shell 모듈을 통해 명령을 실행하는 대신 기본, 나무 등 Ansible module를 사용하는;

  • 대화 형 프롬프트 (-y)를 방지하기 위해 인수없이 apt-get을 실행 중입니다.

  • become 대신에 sudo 매개 변수 (현재의 안전 버전에서는 무시 됨)를 사용하고 있습니다. 시스템이 명확하게 node 또는 nodejs-legacy 패키지에서 찾을 수 있습니다 언급하면서 node 실행 파일을 설치 node.js을 기대 :

  • 마지막으로, 당신은 화면의 메시지를 읽고 패키지 이름을 구별에 문제가있는 것 같다.


보너스 : 당신은 설치 - 별도의 과정을 통해 - 설정 및 사용자 환경 변수를 활용하는 프로그램의 집합을, 그러나 이것은 직접이 없습니다 (환경 설정없이 쉘 세션을 계속 사용 실행 가능성에 대한 영향은 node이지만 어쨌든 실수입니다.)