我试图在Ubuntu Trusty 64bit Vagrant环境中安装node.js,npm和Grunt.js,并遇到一些问题。 这是我的木偶清单:
init.pp –
class grunt::install { exec { 'apt_update': command => 'apt-get update', path => '/usr/bin' } package { [ 'curl', 'python-software-properties', 'ruby1.9.3' ]: ensure => present, require => Exec['apt_update'] } # Get node exec { 'add-node-repo': command => '/usr/bin/add-apt-repository ppa:chris-lea/node.js && /usr/bin/apt-get update', require => Package['python-software-properties'] } package { 'nodejs': ensure => latest, require => [Exec['apt_update'], Exec['add-node-repo']] } # Install npm exec { 'npm': command => '/usr/bin/curl -L https://npmjs.org/install.sh | /bin/sh', require => [Package['nodejs'], Package['curl']], environment => 'clean=yes' } # Create symlink to stop node-modules folder breaking exec { 'node-modules-symlink': command => '/bin/rm -rfv /usr/local/node_modules && /bin/rm -rfv /vagrant/node_modules && /bin/mkdir /usr/local/node_modules && /bin/ln -sf /usr/local/node_modules /vagrant/node_modules ', } # Copy Grunt config files over for the vagrant setup. file { '/vagrant/package.json': source => 'puppet:///modules/grunt/package.json' } file { '/vagrant/Gruntfile.js': source => 'puppet:///modules/grunt/Gruntfile.js' } # Finally install grunt exec { 'install-grunt': command => '/usr/bin/npm install -g grunt-cli', require => Exec['npm'] } # Install grunt task runner in directory exec { 'install-grunt-task-runner': command => '/usr/bin/npm install grunt --save-dev', cwd => '/vagrant/', require => Exec['install-grunt'] } exec { 'install-project-dependencies': command => '/usr/bin/npm install --save-dev', require => [Exec['install-grunt-task-runner'], Exec['node-modules-symlink']], cwd => '/vagrant/' } }
…这是我得到的控制台错误日志:
Stderr from the command: stdin: is not a tty Error: /usr/bin/npm install grunt --save-dev returned 1 instead of one of [0] Error: /Stage[main]/Grunt::Install/Exec[install-grunt-task-runner]/returns: change from notrun to 0 failed: /usr/bin/npm install grunt --save-dev returned 1 instead of one of [0] Warning: /Stage[main]/Grunt::Install/Exec[install-project-dependencies]: Skipping because of failed dependencies
在此先感谢您的任何帮助/build议! :d
你会得到更好的结果使用傀儡模块的apt,nodejs等看看木偶伪造 。
使用exec是一个坏主意,因为你真的需要自己照顾ide </s>。
例如,而不是行:
package { 'nodejs': ensure => latest, require => [Exec['apt_update'], Exec['add-node-repo']] } # Install npm exec { 'npm': command => '/usr/bin/curl -L https://npmjs.org/install.sh | /bin/sh', require => [Package['nodejs'], Package['curl']], environment => 'clean=yes' }
你可以使用:
include nodejs
检查您的Vagrant文件 ,并确保您已经设置了模块和清单目录。
然后search伪造的模块,例如apt , nodejs , ruby等
下载并安装(在模块目录中解压缩)。 确保更改模块目录名称。
例如从puppetlabs-apt到apt
看看模块概述和使用指南,它会告诉你如何使用一个模块。
另外看看这个教程关于与傀儡使用stream浪汉。
如果你想了解更多关于puppet的内容,请查看学习虚拟机和文档。