Estou tendo problemas para entender como fazer com que node.js, Grunt e NPM sejam executados em minha caixa Vagrant. Estou usando o ubuntu-precise12042-x64-vbox43 e provisionando-o através do fantoche. Estou apenas começando com fantoches, então fuihttps://puphppet.compara gerar um manifesto. Depois que vagrant up
a caixa for provisionada como deveria e tudo estiver funcionando sem problemas. Eu então pesquiso no Google para encontrarhttps://stackoverflow.com/questions/19000534/install-node-js-on-ubuntu-12-04-lts-using-puppet. Corri vagrant SSH
e depois corri, puppet module install willdurand/nodejs
o que correu bem. Agora o problema é que não sei o que fazer a seguir? Achei que seria capaz de executar comandos NPM e Node enquanto "in" vagrant SSH
. O que estou fazendo de errado? Se eu executar apenas NPM
diz:
the program 'npm' is currently not installed. You can install it by typing: sudo apt-get install npm
Preciso executar algum outro comando?
Responder1
Apenas instalar o módulo puppet não instala o programa, apenas diz ao puppet como lidar com nodejs no puppet. Você precisa adicionar uma declaração ao manifesto do seu fantoche e executá-lo vagrant provision
novamente.
Exemplo:
class { 'nodejs':
version => 'stable',
}
package { 'express':
provider => npm
}
Responder2
Em Vagrantfile
defina seu arquivo de provisionamento:
config.vm.provision "shell", path: "scripts/provision.sh"
Em seguida, crie package.json
for npm
com os pacotes necessários (por exemplo grunt
), como:
{
"name": "vagrant",
"devDependencies": {
"grunt": "~0.4.5",
"grunt-cli": "^0.1.13",
"grunt-exec": "^0.4.6",
"shelljs": "^0.5.3"
}
}
Em seguida, em pacotes provision.sh
de instalação npm
e dependentes via:
apt-get install
npm install
grunt --version
e veja se isso funcionaria durante o provisionamento da VM ( vagrant up
).
Ou use o manifesto Puppet conforme descrito na outra resposta.