cloudfoundry-attic / bosh-init

bosh-init is a tool used to create and update the Director VM
Apache License 2.0
31 stars 33 forks source link

bosh-init fails for long home directories #117

Open wayneeseguin opened 7 years ago

wayneeseguin commented 7 years ago

Ran into this issue over the holiday:

+ popd
+ echo 'Installing rubygems'
+ tar zxvf ruby_openstack_cpi/rubygems-2.1.11.tgz
+ pushd rubygems-2.1.11
+ /home/bosh/.bosh_init/installations/444b40c7-263d-40a8-6a03-88a4c4b92605/packages/ruby_openstack_cpi/bin/ruby setup.rb
+ popd
+ /home/bosh/.bosh_init/installations/444b40c7-263d-40a8-6a03-88a4c4b92605/packages/ruby_openstack_cpi/bin/gem install ruby_openstack_cpi/bundler-1.11.2.gem --local --no-ri --no-rdoc
packaging: /home/bosh/.bosh_init/installations/444b40c7-263d-40a8-6a03-88a4c4b92605/packages/ruby_openstack_cpi/bin/gem: /home/bosh/.bosh_init/installations/444b40c7-263d-40a8-6: bad interpreter: Permission denied
':
            exit status 126

More specifically, this line:

packaging: /home/bosh/.bosh_init/installations/29c1e993-124f-4bfb-51fe-a8ef822efaa5/packages/ruby_openstack_cpi/bin/gem: /home/bosh/.bosh_init/installations/29c1e993-124f-4bfb-5: bad interpreter: Permission denied

Limit on the Ubuntu stemcells for scripts shebang execution is 128 characters.

Because of the UUIDs etc... bosh-init for a long username (like say wayneeseguin) can fail, especially if home is under say /var/vcap/store as well.

Workaround was to symlink the home directory to /wayneeseguin and export HOME=wayneeseguin and continue, but this wasn't a good experience :)