test-kitchen / busser

Kitchen Busser - Runs tests for projects in test-kitchen
Other
45 stars 17 forks source link

Busser issues when /tmp is mounted with noexec #35

Closed cheeseplus closed 2 years ago

cheeseplus commented 8 years ago

Copied from: https://github.com/test-kitchen/test-kitchen/issues/749

I´ve got the problem that busser installation fails due permission error:

      Preparing files for transfer
-----> Installing Busser (busser)
Fetching: thor-0.19.0.gem (100%)
       Successfully installed thor-0.19.0
Fetching: busser-0.7.1.gem (100%)
       Successfully installed busser-0.7.1
       2 gems installed
       sh: 24: /tmp/verifier/gems/bin/busser: Permission denied
       Installing Busser plugins: busser-serverspec
       sudo: /tmp/verifier/bin/busser: command not found
>>>>>> Verify failed on instance <xyz-x86-64>.
>>>>>> Please see .kitchen/logs/default-xyz-x86-64.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: SSH exited (1) for command: [sh -c '

BUSSER_ROOT="/tmp/verifier"; export BUSSER_ROOT
GEM_HOME="/tmp/verifier/gems"; export GEM_HOME
GEM_PATH="/tmp/verifier/gems"; export GEM_PATH
GEM_CACHE="/tmp/verifier/gems/cache"; export GEM_CACHE
ruby="/opt/chef/embedded/bin/ruby"
gem="/opt/chef/embedded/bin/gem"
version="busser"
gem_install_args="busser --no-rdoc --no-ri"
busser="sudo -E /tmp/verifier/bin/busser"
plugins="busser-serverspec"

$gem list busser -i 2>&1 >/dev/null
if test $? -ne 0; then
  echo "-----> Installing Busser ($version)"
  $gem install $gem_install_args
else
  echo "-----> Busser installation detected ($version)"
fi

if test ! -f "$BUSSER_ROOT/bin/busser"; then
  gem_bindir=`$ruby -rrubygems -e "puts Gem.bindir"`
  $gem_bindir/busser setup
fi

echo "       Installing Busser plugins: $plugins"
$busser plugin install $plugins
']
>>>>>> ----------------------

sudo: /tmp/verifier/bin/busser: command not found busser bin is installed in /tmp/verifier/gems/bin/busser

A link of the dirs doesn´t solve the problem.

What can I do?

wolstena commented 8 years ago

I have the same problem on CentOS 6.6 The /etc/fstab mounts /tmp as non-executable. tmpfs /tmp tmpfs size=512M,nodev,noexec,nosuid

Is there a way to specify an alternative location.

bheuvel commented 8 years ago

Specifying an alternate location worked for me. In the .kitchen.yml file:

verifier:
  name:       busser
  root_path:  /home/<%= ENV['SSH_USER'] %>/verifier

Where in my case I've specified the user (e.g. 'vagrant') in the environment.

Not so much a bug, as you're not supposed to run stuff from /tmp (nowadays :wink: ), hence the noxeec mount flag.

damacus commented 2 years ago

Closing due to inactivity.

If this is still an issue please reopen or open another issue.

Thanks, Test-Kitchen Maintainers