1. Organization (オーガナイゼーション)¶
1.1. はじめに¶
1.2. オーガナイゼーションとは¶
1.3. オーガナイゼーションの作成¶
1.3.1. 目的¶
処理のながれ
Keycloak に、オーガナイゼーション用のレルムデータと管理者ユーザが登録されます。
MariaDB や MySQL といったリレーショナルデータベースに、オーガナイゼーション用のデータが登録されます。
Exastro IT Automation の永続ボリュームに、オーガナイゼーション用のディレクトリが作成されます。
GitLab に、オーガナイゼーション用のユーザが登録されます。
1.3.2. 前提条件¶
前提条件
インストールが完了し、Keycloak の管理コンソールにログインできること
システム管理に必要な下記の情報があること
管理コンソールの URL
システム管理者のユーザID
システム管理者のパスワード
作業クライアントに必要なアプリケーションがインストールされていること
curl
git
jq
1.3.3. オーガナイゼーション作成¶
特徴
作成方法
オーガナイゼーション作成用シェルスクリプトを、リポジトリから git clone により取得します。
# Exastro Platform の資材を入手 git clone https://github.com/exastro-suite/exastro-platform.git
設定ファイルの CONF_BASE_URL に Exastro Suite の管理用エンドポイント URL を設定します。
# Exastro Platform への接続のための設定情報を登録 vi ./exastro-platform/tools/api-auth.conf
例えば、サービス公開の設定 で、Ingress を使ったサービス公開の設定をした場合は下記のようになります。1- CONF_BASE_URL=http://platform-auth:8001 2+ CONF_BASE_URL=http://exastro-suite-mng.example.local 3 CURL_OPT=-sv
Tip
自己証明書を利用している場合、証明書エラーが発生します。設定ファイル内の CURL_OPT=-sv を CURL_OPT=-svk に変更することで証明書エラーを回避できますが、認証機関から発行された正しい証明書をインストールすることを推奨します。オーガナイゼーション情報の設定
オーガナイゼーション作成時の初期登録情報として下記の項目を設定できます。¶ 項目
説明
変更
デフォルト値・選択可能な設定値
id
オーガナイゼーションIDを指定。英小文字、数字、ハイフン、アンダースコアが利用可能。最大36文字。※先頭文字は英小文字であること。※予約語(後述)に合致しないこと。可
"org001"
name
オーガナイゼーション名を指定。最大255文字可
"org001-name"
organization_managers
オーガナイゼーション管理者の情報を指定。※複数名登録するときは繰り返し指定可能可
(オーガナイゼーション管理者のリスト)
organization_managers[*].username
オーガナイゼーション管理者のユーザ名(ログインするときのID)を指定。
可
"admin"
organization_managers[*].email
オーガナイゼーション管理者のE-mailアドレスを指定。
可
organization_managers[*].firstName
オーガナイゼーション管理者の名を指定。
可
"admin"
organization_managers[*].lastName
オーガナイゼーション管理者の姓を指定。
可
"admin"
organization_managers[*].credentials[0].type
認証方式を指定。
不可
"password"
organization_managers[*].credentials[0].value
オーガナイゼーション管理者の初期パスワードを指定。
可
"password"
organization_managers[*].credentials[0].temporary
初回ログイン時のパスワード変更の要否の有無を指定。
可
true (デフォルト): パスワードの変更を要求する。false: パスワードの変更を要求しない。plan.id
リソースプランを指定。
可
※初期状態では存在しないため指定しない。
options.sslRequired
SSL 接続の有無を指定。
可
external (既定): プライベート IP アドレスに固定する限り、ユーザは SSL 無しで Keycloak と通信可能。none: SSL の設定なし。all: すべての IP アドレスに対し、SSL を要求。(内部の API が HTTP アクセスのため選択不可)optionsIta.no_install_driver
インストールをしないドライバを指定。
可
以下の値をList形式で指定すると、指定したドライバがワークスペース作成時にインストールされない。省略可。terraform_cloud_ep: Terraform Cloud/EPドライバterraform_cli: Terraform CLIドライバci_cd: CI/CD for IaCドライバ例:"optionsIta": {"no_install_driver": ["terraform_cloud_ep", "terraform_cli", "ci_cd"]}設定ファイルの作成は、./exastro-platform/tools/create-organization.sample.json
を基に、作成するオーガナイゼーションの情報を指定した JSON ファイルを基に作成します。create-organization.sample.json
1{ 2 "id" : "org001", 3 "name" : "org001-name", 4 "organization_managers" : [ 5 { 6 "username" : "admin", 7 "email" : "admin@example.com", 8 "firstName" : "admin", 9 "lastName" : "admin", 10 "credentials" : [ 11 { 12 "type" : "password", 13 "value" : "password", 14 "temporary" : true 15 } 16 ], 17 "requiredActions": [ 18 "UPDATE_PROFILE" 19 ], 20 "enabled": true 21 } 22 ], 23 "plan": { 24 "id": "plan-1" 25 }, 26 "options": {}, 27 "optionsIta": {} 28}
# 設定用ファイルの作成 cp -pi ./exastro-platform/tools/create-organization{.sample,}.json # 設定用ファイルの編集 vi ./exastro-platform/tools/create-organization.json
Tip
optionsの値に "sslRequired": "none" を指定することで、オーガナイゼーションユーザが http でのアクセスが可能となります。オーガナイゼーション作成実行
スクリプトを実行してオーガナイゼーションを作成します。your username と your username は Exastro システム管理者の作成 で登録した、KEYCLOAK_USER 及び KEYCLOAK_PASSWORD です。./exastro-platform/tools/create-organization.sh ./exastro-platform/tools/create-organization.json your username : INPUT-YOUR-USERNAME # システム管理者のユーザ名を入力します your password : INPUT-USER-PASSWORD # システム管理者のパスワードを入力します Create an organization, are you sure? (Y/other) : Y # Y を入力するとオーガナイゼーションの作成処理が開始します
成功時の結果表示は、result が "000-00000”となります。... < HTTP/1.1 200 OK < Date: Thu, 18 Aug 2022 01:49:13 GMT < Server: Apache/2.4.37 (Red Hat Enterprise Linux) mod_wsgi/4.7.1 Python/3.9 < Content-Length: 107 < Content-Type: application/json < { "data": null, "message": "SUCCESS", "result": "000-00000", "ts": "2022-08-18T01:49:17.251Z" } * Connection #0 to host platform-auth left intact
失敗時の結果表示は、result が "000-00000”以外となります。... < HTTP/1.1 400 BAD REQUEST < Date: Thu, 18 Aug 2022 05:29:35 GMT < Server: Apache/2.4.37 (Red Hat Enterprise Linux) mod_wsgi/4.7.1 Python/3.9 < Content-Length: 252 < Connection: close < Content-Type: application/json < { [252 bytes data] * Closing connection 0 { "data": null, "message": "指定されたorganization(org002)は作成済みのため、作成できません。", "result": "400-23001", "ts": "2022-08-18T05:29:35.643Z" }
特徴
Tip
作成方法
オーガナイゼーション作成用シェルスクリプトを、リポジトリから git clone により取得します。
# Exastro Platform の資材を入手 git clone https://github.com/exastro-suite/exastro-platform.git
設定ファイルの CONF_BASE_URL に Exastro Suite の管理用エンドポイント URL を設定します。
# Exastro Platform への接続のための設定情報を登録 vi ./exastro-platform/tools/api-auth.conf
例えば、サービス公開の設定 で、Ingress を使ったサービス公開の設定をした場合は下記のようになります。1- CONF_BASE_URL=http://platform-auth:8001 2+ CONF_BASE_URL=http://exastro-suite-mng.example.local 3 CURL_OPT=-sv
Tip
自己証明書を利用している場合、証明書エラーが発生します。設定ファイル内の CURL_OPT=-sv を CURL_OPT=-svk に変更することで証明書エラーを回避できますが、認証機関から発行された正しい証明書をインストールすることを推奨します。オーガナイゼーション作成実行
オーガナイゼーション作成時の初期登録情報として下記の項目を設定できます。¶ 項目
説明
変更
デフォルト値・選択可能な設定値
organization id
オーガナイゼーションIDを指定。英小文字、数字、ハイフン、アンダースコアが利用可能。最大36文字。※先頭文字は英小文字であること。※予約語(後述)に合致しないこと。可
"org001"
organization name
オーガナイゼーション名を指定。最大255文字可
"org001-name"
organization manager's username
オーガナイゼーション管理者のユーザ名(ログインするときのID)を指定。
可
"admin"
organization manager's email
オーガナイゼーション管理者のE-mailアドレスを指定。
可
organization manager's firstName
オーガナイゼーション管理者の名を指定。
可
"admin"
organization manager's lastName
オーガナイゼーション管理者の姓を指定。
可
"admin"
organization manager's initial password
オーガナイゼーション管理者の初期パスワードを指定。
可
"password"
organization plan id (optional)
リソースプランを指定。
可
※初期状態では未作成のため入力不要。
bash ./exastro-platform/tools/create-organization.sh
your username と your password は Exastro システム管理者の作成 で登録した、KEYCLOAK_USER 及び KEYCLOAK_PASSWORD です。Please enter the organization information to be created organization id : org001 # オーガナイゼーションIDを入力します organization name : org001-name # オーガナイゼーション名を入力します organization manager's username : admin # オーガナイゼーション管理者のユーザ名(ログインするときのID)を入力します organization manager's email : admin@example.com # オーガナイゼーション管理者のE-mailアドレスを入力します organization manager's first name : admin # オーガナイゼーション管理者の名を入力します organization manager's last name : admin # オーガナイゼーション管理者の姓を入力します organization manager's initial password : password # オーガナイゼーション管理者の初期パスワードを入力します organization plan id (optional) : # リソースプランを指定(任意)します ※ 初期状態では未作成のため入力不要 your username : INPUT-YOUR-USERNAME # システム管理者のユーザ名を入力します your password : INPUT-USER-PASSWORD # システム管理者のパスワードを入力します Create an organization, are you sure? (Y/other) : Y # "Y"を入力すると実行します
成功時の結果表示は、result が "000-00000”となります。... < HTTP/1.1 200 OK < Date: Thu, 18 Aug 2022 01:49:13 GMT < Server: Apache/2.4.37 (Red Hat Enterprise Linux) mod_wsgi/4.7.1 Python/3.9 < Content-Length: 107 < Content-Type: application/json < { "data": null, "message": "SUCCESS", "result": "000-00000", "ts": "2022-08-18T01:49:17.251Z" } * Connection #0 to host platform-auth left intact
失敗時の結果表示は、result が "000-00000”以外となります。... < HTTP/1.1 400 BAD REQUEST < Date: Thu, 18 Aug 2022 05:29:35 GMT < Server: Apache/2.4.37 (Red Hat Enterprise Linux) mod_wsgi/4.7.1 Python/3.9 < Content-Length: 252 < Connection: close < Content-Type: application/json < { [252 bytes data] * Closing connection 0 { "data": null, "message": "指定されたorganization(org002)は作成済みのため、作成できません。", "result": "400-23001", "ts": "2022-08-18T05:29:35.643Z" }
特徴
作成方法
オーガナイゼーション作成実行
¶ 項目
説明
変更
デフォルト値・選択可能な設定値
organization id
オーガナイゼーションIDを指定。英小文字、数字、ハイフン、アンダースコアが利用可能。最大36文字。※先頭文字は英小文字であること。※予約語(後述)に合致しないこと。可
"org001"
organization name
オーガナイゼーション名を指定。最大255文字可
"org001-name"
organization manager's username
オーガナイゼーション管理者のユーザ名(ログインするときのID)を指定。
可
"admin"
organization manager's email
オーガナイゼーション管理者のE-mailアドレスを指定。
可
organization manager's firstName
オーガナイゼーション管理者の名を指定。
可
"admin"
organization manager's lastName
オーガナイゼーション管理者の姓を指定。
可
"admin"
organization manager's initial password
オーガナイゼーション管理者の初期パスワードを指定。
可
"password"
options.sslRequired
SSL 接続の有無を指定。
可
external (既定): プライベート IP アドレスに固定する限り、ユーザは SSL 無しで Keycloak と通信可能。none: SSL の設定なし。all: すべての IP アドレスに対し、SSL を要求。(内部の API が HTTP アクセスのため選択不可)optionsIta.no_install_driver
インストールをしないドライバを指定。
可
以下の値をList形式で指定すると、指定したドライバがワークスペース作成時にインストールされない。省略可。terraform_cloud_ep: Terraform Cloud/EPドライバterraform_cli: Terraform CLIドライバci_cd: CI/CD for IaCドライバ例:"optionsIta": {"no_install_driver": ["terraform_cloud_ep", "terraform_cli", "ci_cd"]}
警告
BASE64_BASIC=$(echo -n "KEYCLOAK_USER:KEYCLOAK_PASSWORD" | base64)
BASE_URL=http://exastro-suite-mng.example.local
curl -X 'POST' \
"${BASE_URL}/api/platform/organizations" \
-H 'accept: application/json' \
-H "Authorization: Basic ${BASE64_BASIC}" \
-H 'Content-Type: application/json' \
-d '{
"id": "org001",
"name": "org001-name",
"organization_managers": [
{
"username": "admin",
"email": "admin@example.com",
"firstName": "admin",
"lastName": "admin",
"credentials": [
{
"type": "password",
"value": "password",
"temporary": true
}
],
"requiredActions": [
"UPDATE_PROFILE"
],
"enabled": true
}
],
"plan": {},
"options": {},
"optionsIta": {}
}'
1.4. オーガナイゼーションへのアクセス¶
# 書式
http[s]://{Exastro Platform の管理用 URL}/{オーガナイゼーションID}/platform/
# 具体例
http://exastro-suite-mng.example.local/org001/platform/
1.5. その他制約事項・備考¶
1.5.1. オーガナイゼーションIDの予約語¶
master
platform
account
account-console
admin-cli
broker
realm-management
security-admin-console
*-workspaces
system-*-auth
1.5.2. オーガナイゼーション作成を再実行する場合¶
./exastro-platform/tools/create-organization.sh --retry
./exastro-platform/tools/create-organization.sh ./exastro-platform/tools/create-organization.sample.json