rodjek / librarian-puppet

http://librarian-puppet.com
MIT License
693 stars 209 forks source link

librarian-puppet fails on ec2 cloud-init, where HOME is not set. #258

Closed seanmcl closed 9 years ago

seanmcl commented 9 years ago

cloud-init on ec2 instances doesn't set the HOME env variable. As a result, librarian-puppet dies.

ct  3 15:28:59 localhost cloud-init: [Running librarian-puppet]
Oct  3 15:28:59 localhost cloud-init: /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/environment.rb:206:in `getpwnam': no implicit conversion of nil into String (TypeError)
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/environment.rb:206:in `default_home'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/environment.rb:33:in `block in initialize'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/environment.rb:33:in `fetch'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/environment.rb:33:in `initialize'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/cli.rb:45:in `new'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/cli.rb:45:in `with_environment'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-0.1.2/lib/librarian/cli.rb:26:in `bin!'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/share/gems/gems/librarian-puppet-1.3.2/bin/librarian-puppet:7:in `<top (required)>'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/bin/librarian-puppet:23:in `load'
Oct  3 15:28:59 localhost cloud-init: from /usr/local/bin/librarian-puppet:23:in `<main>'
Oct  3 15:28:59 localhost cloud-init: 2014-10-03 15:28:59,718 - util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1]
Oct  3 15:28:59 localhost cloud-init: 2014-10-03 15:28:59,721 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
Oct  3 15:28:59 localhost cloud-init: 2014-10-03 15:28:59,721 - util.py[WARNING]: Running scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/site-packages/cloudinit/config/cc_scripts_user.pyc'>) failed
Oct  3 15:28:59 localhost cloud-init: Cloud-init v. 0.7.4 finished at Fri, 03 Oct 2014 19:28:59 +0000. Datasource DataSourceEc2.  Up 200.59 seconds
carlossg commented 9 years ago

librarian looks for things in the home folder, so you just need to set HOME (to whatever dir you want) before calling librarian-puppet

gene1wood commented 9 years ago

Here's the workaround I'm using based on @carlossg's comment

cd /path/to/Puppetfile/and/modules && HOME=/root librarian-puppet install