概要
GCE:ubuntu 18.04 lts
GitLab: 14.1.2-ee
GitLabからGKEを作成しようとしたがGCPの認証を行ってからしてねとメッセージが出たので認証を行う
認証情報の作成
前提条件として事前にGCPのプロジェクトを作成済み
認証情報 > 認証情報を作成 > Oauth クライアントIDをクリック
以下のように情報を入力していく
- アプリケーション種類:ウェブアプリケーションを選択
- 名前:GitLab(分かりやすければ何でもよい)
- 承認済みの JavaScript 生成元
- 承認済みのリダイレクト URI
承認済みのリダイレクト URIはGitLabが用意しているもので決まり事です、ドメインの部分は自身の環境に合わせたドメインにしてください
また、Google は生の IPアドレスを受け付けないので、ドメイン名を指定する必要があります。
作成を押すとクライアントIDとクライアントシークレットが表示される。
後で必要になるので、メモするかページを開いたままにしておく。(閉じても後で確認出来ます)
APIの有効化
以下の3つのAPIを有効化しておく必要がある
- Google Kubernetes Engine API
- Cloud Resource Manager API
- Cloud Billing API
APIの有効化はGoogle API Consoleを開き該当APIを選択して、APIを有効にするをクリック
OAuth同意画面
パンくずリストっぽいものが表示され順番に入力していく
1. OAuth 同意画面
アプリ名:わかりやすい名前
ユーザーサポートメール:取り合えず自分のメールアドレス
デベロッパーの連絡先情報:取り合えず自分のメールアドレス
2. スコープ
現在では利用しないため入力なし
3. テストユーザー
公開ステータスをテストにしている場合、認証を認めるユーザーのユーザー情報(今回メールアドレス)を入力
上記入力しないと認証されない
GitLabでの作業
GitLabを動作させてるマシンにログインし、設定を行う
sudo vi /etc/gitlab/gitlab.rb
よりOminiAuthを有効にする。
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2']
gitlab_rails['omniauth_external_providers'] = ['google_oauth2']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
{
"name" => "google_oauth2",
"app_id" => "メモに残しているクライアントID",
"app_secret" => "メモに残しているクライアントシークレット",
"args" => { "access_type" => "offline", "approval_prompt" => '' }
}
]
再設定を行う
sudo gitlab-ctl reconfigure
これで認証されるはず