实例的 AWS OpsWorks setup_failed - 无法部署_branch

Posted

技术标签:

【中文标题】实例的 AWS OpsWorks setup_failed - 无法部署_branch【英文标题】:AWS OpsWorks setup_failed for Instance - unable to deploy_branch 【发布时间】:2021-09-14 13:18:19 【问题描述】:

几年来,我的远程仪表板一直运行良好(由外部开发人员为我编写)。它在 EC2 实例上运行,并使用 OpsWorks 进行配置。

今天它不起作用,我在 OpsWorks 中看到该实例显示为 setup_failed

根据日志,这里失败了:

[2021-07-02T15:00:59+00:00] FATAL: Stacktrace dumped to /var/chef/runs/18bc4301-71c1-4393-bb26-eae958791d5a/local-mode-cache/cache/chef-stacktrace.out
[2021-07-02T15:00:59+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2021-07-02T15:00:59+00:00] ERROR: deploy_branch[/srv/api] (iparcelbox::deploy-api line 45) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '255'
---- Begin output of git fetch origin ----
STDOUT: 
STDERR: error: cannot open .git/FETCH_HEAD: Permission denied
---- End output of git fetch origin ----
Ran git fetch origin returned 255

我检查了 iparcelbox::deploy-api 的配方文件,第 45 行调用了一个 deploy_branch:

deploy_branch server_path do

  user userName
  group groupName

  repository node[:iparcelbox][:git_url]
  revision node[:iparcelbox][:revision]

  enable_submodules false
  migrate false
  shallow_clone true
  git_ssh_wrapper "/tmp/api_git_wrapper.sh"
  rollback_on_error false
  keep_releases 5

  symlink_before_migrate.clear
  purge_before_symlink purge_dirs
  create_dirs_before_symlink []
  symlinks()

  action :deploy
end

据我了解,deploy_branch 正在尝试获取 git 存储库,但由于某种原因它失败了?我检查了我的 GitHub 存储库中的源文件,我可以看到一个 ssh 'Deploy Key' 显示为上周使用的。

如果有人可以给我任何关于其他尝试的建议,将不胜感激!

【问题讨论】:

【参考方案1】:

我找到了答案 - 我认为问题是访问 git 存储库的权限被拒绝,但实际上这是因为我实例上的目标文件夹已修改所有权。使用 chown 将所有权重新设置为 Chef 配方中指定的所有权,从而可以成功完成设置。

【讨论】:

以上是关于实例的 AWS OpsWorks setup_failed - 无法部署_branch的主要内容,如果未能解决你的问题,请参考以下文章

如何在实例中获取 AWS OpsWorks 实例 ID?

在实例上设置 aws opsworks 时出现凭证错误

AWS opsworks deploy 在实例加入域后永远运行

Cloudformation + OpsWorks

使用 AWS CLI 删除 OpsWorks EC2 实例

是否可以使用 AWS CLI 等到实例“在线”并完成 opsworks 的设置/配置步骤?