Search code examples
chef-infraknife-solo

"install.sh: No such file or directory" when execute knife solo prepare


knife solo prepare failed. It seems that there is no permission to create install.sh.

Warning: Failed to create the file install.sh: Permission denied
bash: install.sh: No such file or directory

How do you solve it?

$ knife solo prepare -VV <nodename>

DEBUG:           /bin/sh -c "             if command -v curl >/dev/null 2>&1; then               curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh';             else               wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh';             fi;           "
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0DEBUG:           /bin/sh -c "             if command -v curl >/dev/null 2>&1; then               curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh';             else               wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh';             fi;           "
 stdout: Warning: Failed to create the file install.sh: Permission denied

Warning: Failed to create the file install.sh: Permission denied
DEBUG:           /bin/sh -c "             if command -v curl >/dev/null 2>&1; then               curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh';             else               wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh';             fi;           "
 51 23110   51 11925    0     0  18535      0  0:00:01 --:--:--  0:00:01 18517

 51 23110   51 11925    0     0  18535      0  0:00:01 --:--:--  0:00:01 18517
DEBUG:           /bin/sh -c "             if command -v curl >/dev/null 2>&1; then               curl -L -o 'install.sh' 'https://www.opscode.com/chef/install.sh';             else               wget -O 'install.sh' 'https://www.opscode.com/chef/install.sh';             fi;           "
 stdout: curl: (23) Failed writing body (0 != 11925)

curl: (23) Failed writing body (0 != 11925)
DEBUG: Initial command sudo bash install.sh  -v 13.12.14
DEBUG: Running processed command sudo -p 'knife sudo password: ' bash install.sh  -v 13.12.14
DEBUG: sudo -p 'knife sudo password: ' bash install.sh  -v 13.12.14 stdout: bash: install.sh: No such file or directory

bash: install.sh: No such file or directory

Chef version is 13.12.14.


Solution

  • The owner of the chef executor's HOME directory on the remote host was incorrect.

    It solved by executing the following command.

    $ ssh <nodename> sudo chown <user> /home/<user>