在我先ssh到服务器然后运行命令的情况下,它执行成功
root@chef:~# chef-solo -v
Chef: 11.10.0
但是当我尝试像这样运行它时
ssh root@188.xxx.xxx.xxx -t -C "chef-solo -c /var/chef/solo.rb"
我收到一个错误:
bash: chef-solo: command not found
为什么会发生这种情况,我该如何解决这个问题?
在我先ssh到服务器然后运行命令的情况下,它执行成功
root@chef:~# chef-solo -v
Chef: 11.10.0
但是当我尝试像这样运行它时
ssh root@188.xxx.xxx.xxx -t -C "chef-solo -c /var/chef/solo.rb"
我收到一个错误:
bash: chef-solo: command not found
为什么会发生这种情况,我该如何解决这个问题?
它仍然是$PATH
和 ssh 的问题 -而不是厨师独奏。交互式和非交互式会话不一定具有相同的$PATH
变量值。在 stackoverflow 上描述了相同的 ssh 问题。您还可以查看GNU bash 手册以更深入地了解(非)交互式和(非)登录 shell。简而言之,解决方案将是以下之一:
$PATH
以为交互式和非交互式 shell 加载相同的变量。注意:要找出绝对路径,请通过 ssh 登录机器并运行which chef-solo
(不知道您对 linux 的经验。抱歉,如果我低估了您的知识)