云原生基础架构实战课
潘野
前 eBay 云原生专家
1075 人已学习
新⼈⾸单¥59
云原生基础架构实战课
15
15
1.0x
00:00/00:00
登录|注册

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
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 橙汁
    很不错,解答了我上节课后的疑问,因为我都是在本地apply所以会让手动确认,action后只要pr通过merge到main就生成,也很省事
    2024-04-08归属地:北京
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部