07|Github Action:打通IaC与GitOps的桥梁
潘野
你好,我是潘野。
前面的课程里,我们学习了通过持续集成与部署的方式管理 IaC 代码的思路。不过知识必须学以致用,才能真正掌握。接下来的三讲内容,我们就来实操演练,学会如何使用 GitOps,从而更好地管理 IaC 代码。
今天,我们会使用 GitHub Actions 这个工具来管理 Terraform 代码。为什么要选择 GitHub Actions 呢?
之前我们已经了解到,GitOps 方式离不开在 GitHub 里管理代码。GitHub 是一个广泛使用的代码托管平台,提供了许多与代码管理和协作相关的功能。而 GitHub Actions 是 Github 中自带的 CI/CD 工具,上手门槛较低。掌握了这个工具,能让你的管理、部署工作事半功倍。
基于 Github Action 的管理架构
在进入实操演练之前,我们需要先了解一下基于 Github Action 的管理架构长什么样。具体来说,就是通过 Github Action 来管理 Terrafrom 代码,并自动执行变化的代码,从而更改基础设施的架构。
对照架构图,不难看出 Github Action 的 Terraform 代码的管理主要体现在以下方面:
用户提交 Pull Request 之后,Github Action 通过 OIDC 的方式与 AWS 账户进行认证。
通过认证之后,Github Action 执行 terrafrom plan 和 terrafrom apply 两个命令,Terrafrom 会根据代码去更改基础设施配置。
Terrafrom 的状态文件会存在对象存储 S3 中,以便追踪 Terrafrom 的变化。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. GitHub Actions是一个CI/CD工具,特别适合与GitOps结合使用,可以帮助管理和部署IaC代码。 2. GitHub Actions可以通过OIDC的方式与AWS账户进行认证,确保安全性和高效性。 3. 使用GitHub OIDC提供程序并仅允许在特定的GitHub操作中运行凭证,可以更加安全且高效地与AWS进行认证。 4. 在GitHub Action中,需要将Terraform的状态文件存在AWS的S3中,以确保安全存储和版本追溯能力。 5. 创建S3存储桶的方式有两种,可以通过Web Console手动创建,也可以使用Terraform代码生成。 6. 在AWS中,需要为S3存储桶附加相应的策略,以控制用户对资源的访问权限。 7. GitHub Action可以通过Secret注入到执行过程中,以配置Terraform init的backend storage的存储桶和相应权限。 8. 通过GitHub Actions和AWS的认证以及S3存储桶的配置,可以实现管理和部署Terraform代码的自动化操作。 9. GitHub Actions的结合使用,可以提高管理、部署工作的效率,实现IaC与GitOps的无缝衔接。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《云原生基础架构实战课》,新⼈⾸单¥59
《云原生基础架构实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 橙汁很不错,解答了我上节课后的疑问,因为我都是在本地apply所以会让手动确认,action后只要pr通过merge到main就生成,也很省事2024-04-08归属地:北京
收起评论