Slide 1

Slide 1 text

GithubAction GCP 自動デプロイ shiryu 1

Slide 2

Slide 2 text

目次 1. なぜ自動デプロイを行うのか 2. 今回使用するツールについて a. GCPの簡単な説明 b. Github Acitonsの簡単な説明 3. 全体のアーキテクチャ図 4. OIDC(OpenID Connect)についての説明 5. 実際の手順 6. 終わりに 2

Slide 3

Slide 3 text

なぜ自動デプロイなのか ソフトウェアのリリースサイクルを短縮するため →CI/CD 3 (なので、SIer等ウォーターフォールの開発では使用しない可能性も大きい) DevOps,DecSecOps,SREの業務内で使用されることが多い様子。

Slide 4

Slide 4 text

CI/CDの構成要素 1. ビルド a. Gradle b. Maven c. Ant 2. テスト a. JUnit b. Spock 3. デプロイ 4

Slide 5

Slide 5 text

クラウドプロバイダ - GCP - Azure - AWS - さくら 5

Slide 6

Slide 6 text

GCP スタンダード環境 - Docker構築不要 - 無償利用可能 フレキシブル環境 - Docker構築必要 - 無償利用不可 →スタンダードを選択 6

Slide 7

Slide 7 text

CI/CDツール比較 Jenkins Google Cloud Run Github Actions CircleCI Travis CI Ansible →Github Actionsを選択 7

Slide 8

Slide 8 text

Github Actions - プッシュ、プルリクエストに対して起動可能 - ブランチ指定も可能 - YAMLでの記述 - マーケットプレイスがある 8

Slide 9

Slide 9 text

登場する物 9 Workload Identity

Slide 10

Slide 10 text

OpenID Connec(OIDC) - OAuthの更に上に建てられた規格 - 認証情報以外にも、JWT形式でのIDTokenの発行を行う 10

Slide 11

Slide 11 text

実践 11

Slide 12

Slide 12 text

12 12 プロジェクト作成

Slide 13

Slide 13 text

13 13 プールの作成

Slide 14

Slide 14 text

14 14 OIDCプロバイダ設定

Slide 15

Slide 15 text

15 15 ワークロードプールの作成

Slide 16

Slide 16 text

16 16 サービスアカウントを作成する

Slide 17

Slide 17 text

17 17

Slide 18

Slide 18 text

18 18 プリンシパルにサービスアカウントへ のアクセス権の付与

Slide 19

Slide 19 text

19 19

Slide 20

Slide 20 text

20 20 上手に設定できると こうなる

Slide 21

Slide 21 text

21 21 App EngineのAPI も有効化が必要

Slide 22

Slide 22 text

22 22 OIDC用に作った サービスアカウントを使用する。

Slide 23

Slide 23 text

23 23 project id はコ ンソール画面に ある

Slide 24

Slide 24 text

24 24 注意 : 末尾のGithubの部分、本来 のIDがgithubだったせいでえらい時 間食った、気をつけましょう。

Slide 25

Slide 25 text

25 25 App Engineの リージョンを決め ておくのも大事。

Slide 26

Slide 26 text

26 補足 26 workload identity poolからアクセス権の設定をすると : どのリポジトリからでもアクセス可能になる。

Slide 27

Slide 27 text

27 エラーレポ(from Github Action) 27

Slide 28

Slide 28 text

28 未着手(from Github Action) 28 - Workload Identityとのプロジェクト分離 - フレキシブル環境でのパイプライン構築 - CI/CDの範囲では自動テスト - IAM、サービスアカウントについての解説

Slide 29

Slide 29 text

29 参考資料 29 RedHat : デプロイの自動化とは GCP : Workload Identity GCP : デプロイメント パイプラインとの Workload Identity 連携を構成する Qiita : yuki2006 Github ActionsでGoogle App Engineにデプロイする方法 Zenn : koki GitHub Actions で OIDC を使用して GCP 認証を行う

Slide 30

Slide 30 text

30 実は 30 事前に確認したらデプロイに失敗し続けて 焦りながら当日… 当然当日の発表はボロボロ コード自体のリポジトリはこちら https://github.com/CouldU5SaNa/2023-08-26_Prese ntation