10. Gitlab認証トークンの更新手順¶
10.1. 目的¶
10.2. 前提条件¶
10.2.1. 条件¶
- ITAが使用しているDBに対してレコード操作できること
- 下記のいずれかの条件を満たしていること
Gitlabをブラウザで表示でき、ルートユーザとしてログインができること
Gitlabを動作させているホスト(またはコンテナ内)で gitlab-rails が実行できること
10.3. 概要¶
ルートトークンの有効期限切れ対応
Gitlab側でルートトークンを新規発行
新規発行したルートトークンをITAに反映
Organization毎のパーソナルアクセストークンの有効期限切れ対応
Gitlab側でパーソナルアクセストークンを新規発行
新規発行したパーソナルアクセストークンをITAに反映
危険
10.4. ルートトークンの有効期限切れ対応¶
- Gitlabのルートユーザ名:root
10.4.1. Gitlab側でルートトークンを新規発行¶
方法1:ブラウザで実行¶
ルートユーザでサインインします。
図 10.1 ルートユーザのサインイン画面¶
左上のアイコンを押下し、更に「Edit profile」を押下し、プロフィール編集画面を表示します。
図 10.2 左上のアイコンを押下¶
図 10.3 「Edit profile」を押下¶
「Access tokens」を押下し、トークン管理画面を表示します。
図 10.4 「Access tokens」を押下¶
「Add new token」を押下し、トークン新規発行画面を表示します。
図 10.5 「Add new token」を押下¶
下記情報を入力します。
- 「Token name」は任意値ですが、管理上区別できるように別の名称とすることを推奨します。
- 「Expiration date」は1年後の日付を選択します。
- 「Select scopes」は「api」「write_repository」「sudo」を選択します。
図 10.6 トークン発行画面¶
「Create personal access token」を押下し、ルートトークンを新規作成します。
図 10.7 「Create personal access token」を押下¶
「Click to reveal」を押下し、ルートトークンを表示・コピーします。
図 10.8 「Click to reveal」を押下¶
方法2:コマンドで実行¶
- 作成するルートトークンにつける名称を「
name: '<<ここにルートトークンの名称を代入>>'」に代入します。- 任意値ですが、管理上区別できるように既存のものとは別の名称とすることを推奨します。
root@gitlab:/#
gitlab-rails runner "token = User.find_by_username('root').personal_access_tokens.create(scopes: ['api','sudo','write_repository'], name: '<<ここにルートトークンの名称を代入>>', expires_at: 365.days.from_now); token_str = SecureRandom.hex(10); p token_str; token.set_token(token_str); token.save!"
"81453fa40820de8a4ad6"
10.4.2. 新規発行したルートトークンをITAに反映¶
方法1:docker-compose版¶
.envを修正¶
~/exastro-docker-compose/.env 」の「 GITLAB_ROOT_TOKEN 」の値を修正します。### Parameters when using GitLab container
...
- GITLAB_ROOT_TOKEN=glpat-oldoldoldoldoldoldol
+ GITLAB_ROOT_TOKEN=glpat-RRRRRRRRRRRRRRRRRRRR
...
修正した.envを反映¶
~/exastro-docker-compose/setup.sh 」を実行して修正を反映します。cd ~/exastro-docker-compose
sh setup.sh install
...
Regenerate .env file? (y/n) [default: n]: n
...
Deploy Exastro containers now? (y/n) [default: n]: y
...
危険
方法2:Kubenetes版¶
values.yamlを修正¶
global.gitlabDefinition.secret.GITLAB_ROOT_TOKEN 」の値を修正します。global:
...
gitlabDefinition:
config:
...
secret:
...
- GITLAB_ROOT_TOKEN: "glpat-oldoldoldoldoldoldol"
+ GITLAB_ROOT_TOKEN: "glpat-RRRRRRRRRRRRRRRRRRRR"
...
修正したvalues.yamlを反映¶
helm upgrade exastro exastro/exastro --install --namespace exastro --create-namespace --values values.yaml
kubectl rollout restart deploy/ita-api-admin -n exastro
10.5. Organization毎のパーソナルアクセストークンの有効期限切れ対応¶
- Gitlabのルートユーザ名:root
- 対象のオーガナイゼーションID:test-org-01
10.5.1. Gitlab側でパーソナルアクセストークンを新規発行¶
方法1・2共通:DBに接続して実施¶
現在使用しているユーザ・トークンを確認¶
[none]> use ita_db;
[ita_db]> select PRIMARY_KEY,ORGANIZATION_ID,GITLAB_USER,GITLAB_TOKEN,DISUSE_FLAG,LAST_UPDATE_TIMESTAMP from `t_comn_organization_db_info` where DISUSE_FLAG = "0";
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
| PRIMARY_KEY | ORGANIZATION_ID | GITLAB_USER | GITLAB_TOKEN | DISUSE_FLAG | LAST_UPDATE_TIMESTAMP |
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
| 4897f2a4-6167-4efd-bcf9-8919c7174691 | test-org-01 | ITA_ORG_AA1B2F4F-DB58-4ACB-B957-2827DD4E2624 | glpat-XXXXXXXXXXXXXXXXXXXX | 0 | 2025-07-16 08:10:42.684294 |
| f15d6f77-440f-456e-a350-ac6adcc429df | test-org-02 | ITA_ORG_9DF4997D-6AA6-493B-9EAC-EFF9A33012AF | glpat-AAAAAAAAAAAAAAAAAAAA | 0 | 2025-07-16 16:48:57.401197 |
| 28e3f7a1-93bd-40f9-9818-d8e146113709 | test-org-03 | ITA_ORG_66F72495-2CE3-4234-A890-6A6710F2A9BF | glpat-BBBBBBBBBBBBBBBBBBBB | 0 | 2025-07-16 16:49:30.051664 |
| 75b24423-dc4e-4f6d-b334-100305dda867 | test-org-04 | ITA_ORG_C80E920F-8279-4DFA-97EC-A68E4017D6D2 | glpat-CCCCCCCCCCCCCCCCCCCC | 0 | 2025-07-16 16:52:38.068131 |
| 955927c2-49fb-4ea8-9853-eab8c957b390 | test-org-05 | ITA_ORG_A96A7A66-45BD-4AFE-B7EF-FF554956A1BA | glpat-DDDDDDDDDDDDDDDDDDDD | 0 | 2025-07-16 16:50:41.399886 |
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
6 rows in set (0.001 sec)
方法1:ブラウザで実行¶
ルートユーザでサインインします。
図 10.9 ルートユーザのサインイン画面¶
「Admin」を押下し、Admin areaを表示します。
図 10.10 「Admin」を押下¶
「Users」を押下し、Admin area / Usersを表示します。
図 10.11 「Users」を押下¶
上記の「GITLAB_USER」で表示されていたユーザ名を押下し、ユーザの詳細画面を表示します。
図 10.12 ユーザ名を押下¶
「Impersonate」を押下し、該当ユーザとしてログインします。
図 10.13 「Impersonate」を押下¶
左上のアイコンを押下し、更に「Edit profile」を押下し、プロフィール編集画面を表示します。
図 10.14 左上のアイコンを押下¶
図 10.15 「Edit profile」を押下¶
「Access tokens」を押下し、パーソナルアクセストークン管理画面を表示します。
図 10.16 「Access tokens」を押下¶
「Add new token」を押下し、パーソナルアクセストークン新規発行画面を表示します。
図 10.17 「Add new token」を押下¶
下記情報を入力します。
- 「Token name」は任意値(デフォルトではGITLAB_USERと同値)ですが、管理上区別できるように別の名称とすることを推奨します。
- 「Expiration date」は1年後の日付を選択します。
- 「Select scopes」は「api」のみを選択します。
図 10.18 トークン発行画面¶
「Create personal access token」を押下し、パーソナルアクセストークンを新規作成します。
図 10.19 「Create personal access token」を押下¶
「Click to reveal」を押下し、パーソナルアクセストークンを表示・コピーします。
図 10.20 「Click to reveal」を押下¶
方法2:コマンドで実行¶
- 作成するパーソナルアクセストークンにつける名称を「
name: '<<ここにパーソナルアクセストークンの名称を代入>>'」に代入します。- 任意値で、デフォルトではGITLAB_USERと同値ですが、管理上区別できるように別の名称とすることを推奨します。
- で確認したGITLAB_USERの値を「
User.find_by_username('<<ここにGITLAB_USERを代入>>')」に代入します。
root@gitlab:/#
gitlab-rails runner "token = User.find_by_username('<<ここにGITLAB_USERを代入>>').personal_access_tokens.create(scopes: ['api'], name: '<<ここにパーソナルアクセストークンの名称を代入>>', expires_at: 365.days.from_now); token_str = SecureRandom.hex(10); p token_str; token.set_token(token_str); token.save!"
"81453fa40820de8a4ad6"
10.5.2. 新規発行したパーソナルアクセストークンをITAに反映¶
DBに接続して実施¶
対象レコードの確認¶
[none]> use ita_db;
[ita_db]> select PRIMARY_KEY,ORGANIZATION_ID,GITLAB_USER,GITLAB_TOKEN,DISUSE_FLAG,LAST_UPDATE_TIMESTAMP from `t_comn_organization_db_info` where DISUSE_FLAG = "0";
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
| PRIMARY_KEY | ORGANIZATION_ID | GITLAB_USER | GITLAB_TOKEN | DISUSE_FLAG | LAST_UPDATE_TIMESTAMP |
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
| 4897f2a4-6167-4efd-bcf9-8919c7174691 | test-org-01 | ITA_ORG_AA1B2F4F-DB58-4ACB-B957-2827DD4E2624 | glpat-XXXXXXXXXXXXXXXXXXXX | 0 | 2025-07-16 08:10:42.684294 |
| f15d6f77-440f-456e-a350-ac6adcc429df | test-org-02 | ITA_ORG_9DF4997D-6AA6-493B-9EAC-EFF9A33012AF | glpat-AAAAAAAAAAAAAAAAAAAA | 0 | 2025-07-16 16:48:57.401197 |
| 28e3f7a1-93bd-40f9-9818-d8e146113709 | test-org-03 | ITA_ORG_66F72495-2CE3-4234-A890-6A6710F2A9BF | glpat-BBBBBBBBBBBBBBBBBBBB | 0 | 2025-07-16 16:49:30.051664 |
| 75b24423-dc4e-4f6d-b334-100305dda867 | test-org-04 | ITA_ORG_C80E920F-8279-4DFA-97EC-A68E4017D6D2 | glpat-CCCCCCCCCCCCCCCCCCCC | 0 | 2025-07-16 16:52:38.068131 |
| 955927c2-49fb-4ea8-9853-eab8c957b390 | test-org-05 | ITA_ORG_A96A7A66-45BD-4AFE-B7EF-FF554956A1BA | glpat-DDDDDDDDDDDDDDDDDDDD | 0 | 2025-07-16 16:50:41.399886 |
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
6 rows in set (0.001 sec)
対象レコードの更新¶
- で発行したパーソナルアクセストークンを「
GITLAB_TOKEN = "<<ここにパーソナルアクセストークンを代入>>"」に代入します。 - で確認したORGANIZATION_IDの値を「
ORGANIZATION_ID = "<<ここにORGANIZATION_IDを代入>>"」に代入します。 - で確認したGITLAB_USERの値を「
GITLAB_USER = "<<ここにGITLAB_USERを代入>>"」に代入します。
[ita_db]> update `t_comn_organization_db_info` set GITLAB_TOKEN = "<<ここにパーソナルアクセストークンを代入>>" where ORGANIZATION_ID = "<<ここにORGANIZATION_IDを代入>>" and GITLAB_USER = "<<ここにGITLAB_USERを代入>>" and DISUSE_FLAG = "0";
Query OK, 1 row affected (0.006 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Query OK, 1 row affected 」と表示されることを確認してください。対象レコードの更新確認¶
[ita_db]> select PRIMARY_KEY,ORGANIZATION_ID,GITLAB_USER,GITLAB_TOKEN,DISUSE_FLAG,LAST_UPDATE_TIMESTAMP from `t_comn_organization_db_info` where DISUSE_FLAG = "0";
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
| PRIMARY_KEY | ORGANIZATION_ID | GITLAB_USER | GITLAB_TOKEN | DISUSE_FLAG | LAST_UPDATE_TIMESTAMP |
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
| 4897f2a4-6167-4efd-bcf9-8919c7174691 | test-org-01 | ITA_ORG_AA1B2F4F-DB58-4ACB-B957-2827DD4E2624 | glpat-YYYYYYYYYYYYYYYYYYYY | 0 | 2025-07-16 08:10:42.684294 |
| f15d6f77-440f-456e-a350-ac6adcc429df | test-org-02 | ITA_ORG_9DF4997D-6AA6-493B-9EAC-EFF9A33012AF | glpat-AAAAAAAAAAAAAAAAAAAA | 0 | 2025-07-16 16:48:57.401197 |
| 28e3f7a1-93bd-40f9-9818-d8e146113709 | test-org-03 | ITA_ORG_66F72495-2CE3-4234-A890-6A6710F2A9BF | glpat-BBBBBBBBBBBBBBBBBBBB | 0 | 2025-07-16 16:49:30.051664 |
| 75b24423-dc4e-4f6d-b334-100305dda867 | test-org-04 | ITA_ORG_C80E920F-8279-4DFA-97EC-A68E4017D6D2 | glpat-CCCCCCCCCCCCCCCCCCCC | 0 | 2025-07-16 16:52:38.068131 |
| 955927c2-49fb-4ea8-9853-eab8c957b390 | test-org-05 | ITA_ORG_A96A7A66-45BD-4AFE-B7EF-FF554956A1BA | glpat-DDDDDDDDDDDDDDDDDDDD | 0 | 2025-07-16 16:50:41.399886 |
+--------------------------------------+-----------------+----------------------------------------------+----------------------------+-------------+----------------------------+
6 rows in set (0.001 sec)