【问题标题】:Knife bootstrap failing through Jenkins execute shellKnife bootstrap 通过 Jenkins 执行 shell 失败
【发布时间】:2018-03-27 22:38:16
【问题描述】:

我正在尝试通过 Jenkins Web UI 执行 shell 执行“knife bootstrap”命令,但我不断收到以下错误消息: (这是我正在使用的刀引导命令):

"knife bootstrap [节点的 IP] --ssh-user ec2-user --sudo --identity-file "[我的节点密钥]" --node-name My123 --run-list '角色[role1]' "

这是错误信息:

" 错误:Errno::ENOENT: 没有这样的文件或目录@rb_sysopen - /etc/chef/validation.pem "

当我直接通过 CLI 运行“knife bootstrap”命令时,它工作正常。

知道为什么它在 Jenkins 执行 shell 中不起作用吗?

【问题讨论】:

  • 当您调用knife bootstrap 时,它与运行 jenkins 的用户是否相同?引导过程需要有适当的厨师配置,您可能需要将刀指向适当的 client.rb。
  • 是的,我还尝试了导出“export KNIFE_HOME=/var/lib/jenkins/starter_kit/.chef/”命令和符号链接命令:“ln -s /var/lib/jenkins/ starter_kit/.chef/ /var/lib/jenkins/" ,但仍然收到此错误消息。
  • 你试过加--config吗?
  • 是的,谢谢,我已经解决了,感谢您的帮助。

标签: jenkins aws-opsworks knife


【解决方案1】:

这是由于缺少validation.pem 文件,这是验证文件的默认路径。您可以在 /chef-repo/.chef/knife.rb 文件中设置路径,也可以使用默认位置 /etc/chef/validation.pem。

您可以从 webUI 重新生成验证密钥并替换现有的,这应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 2013-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    相关资源
    最近更新 更多