需要使用 webhook 帮助进行 opswork 自动部署的 Github

Posted

技术标签:

【中文标题】需要使用 webhook 帮助进行 opswork 自动部署的 Github【英文标题】:Github with opswork auto deployment using webhook help needed 【发布时间】:2017-04-06 23:45:44 【问题描述】:

一旦代码被推送到仓库,我再次陷入触发部署的目标,我搜索了网络,但我发现只有旧信息 github 已更新,并且按照那里的说明,我设置了所有值但仍然无法正常工作,所以它看起来我遗漏了一些我试图按照说明进行操作的东西,但它似乎很旧 http://bytes.babbel.com/en/articles/2014-01-22-github-service-hook-for-aws-ops-works.html

界面混乱,我很困惑,因为 repo 名称和 opswork 服务之间没有联系,那么 webhook 应该向 opswork 服务发送什么值?

以下是我的理解

    设置 webhook,一旦代码被推送到 repo(这部分正在工作并将有效负载发送到某个地方),它将根据需要触发并向 CI 或服务发送有效负载:但这失败了,因为它的 Payload URL我应该给git hub生成的opswork服务url吗?

    Opswork 服务:这不起作用,

应用 来自 AWS opswork 的应用程序:opswork ID

堆栈 来自 AWS opswork 的堆栈:opswork ID

分行名称

根据 github 帮助,我需要在 AWS OpsWorks 控制台中为该应用程序配置 SHA,这又是一个困惑?为什么我不应该给 SHA 而不是 Master 或 repo 的链接?

GitHub api 网址

这是可选的,我应该在这里给出什么?

AWS 访问密钥 没有问题

AWS 秘密访问密钥 没有问题

GitHub 令牌

可选:按照说明创建令牌,带令牌和不带令牌均无效。

所以如果你检查 opswork 没有被触发,我想当我推送更改时它可能会在内部工作,但不会。

所以它似乎网络钩子和 opswork 服务需要在某种程度上进行交互但无法弄清楚:(

我检查了 git hub 帮助也没有发现新界面 我也查了谷歌和***,但没有找到任何东西

请任何人回答。

【问题讨论】:

【参考方案1】:

另一种方法是设置 AWS CodePipeline (CodeDeploy??) 以部署到您的 AWS Opsworks 堆栈。

CodePipeline 是来自 Amazon 的持续交付解决方案。 2016 年年中,他们宣布 CodePipeline 与 OpsWorks 合作 - 请参阅他们的博客公告:AWS CodePipeline Adds Integration with AWS OpsWorks。那里也有一些演练,具体取决于您的堆栈设置的 OpsWorks 版本。

(使用部署服务来部署到具有现有部署服务的服务确实感觉有点奇怪......但是,我认为这可能会有所帮助)

【讨论】:

嗨瑞恩,我肯定也尝试过这个,但是我发现了问题,所以也发布了答案:),谢谢大家【参考方案2】:

问题出在 Github 和 opswork 的过程中,如果有任何错误都不会向用户报告错误。

我联系了 Github 支持,幸运的是他们回复了我错误消息“请求中包含的安全令牌无效。”

然后我将访问密钥和秘密密钥删除“GitHub api url”重新复制为空白并将分支名称复制为“master”(因此它将始终部署最新版本,即 head)

还要确保您需要在 opswork 中再次设置权限,这与 IAM 权限是分开的, 步骤 -> 转到您的堆栈 - 权限和编辑 -> 添加具有“仅 IAM 策略”权限的用户 github。

网络挂钩和集成之间没有交互。所以你可以在没有 web hook 的情况下使用集成服务 :) .

感谢 Stack Overflow 和 Git-hub :)

【讨论】:

以上是关于需要使用 webhook 帮助进行 opswork 自动部署的 Github的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jenkins 和 Opswork 集成进行持续部署

部署 OpsWorks 应用程序时出现 Chef::Exceptions::UnresolvableGitReference 错误

每次都在 AWS opsworks 上进行部署

使用码云,GitHub进行版本控制,并通过WebHook进行自动部署

如何配置 OpsWorks 以部署非官方支持的 Node.js 版本?

AWS Opsworks:通过 https 进行负载平衡