【问题标题】:knife bootstrap returning error刀引导返回错误
【发布时间】:2014-06-18 05:34:22
【问题描述】:

跑步:

knife bootstrap ec2-54-221-16-158.compute-1.amazonaws.com --sudo -x chef -P chef -N server --run-list 'role[inicial]'

我的食谱/default.rb:

script "teste de script" do
  interpreter "bash"
  cwd "/home/ubuntu"
  code <<-EOH
  as-create-launch-config LcTiagoN --image-id ami-0521316c --instance-type t1.micro --key tiagov
  EOH
end

我的角色/initial.rb:

name "inicial"

run_list "recipe[my_cookbook]"

下面出现如下错误:

ShellOut::ShellCommandFailed←[
0m
------------------------------------←[
0m
Expected process to exit with [0], but
 received '127'
 ---- Begin output of "bash"  "/tmp/che
f-script20140501-8463-12uvvvl" ----
 STDOUT:
STDERR: /tmp/chef-script20140501-8463-
12uvvvl: line 1: as-create-launch-config: command not found
 ---- End output of "bash"  "/tmp/chef-
script20140501-8463-12uvvvl" ----

但是,当我直接登录亚马逊实例运行相同的命令(as-create-launch-config LcTiagoN --image-id ami-0521316c --instance-type t1.micro --key tiagov)时,命令是成功执行。

有什么建议吗?

【问题讨论】:

    标签: amazon-web-services chef-infra knife


    【解决方案1】:

    听起来像是 PATH 环境的问题。您在手动运行 as-create-launch-config 命令时是否以“厨师”身份登录?

    我能提供的最佳建议是在 bash 脚本中包含命令的完整路径。例如:

    script "teste de script" do
      ..
      code <<-EOH
      /path/to/this/cmd/as-create-launch-config ...
      EOH
    end
    

    【讨论】:

    • 我运行了下面描述的测试,你认为它可能是什么?
    • 这不是权限问题,而是路径问题。在 *nix 环境中,找到可执行文件的方法是确保它们在 PATH 中可用。您可以尝试“echo $PATH”来查看任何给定时刻的 PATH 是什么。我敢打赌,如果您在上面运行 recipes/default 但在运行 as-create-launch-config 之前添加 echo PATH,您会发现 PATH 不包含 as-create-launch-config 存在的任何目录。那么您只需要ssh 进入机器,输入“which as-create-launch-config”来获取路径,然后像 Mark 上面那样将该路径添加到你的食谱中。
    • 我的环境变量有问题。因为变量正在丢失?我该如何解决这个问题?
    • @TiagoRolim 可以将环境变量设置为脚本资源的一部分。这必须更好(更便携),而不是依赖于环境文件中的设置。 (见:docs.opscode.com/resource_script.html
    猜你喜欢
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2021-06-20
    • 1970-01-01
    • 2015-11-15
    相关资源
    最近更新 更多