云原生基础架构实战课
潘野
前 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 planterrafrom 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
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部