360 Views
August 29, 23
スライド概要
2023年8月26日に行った、むきむきJava第一回での発表資料です。
ぐだぐだな発表でしたが、戒めの意味と、初心者歓迎の意味、二つを込めて公開します。
他山の石というのは、他の人の失敗を参考にするという意味だそうです。
Githubリポジトリはこちら↓
https://github.com/CouldU5SaNa/2023-08-26_Presentation
GithubAction GCP 自動デプロイ shiryu 1
目次 1. なぜ自動デプロイを行うのか 2. 今回使用するツールについて a. GCPの簡単な説明 b. Github Acitonsの簡単な説明 3. 全体のアーキテクチャ図 4. OIDC(OpenID Connect)についての説明 5. 実際の手順 6. 終わりに 2
なぜ自動デプロイなのか ソフトウェアのリリースサイクルを短縮するため →CI/CD (なので、SIer等ウォーターフォールの開発では使用しない可能性も大きい) DevOps,DecSecOps,SREの業務内で使用されることが多い様子。 3
CI/CDの構成要素 1. ビルド a. Gradle b. Maven c. Ant 2. テスト a. JUnit b. Spock 3. デプロイ 4
クラウドプロバイダ - GCP Azure AWS さくら 5
GCP スタンダード環境 - Docker構築不要 - 無償利用可能 フレキシブル環境 - Docker構築必要 - 無償利用不可 →スタンダードを選択 6
CI/CDツール比較 Jenkins Google Cloud Run Github Actions CircleCI Travis CI Ansible →Github Actionsを選択 7
Github Actions - プッシュ、プルリクエストに対して起動可能 - ブランチ指定も可能 - YAMLでの記述 - マーケットプレイスがある 8
登場する物 Workload Identity 9
OpenID Connec(OIDC) - OAuthの更に上に建てられた規格 - 認証情報以外にも、JWT形式でのIDTokenの発行を行う 10
実践 11
プロジェクト作成 12
プールの作成 13
OIDCプロバイダ設定 14
ワークロードプールの作成 15
サービスアカウントを作成する 16
17
プリンシパルにサービスアカウントへ のアクセス権の付与 18
19
上手に設定できると こうなる 20
App EngineのAPI も有効化が必要 21
OIDC用に作った サービスアカウントを使用する。 22
project id はコ ンソール画面に ある 23
注意 : 末尾のGithubの部分、本来 のIDがgithubだったせいでえらい時 間食った、気をつけましょう。 24
App Engineの リージョンを決め ておくのも大事。 25
補足 workload identity poolからアクセス権の設定をすると : どのリポジトリからでもアクセス可能になる。 26
エラーレポ(from Github Action) 27
未着手(from Github Action) - Workload Identityとのプロジェクト分離 フレキシブル環境でのパイプライン構築 CI/CDの範囲では自動テスト IAM、サービスアカウントについての解説 28
参考資料 RedHat : デプロイの自動化とは GCP : Workload Identity GCP : デプロイメント パイプラインとの Workload Identity 連携を構成する Qiita : yuki2006 Github ActionsでGoogle App Engineにデプロイする方法 Zenn : koki GitHub Actions で OIDC を使用して GCP 認証を行う 29
実は 事前に確認したらデプロイに失敗し続けて 焦りながら当日… 当然当日の発表はボロボロ コード自体のリポジトリはこちら https://github.com/CouldU5SaNa/2023-08-26_Prese ntation 30