IaCのCI_CDを実現するSpaceliftを触ってみた

スライド概要

詳細ブログ↓
https://zenn.dev/yuta28/articles/spacelift-tutorial

profile-image

Yuta

@Yuta

作者について:

インターネットメディアでWebメディアサイトのサーバー構築やインフラ運用改善を担当しているインフラエンジニアです。 ブログでまとめたLTスライドをアップロードします。

スライド一覧
シェア
埋め込む»CMSなどでJSが使えない場合

公開日

2022-05-14 11:38:00

各ページのテキスト

1. IaCのCI/CDを実現する Spaceliftを触ってみた

2. 自己紹介 Name:ユータ Occupation:SRE Twitter:@Y0u281 (オーでなくゼロです) ブログ:https://zenn.dev/yuta28 Twitter

3. 目次 ● Spaceliftについて ● CI/CD実装 ● Policy as Codeについて ● 課題 ● まとめ

4. Spaceliftについて ● Infra as Codeを実現してくれるCI/CDプラットフォーム ○ Terraform,Pulumiに対応 ○ Gitのリポジトリと連携するだけで自動で CI/CD基盤を構築 ● 実行権限や編集などの権限をコードベースで管理可能(Policy as Code) ● 日本語情報が一切ない(Spaceliftで検索すると私の記事が2番目にHit)

5. CI/CD実装 GitHubリポジトリをSpaceliftと連携

6. CI/CD実装 作成リソース ● VPC1個

7. CI/CD実装 リポジトリ連携後、PRで自動でplan(ドライラン)が起動

8. CI/CD実装 Dockerコンテナが起動し、その中でTerraformが実行される。

9. CI/CD実装 TerraformがAWS VPCを作成 AWS VPCが作成された !

10. CI/CD実装 Spaceliftからコマンド実行も可能

11. Policy as Codeについて 運用ルールや権限をコードで管理する考え ● ● ● 変更履歴が確認可能 以前のポリシーへのロールバックが容易 Git管理することでコードレビュー、CI/CDを実現 SpaceliftではOpen Policy Agent(OPA)とRegoで実現 https://github.com/spacelift-io/terraform-starter チュートリアル参照

12. [beta]

Policy as Codeについて
Regoの書き方は割愛

package spacelift
# This task policy only allows you to exectute a few selected
commands.

JSONライクなクエリ言語

# You can read more about task policies here:
# https://docs.spacelift.io/concepts/policy/task-run-policy
allowlist := {
"ls",
"terraform taint random_password.secret" ,

右の例ではSpaceliftからの

}
allowed { allowlist[_] == input.request.command }

コマンド実行を制限

deny["Only selected commands are allowed" ] { not allowed }
# Learn more about sampling policy evaluations here:
# https://docs.spacelift.io/concepts/policy#sampling-policy-inputs
sample { true }

13. Policy as Codeについて コマンドを制限するポリシーアタッチ後 リソースの削除コマンドが できなくなる

14. 課題 ● Rego言語の知見がまだ日本語記事が少ない ● Contextsの考えがわからない ● モジュール管理で一つのリポジトリで複数のTerraformを実行する場合、同じリ ポジトリで連携し直す必要がある。

15. まとめ

16. まとめ 面白いプロダクトだけど日本語が少なく 使いこなせる自信がない (泣) LinkedInで開発者とつながっているので、 興味ありましたらおつなぎします。

17. ありがとうございました より詳しい内容は以下のブログで↓ TerraformのCI/CD基盤を自動構築してく れるサービスSpaceliftを触ってみた (zenn.dev)