2. Helm chart (Kubernetes)

2.1. 目的

本書では、Exastro IT Automation を利用する際に必要となる、Exastro Platform および Exastro IT Automation を Kubernetes 上に導入する手順について説明します。

2.2. 特徴

高い可用性やサービスレベルを必要とされる際の、Exastro IT Automation の導入方法となります。
評価や一時的な利用など、簡単に利用を開始したい場合には、Docker Compose 版 の利用を推奨します。

2.3. 前提条件

  • クライアント要件

    動作確認が取れているクライアントアプリケーションのバージョンは下記のとおりです。
    表 2.122 クライアント要件

    アプリケーション

    バージョン

    Helm

    v3.9.x

    kubectl

    1.23

  • デプロイ環境

    動作確認が取れているコンテナ環境の最小要求リソースとバージョンは下記のとおりです。
    表 2.123 デプロイ環境

    リソース種別

    要求リソース

    CPU

    2 Cores (3.0 GHz)

    Memory

    4GB

    Storage (Container image size)

    10GB

    Kubernetes

    1.23 以上

    警告

    要求リソースは Exastro IT Automation のコア機能に対する値です。同一クラスタ上に Keycloak や MariaDB などの外部ツールをデプロイする場合は、その分のリソースが別途必要となります。
    データベースおよびファイルの永続化のために、別途ストレージ領域を用意する必要があります。
    Storage サイズには、Exastro IT Automation が使用する入出力データのファイルは含まれていないため、利用状況に応じて容量を見積もる必要があります。
  • 通信要件

    • クライアントからデプロイ先のコンテナ環境にアクセスできる必要があります。

    • Platform 管理者用と一般ユーザー用の2つ通信ポートが使用となります。

    • コンテナ環境からコンテナイメージの取得のために、Docker Hub に接続できる必要があります。

  • 外部コンポーネント

    • MariaDB、もしくは、MySQL サーバ

    • GitLab リポジトリ、および、アカウントの払い出しが可能なこと

    警告

    GitLab 環境を同一クラスタに構築する場合は、GitLab のシステム要件に対応する最小要件を追加で容易する必要があります。
    Database 環境を同一クラスタに構築する場合は、使用する Database のシステム要件に対応する最小要件を定義する必要があります

2.4. インストールの準備

2.4.1. Helm リポジトリの登録

Exastro システムは、以下の2つのアプリケーションから構成されています。
Exastro の全ツールは同一の Helm リポジトリ上に存在しています。
  • 共通基盤 (Exastro Platform)

  • Exastro IT Automation

リポジトリ

https://exastro-suite.github.io/exastro-helm/

リスト 2.120 コマンド
1# Exastro システムの Helm リポジトリを登録
2helm repo add exastro https://exastro-suite.github.io/exastro-helm/ -n exastro
3# リポジトリ情報の更新
4helm repo update

2.4.2. デフォルト設定値の取得

投入するパラメータを管理しやすくするために、下記のコマンドから共通基盤 values.yaml のデフォルト値を出力します。
リスト 2.121 コマンド
helm show values exastro/exastro > exastro.yaml
exastro.yaml
  1# Default values for Exastro.
  2# This is a YAML-formatted file.
  3# Declare variables to be passed into your templates.
  4global:
  5  itaGlobalDefinition:
  6    name: ita-global
  7    enabled: true
  8    image:
  9      registry: "docker.io"
 10      organization: exastro
 11      package: exastro-it-automation
 12    config:
 13      DEFAULT_LANGUAGE: "ja"
 14      LANGUAGE: "en"
 15      CONTAINER_BASE: "kubernetes"
 16      TZ: "Asia/Tokyo"
 17      STORAGEPATH: "/storage/"
 18    secret:
 19      ENCRYPT_KEY: ""
 20    persistence:
 21      enabled: true
 22      accessMode: ReadWriteMany
 23      size: 10Gi
 24      volumeType: hostPath # e.g.) hostPath or AKS
 25      storageClass: "-" # e.g.) azurefile or - (None)
 26      # matchLabels:
 27      #   release: "stable"
 28      # matchExpressions:
 29      #   - {key: environment, operator: In, values: [dev]}
 30  gitlabDefinition:
 31    name: gitlab
 32    enabled: true
 33    config:
 34      GITLAB_PROTOCOL: "http"
 35      GITLAB_HOST: "gitlab"
 36      GITLAB_PORT: "80"
 37    secret:
 38      GITLAB_ROOT_TOKEN: ""
 39  itaDatabaseDefinition:
 40    name: ita-database
 41    enabled: true
 42    config:
 43      DB_VENDOR: "mariadb"
 44      DB_HOST: "mariadb"
 45      DB_PORT: "3306"
 46      DB_DATABASE: "ITA_DB"
 47    secret:
 48      DB_ADMIN_USER: ""
 49      DB_ADMIN_PASSWORD: ""
 50      DB_USER: ""
 51      DB_PASSWORD: ""
 52  pfGlobalDefinition:
 53    name: pf-global
 54    enabled: true
 55    image:
 56      registry: "docker.io"
 57      organization: exastro
 58      package: exastro-platform
 59    config:
 60      DEFAULT_LANGUAGE: "ja"
 61      LANGUAGE: "en"
 62      TZ: "Asia/Tokyo"
 63      PYTHONIOENCODING: utf-8
 64      PLATFORM_API_PROTOCOL: "http"
 65      PLATFORM_API_HOST: "platform-api"
 66      PLATFORM_API_PORT: "8000"
 67      PLATFORM_WEB_PROTOCOL: "http"
 68      PLATFORM_WEB_HOST: "platform-web"
 69      PLATFORM_WEB_PORT: "8000"
 70    secret:
 71      ENCRYPT_KEY: ""
 72    persistence:
 73      enabled: true
 74      accessMode: ReadWriteMany
 75      size: 10Gi
 76      volumeType: hostPath # e.g.) hostPath or AKS
 77      storageClass: "-" # e.g.) azurefile or - (None)
 78      # matchLabels:
 79      #   release: "stable"
 80      # matchExpressions:
 81      #   - {key: environment, operator: In, values: [dev]}
 82  keycloakDefinition:
 83    name: keycloak
 84    enabled: true
 85    config:
 86      API_KEYCLOAK_PROTOCOL: "http"
 87      API_KEYCLOAK_HOST: "keycloak"
 88      API_KEYCLOAK_PORT: "8080"
 89      KEYCLOAK_PROTOCOL: "http"
 90      KEYCLOAK_HOST: "keycloak"
 91      KEYCLOAK_PORT: "8080"
 92      KEYCLOAK_MASTER_REALM: "master"
 93      KEYCLOAK_DB_DATABASE: "keycloak"
 94    secret:
 95      KEYCLOAK_USER: ""
 96      KEYCLOAK_PASSWORD: ""
 97      KEYCLOAK_DB_USER: ""
 98      KEYCLOAK_DB_PASSWORD: ""
 99  itaDefinition:
100    name: ita
101    enabled: true
102    config:
103      ITA_WEB_PROTOCOL: "http"
104      ITA_WEB_HOST: "ita-web-server"
105      ITA_WEB_PORT: "8000"
106      ITA_API_PROTOCOL: "http"
107      ITA_API_HOST: "ita-api-organization"
108      ITA_API_PORT: "8080"
109      ITA_API_ADMIN_PROTOCOL: "http"
110      ITA_API_ADMIN_HOST: "ita-api-admin"
111      ITA_API_ADMIN_PORT: "8080"
112  pfDatabaseDefinition:
113    name: pf-database
114    enabled: true
115    config:
116      DB_VENDOR: "mariadb"
117      DB_HOST: "mariadb"
118      DB_PORT: "3306"
119      DB_DATABASE: "platform"
120    secret:
121      DB_ADMIN_USER: ""
122      DB_ADMIN_PASSWORD: ""
123      DB_USER: ""
124      DB_PASSWORD: ""
125  databaseDefinition:
126    name: mariadb
127    enabled: true
128    secret:
129      MARIADB_ROOT_PASSWORD: ""
130    persistence:
131      enabled: true
132      reinstall: false
133      accessMode: ReadWriteOnce
134      size: 20Gi
135      volumeType: hostPath # e.g.) hostPath or AKS
136      storageClass: "-" # e.g.) azurefile or - (None)
137      # matchLabels:
138      #   release: "stable"
139      # matchExpressions:
140      #   - {key: environment, operator: In, values: [dev]}
141
142exastro-it-automation:
143  ita-api-admin:
144    replicaCount: 1
145    image:
146      repository: "exastro/exastro-it-automation-api-admin"
147      tag: ""
148      pullPolicy: IfNotPresent
149    extraEnv:
150      PLATFORM_API_HOST: "platform-api"
151      PLATFORM_API_PORT: "8000"
152
153  ita-api-organization:
154    replicaCount: 1
155    image:
156      repository: "exastro/exastro-it-automation-api-organization"
157      tag: ""
158      pullPolicy: IfNotPresent
159    extraEnv:
160      PLATFORM_API_HOST: "platform-api"
161      PLATFORM_API_PORT: "8000"
162
163  ita-by-ansible-execute:
164    replicaCount: 1
165    image:
166      repository: "exastro/exastro-it-automation-by-ansible-execute"
167      tag: ""
168      pullPolicy: IfNotPresent
169    extraEnv:
170      EXECUTE_INTERVAL: "10"
171      ANSIBLE_AGENT_IMAGE: "exastro/exastro-it-automation-by-ansible-agent"
172      ANSIBLE_AGENT_IMAGE_TAG: ""
173      PLATFORM_API_HOST: "platform-api"
174      PLATFORM_API_PORT: "8000"
175    serviceAccount:
176      create: false
177      name: "ita-by-ansible-execute-sa"
178
179  ita-by-ansible-legacy-role-vars-listup:
180    replicaCount: 1
181    extraEnv:
182      EXECUTE_INTERVAL: "10"
183      PLATFORM_API_HOST: "platform-api"
184      PLATFORM_API_PORT: "8000"
185    image:
186      repository: "exastro/exastro-it-automation-by-ansible-legacy-role-vars-listup"
187      tag: ""
188      pullPolicy: IfNotPresent
189
190  ita-by-ansible-legacy-vars-listup:
191    replicaCount: 1
192    extraEnv:
193      EXECUTE_INTERVAL: "10"
194      PLATFORM_API_HOST: "platform-api"
195      PLATFORM_API_PORT: "8000"
196    image:
197      repository: "exastro/exastro-it-automation-by-ansible-legacy-vars-listup"
198      tag: ""
199      pullPolicy: IfNotPresent
200
201  ita-by-ansible-pioneer-vars-listup:
202    replicaCount: 1
203    extraEnv:
204      EXECUTE_INTERVAL: "10"
205      PLATFORM_API_HOST: "platform-api"
206      PLATFORM_API_PORT: "8000"
207    image:
208      repository: "exastro/exastro-it-automation-by-ansible-pioneer-vars-listup"
209      tag: ""
210      pullPolicy: IfNotPresent
211
212  ita-by-ansible-towermaster-sync:
213    replicaCount: 1
214    extraEnv:
215      EXECUTE_INTERVAL: "10"
216      PLATFORM_API_HOST: "platform-api"
217      PLATFORM_API_PORT: "8000"
218    image:
219      repository: "exastro/exastro-it-automation-by-ansible-towermaster-sync"
220      tag: ""
221      pullPolicy: IfNotPresent
222
223  ita-by-cicd-for-iac:
224    replicaCount: 1
225    extraEnv:
226      EXECUTE_INTERVAL: "10"
227      PLATFORM_API_HOST: "platform-api"
228      PLATFORM_API_PORT: "8000"
229    image:
230      repository: "exastro/exastro-it-automation-by-cicd-for-iac"
231      tag: ""
232      pullPolicy: IfNotPresent
233
234  ita-by-collector:
235    replicaCount: 1
236    extraEnv:
237      EXECUTE_INTERVAL: "10"
238      PLATFORM_API_HOST: "platform-api"
239      PLATFORM_API_PORT: "8000"
240    image:
241      repository: "exastro/exastro-it-automation-by-collector"
242      tag: ""
243      pullPolicy: IfNotPresent
244
245  ita-by-conductor-regularly:
246    replicaCount: 1
247    extraEnv:
248      EXECUTE_INTERVAL: "10"
249      PLATFORM_API_HOST: "platform-api"
250      PLATFORM_API_PORT: "8000"
251    image:
252      repository: "exastro/exastro-it-automation-by-conductor-regularly"
253      tag: ""
254      pullPolicy: IfNotPresent
255
256  ita-by-conductor-synchronize:
257    replicaCount: 1
258    extraEnv:
259      EXECUTE_INTERVAL: "10"
260      PLATFORM_API_HOST: "platform-api"
261      PLATFORM_API_PORT: "8000"
262    image:
263      repository: "exastro/exastro-it-automation-by-conductor-synchronize"
264      tag: ""
265      pullPolicy: IfNotPresent
266
267  ita-by-excel-export-import:
268    replicaCount: 1
269    extraEnv:
270      EXECUTE_INTERVAL: "10"
271      PLATFORM_API_HOST: "platform-api"
272      PLATFORM_API_PORT: "8000"
273    image:
274      repository: "exastro/exastro-it-automation-by-excel-export-import"
275      tag: ""
276      pullPolicy: IfNotPresent
277
278  ita-by-execinstance-dataautoclean:
279    replicaCount: 1
280    extraEnv:
281      EXECUTE_INTERVAL: "10"
282      PLATFORM_API_HOST: "platform-api"
283      PLATFORM_API_PORT: "8000"
284    image:
285      repository: "exastro/exastro-it-automation-by-execinstance-dataautoclean"
286      tag: ""
287      pullPolicy: IfNotPresent
288
289  ita-by-file-autoclean:
290    replicaCount: 1
291    extraEnv:
292      EXECUTE_INTERVAL: "10"
293      PLATFORM_API_HOST: "platform-api"
294      PLATFORM_API_PORT: "8000"
295    image:
296      repository: "exastro/exastro-it-automation-by-file-autoclean"
297      tag: ""
298      pullPolicy: IfNotPresent
299
300  ita-by-hostgroup-split:
301    replicaCount: 1
302    extraEnv:
303      EXECUTE_INTERVAL: "10"
304      PLATFORM_API_HOST: "platform-api"
305      PLATFORM_API_PORT: "8000"
306    image:
307      repository: "exastro/exastro-it-automation-by-hostgroup-split"
308      tag: ""
309      pullPolicy: IfNotPresent
310
311  ita-by-menu-create:
312    replicaCount: 1
313    extraEnv:
314      EXECUTE_INTERVAL: "10"
315      PLATFORM_API_HOST: "platform-api"
316      PLATFORM_API_PORT: "8000"
317    image:
318      repository: "exastro/exastro-it-automation-by-menu-create"
319      tag: ""
320      pullPolicy: IfNotPresent
321
322  ita-by-menu-export-import:
323    replicaCount: 1
324    extraEnv:
325      EXECUTE_INTERVAL: "10"
326      PLATFORM_API_HOST: "platform-api"
327      PLATFORM_API_PORT: "8000"
328    image:
329      repository: "exastro/exastro-it-automation-by-menu-export-import"
330      tag: ""
331      pullPolicy: IfNotPresent
332
333  ita-by-terraform-cli-execute:
334    replicaCount: 1
335    extraEnv:
336      EXECUTE_INTERVAL: "10"
337      PLATFORM_API_HOST: "platform-api"
338      PLATFORM_API_PORT: "8000"
339    image:
340      repository: "exastro/exastro-it-automation-by-terraform-cli-execute"
341      tag: ""
342      pullPolicy: IfNotPresent
343
344  ita-by-terraform-cli-vars-listup:
345    replicaCount: 1
346    extraEnv:
347      EXECUTE_INTERVAL: "10"
348      PLATFORM_API_HOST: "platform-api"
349      PLATFORM_API_PORT: "8000"
350    image:
351      repository: "exastro/exastro-it-automation-by-terraform-cli-vars-listup"
352      tag: ""
353      pullPolicy: IfNotPresent
354
355  ita-by-terraform-cloud-ep-execute:
356    replicaCount: 1
357    extraEnv:
358      EXECUTE_INTERVAL: "10"
359      PLATFORM_API_HOST: "platform-api"
360      PLATFORM_API_PORT: "8000"
361    image:
362      repository: "exastro/exastro-it-automation-by-terraform-cloud-ep-execute"
363      tag: ""
364      pullPolicy: IfNotPresent
365
366  ita-by-terraform-cloud-ep-vars-listup:
367    replicaCount: 1
368    extraEnv:
369      EXECUTE_INTERVAL: "10"
370      PLATFORM_API_HOST: "platform-api"
371      PLATFORM_API_PORT: "8000"
372    image:
373      repository: "exastro/exastro-it-automation-by-terraform-cloud-ep-vars-listup"
374      tag: ""
375      pullPolicy: IfNotPresent
376
377  ita-database-setup-job:
378    image:
379      repository: ""
380      tag: ""
381      pullPolicy: IfNotPresent
382
383  ita-web-server:
384    replicaCount: 1
385    image:
386      repository: "exastro/exastro-it-automation-web-server"
387      tag: ""
388      pullPolicy: IfNotPresent
389
390  ita-migration:
391    extraEnv:
392      PLATFORM_API_HOST: "platform-api"
393      PLATFORM_API_PORT: "8000"
394    image:
395      repository: "exastro/exastro-it-automation-migration"
396      tag: ""
397      pullPolicy: IfNotPresent
398
399exastro-platform:
400  platform-api:
401    image:
402      repository: "exastro/exastro-platform-api"
403      tag: ""
404
405  platform-auth:
406    extraEnv:
407      # Please set the URL to access
408      EXTERNAL_URL: ""
409      EXTERNAL_URL_MNG: ""
410    ingress:
411      enabled: true
412      hosts:
413        - host: exastro-suite.example.local
414          paths:
415            - path: /
416              pathType: Prefix
417              backend: "http"
418        - host: exastro-suite-mng.example.local
419          paths:
420            - path: /
421              pathType: Prefix
422              backend: "httpMng"
423    service:
424      type: ClusterIP
425      # http:
426      #   nodePort: 30080
427      # httpMng:
428      #   nodePort: 30081
429    image:
430      repository: "exastro/exastro-platform-auth"
431      tag: ""
432
433  platform-migration:
434    image:
435      repository: "exastro/exastro-platform-migration"
436      tag: ""
437
438  platform-web:
439    image:
440      repository: "exastro/exastro-platform-web"
441      tag: ""
442
443  mariadb:
444    enabled: true
445    image:
446      repository: "mariadb"
447      tag: "10.9"
448      pullPolicy: IfNotPresent
449    resources:
450      requests:
451        memory: "256Mi"
452        cpu: "1m"
453      limits:
454        memory: "2Gi"
455        cpu: "4"
456
457  keycloak:
458    enabled: true
459    image:
460      repository: "exastro/keycloak"
461      tag: ""
462      pullPolicy: IfNotPresent
463    resources:
464      requests:
465        memory: "256Mi"
466        cpu: "1m"
467      limits:
468        memory: "2Gi"
469        cpu: "4"
以降の手順では、この exastro.yaml に対してインストールに必要なパラメータを設定してきいます。

2.4.3. サービス公開の設定

Exastro サービスを公開するための代表的な3つの設定方法について紹介します。
  • Ingress

  • LoadBalancer

  • NodePort

注釈

ここで紹介する方法以外にもサービス公開方法はあります。ユーザの環境ごとに適切な構成・設定を選択してください。

パラメータ

利用可能なパラメータについては下記を参照してください。
表 2.124 Exastro Platform 認証機能のオプションパラメータ

パラメータ

説明

変更

デフォルト値・選択可能な設定値

exastro-platform.platform-auth.extraEnv.EXTERNAL_URL

Exastro Platform エンドポイントの公開URL。
リバースプロキシや PAT(Port Address Transport) などにより、Exastro のエンドポイントと公開時の URL に齟齬が発生することで、サービス接続に失敗する場合に設定をする必要があります。

公開用エンドポイントのURL
(http[s]://your-exastro.domain:port)

exastro-platform.platform-auth.extraEnv.EXTERNAL_URL_MNG

Exastro Platform 管理コンソールのエンドポイントの公開URL。
リバースプロキシや PAT(Port Address Transport) などにより、Exastro のエンドポイントと公開時の URL に齟齬が発生することで、サービス接続に失敗する場合に設定をする必要があります。

公開用エンドポイントのURL
(http[s]://your-exastro.domain:port)

exastro-platform.platform-auth.ingress.enabled

Exastro Platform における Ingress 利用の要否

true (デフォルト): Exastro Platform にアクセスするための Ingress Controller をデプロイします。
false : Ingress Controller をデプロイしません。

exastro-platform.platform-auth.ingress.hosts[0].host

Exastro Platform 管理コンソールエンドポイントのホスト名、もしくは、FQDN
別途、DNSへのレコード登録が必要です。

可 (Ingress利用時)

"exastro-suite.example.local"

exastro-platform.platform-auth.ingress.hosts[0].paths[0].path

Exastro Platform 管理コンソールエンドポイントのパスのルール

不可

"/"

exastro-platform.platform-auth.ingress.hosts[0].paths[0].pathType

Exastro Platform 管理コンソールエンドポイントのパスの一致条件

不可

"Prefix"

exastro-platform.platform-auth.ingress.hosts[0].paths[0].backend

Exastro Platform 管理コンソールのサービス名

不可

"http"

exastro-platform.platform-auth.ingress.hosts[1].host

Exastro Platform エンドポイントのホスト名、もしくは、FQDN
別途、DNSへのレコード登録が必要です。

可 (Ingress利用時)

"exastro-suite-mng.example.local"

exastro-platform.platform-auth.ingress.hosts[1].paths[0].path

Exastro Platform エンドポイントのパスのルール

不可

"/"

exastro-platform.platform-auth.ingress.hosts[1].paths[0].pathType

Exastro Platform エンドポイントのパスの一致条件

不可

"Prefix"

exastro-platform.platform-auth.ingress.hosts[1].paths[0].backend

Exastro Platform エンドポイントのエンドポイントのサービス名

不可

"httpMng"

exastro-platform.platform-auth.service.type

Exastro Platform のサービスタイプ

ClusterIP (デフォルト): Ingress Controller を利用する場合などに選択
LoadBalancer : LoadBalancer を利用する場合に選択
NodePort : NodePort を利用する場合に選択

exastro-platform.platform-auth.service.http.nodePort

Exastro Platform のサービス用公開ポート番号

可 (NodePort利用時)

"30080"

exastro-platform.platform-auth.service.httpMng.nodePort

Exastro Platform のシステム管理用公開ポート番号

可 (NodePort利用時)

"30081"

exastro-platform.platform-auth.image.repository

コンテナイメージのリポジトリ名

不可

"exastro/exastro-platform-auth"

exastro-platform.platform-auth.image.tag

コンテナイメージのタグ

不可

""

設定例

各サービス公開方法の設定例を下記に記載します。
  • 特徴

パブリッククラウドなどで Ingress Controller が利用可能な場合、Ingress を使ったサービス公開ができます。
クラスタ内にロードバランサーを構築して、ユーザ自身が運用したい場合などにメリットがあります。
  • 設定例

サービス公開用のドメイン情報を Ingress に登録することでDNSを使ったサービス公開を行います。
Azure におけるドメイン名の確認方法については ドメイン名の確認 を確認してください。
クラウドプロバイダ毎に必要な annotations を指定してください。
下記は、AKS の Ingress Controller を使用する際の例を記載しています。
リスト 2.122 exastro.yaml
232 platform-auth:
233   extraEnv:
234     # Please set the URL to access
235-    EXTERNAL_URL: ""
236-    EXTERNAL_URL_MNG: ""
237+    EXTERNAL_URL: "http://exastro-suite.xxxxxxxxxxxxxxxxxx.japaneast.aksapp.io"
238+    EXTERNAL_URL_MNG: "http://exastro-suite-mng.xxxxxxxxxxxxxxxxxx.japaneast.aksapp.io"
239   ingress:
240     enabled: true
241+    annotations:
242+      kubernetes.io/ingress.class: addon-http-application-routing
243+      nginx.ingress.kubernetes.io/proxy-body-size: 100m
244+      nginx.ingress.kubernetes.io/proxy-buffer-size: 256k
245+      nginx.ingress.kubernetes.io/server-snippet: |
246+        client_header_buffer_size 100k;
247+        large_client_header_buffers 4 100k;
248     hosts:
249-      - host: exastro-suite.example.local
250+      - host: exastro-suite.xxxxxxxxxxxxxxxxxx.japaneast.aksapp.io
251         paths:
252           - path: /
253             pathType: Prefix
254             backend: "http"
255-      - host: exastro-suite-mng.example.local
256+      - host: exastro-suite-mng.xxxxxxxxxxxxxxxxxx.japaneast.aksapp.io
257         paths:
258           - path: /
259             pathType: Prefix
260             backend: "httpMng"

2.4.4. データベース連携

Exastro サービスを利用するためには、CMDB やオーガナイゼーションの管理のためのデータベースが必要となります。
データベース利用時の3つの設定方法について説明します。
  • 外部データベース

  • データベースコンテナ

  • 特徴

マネージドデータベースや別途用意した Kubernetes クラスタ外のデータベースを利用します。
Kubernetes クラスタ外にあるため、環境を分離して管理することが可能です。

警告

複数のITAを構築する場合はlower_case_table_namesの設定を統一してください。
※統一しないと環境間でのメニューエクスポート・インポートが正常に動作しなくなる可能性があります。
  • 設定例

外部データベースを操作するために必要な接続情報を設定します。

警告

DB_ADMIN_USER で指定するDBの管理ユーザには、データベースとユーザを作成する権限が必要です。

警告

認証情報などはすべて平文で問題ありません。(Base64エンコードは不要)
  1. Exastro IT Automation 用データベースの設定

    データベースの接続情報を設定します。
    表 2.125 共通設定 (Exastro IT Automation 用データベース) のオプションパラメータ

    パラメータ

    説明

    変更

    デフォルト値・選択可能な設定値

    global.itaDatabaseDefinition.name

    Exastro IT Automation 用データベースの定義名

    不可

    "ita-database"

    global.itaDatabaseDefinition.enabled

    Exastro IT Automation 用データベースの定義の利用有無

    不可

    true

    global.itaDatabaseDefinition.config.DB_VENDOR

    Exastro IT Automation 用データベースで使用するデータベース

    可 (外部データベース利用時)

    "mariadb" (デフォルト): MariaDB を利用
    "mysql": MySQL を利用

    global.itaDatabaseDefinition.config.DB_HOST

    Exastro IT Automation 用データベース利用するDB
    デフォルト状態では、同一の Kubernetes クラスタ内にデプロイされるコンテナを指定しています。
    クラスタ外部の DB を利用する場合には設定が必要となります。

    可 (外部データベース利用時)

    "mariadb"

    global.itaDatabaseDefinition.config.DB_PORT

    Exastro IT Automation 用データベースで利用するポート番号(TCP)

    可 (外部データベース利用時)

    "3306"

    global.itaDatabaseDefinition.config.DB_DATABASE

    Exastro IT Automation 用データベースで利用するデータベース名

    可 (外部データベース利用時)

    "platform"

    global.itaDatabaseDefinition.secret.DB_ADMIN_USER

    Exastro IT Automation 用データベースで利用する管理権限を持つDBユーザ名

    必須

    管理権限を持つDBユーザ名

    global.itaDatabaseDefinition.secret.DB_ADMIN_PASSWORD

    Exastro IT Automation 用データベースで利用する管理権限を持つDBユーザのパスワード(エンコードなし)

    必須

    管理権限を持つDBユーザ名のパスワード

    global.itaDatabaseDefinition.secret.DB_USER

    Exastro IT Automation 用データベースに作成するDBユーザ名。
    指定した DB ユーザが作成される。

    必須

    任意の文字列

    global.itaDatabaseDefinition.secret.DB_PASSWORD

    Exastro IT Automation 用データベースに作成するDBユーザのパスワード(エンコードなし)

    必須

    任意の文字列

    リスト 2.125 exastro.yaml
    39  itaDatabaseDefinition:
    40    name: ita-database
    41    enabled: true
    42    config:
    43-     DB_VENDOR: "mariadb"
    44-     DB_HOST: "mariadb"
    45-     DB_PORT: "3306"
    46+     DB_VENDOR: "mariadb"                # mariadb or mysql
    47+     DB_HOST: "your.database.endpoint"   # データベースのエンドポイント
    48+     DB_PORT: "3306"                     # データベース接続ポート
    49      DB_DATABASE: "ITA_DB"               # 変更不要
    50    secret:
    51-     DB_ADMIN_USER: ""
    52-     DB_ADMIN_PASSWORD: ""s
    53+     DB_ADMIN_USER: "your-admin-account"      # データベースの管理権限を持つユーザ
    54+     DB_ADMIN_PASSWORD: "your-admin-password" # データベースの管理権限を持つユーザのパスワード
    55      DB_USER: ""
    56      DB_PASSWORD: ""
    
  2. Exastro 共通基盤用データベースの設定

    データベースの接続情報を設定します。
    表 2.126 共通設定 (Exastro 共通基盤用データベース) のオプションパラメータ

    パラメータ

    説明

    変更

    デフォルト値・選択可能な設定値

    global.pfDatabaseDefinition.name

    認証機能用データベースの定義名

    不可

    "pf-database"

    global.pfDatabaseDefinition.enabled

    認証機能用データベースの定義の有効有無

    不可

    true

    global.pfDatabaseDefinition.config.DB_VENDOR

    認証機能用データベースで使用するデータベース

    可 (外部データベース利用時)

    "mariadb" (デフォルト): MariaDB を利用
    "mysql": MySQL を利用

    global.pfDatabaseDefinition.config.DB_HOST

    認証機能用データベース利用するDB
    デフォルト状態では、同一の Kubernetes クラスタ内にデプロイされるコンテナを指定しています。
    クラスタ外部の DB を利用する場合には設定が必要となります。

    可 (外部データベース利用時)

    "mariadb"

    global.pfDatabaseDefinition.config.DB_PORT

    認証機能用データベースで利用するポート番号(TCP)

    可 (外部データベース利用時)

    "3306"

    global.pfDatabaseDefinition.config.DB_DATABASE

    認証機能用データベースで利用するデータベース名

    可 (外部データベース利用時)

    "platform"

    global.pfDatabaseDefinition.secret.DB_ADMIN_USER

    認証機能用データベースで利用する管理権限を持つDBユーザ名

    必須

    管理権限を持つDBユーザ名

    global.pfDatabaseDefinition.secret.DB_ADMIN_PASSWORD

    認証機能用データベースで利用する管理権限を持つDBユーザのパスワード(エンコードなし)

    必須

    管理権限を持つDBユーザ名のパスワード

    global.pfDatabaseDefinition.secret.DB_USER

    認証機能用データベースに作成するDBユーザ名。
    指定した DB ユーザが作成される。

    必須

    任意の文字列

    global.pfDatabaseDefinition.secret.DB_PASSWORD

    認証機能用データベースに作成するDBユーザのパスワード(エンコードなし)

    必須

    任意の文字列

    リスト 2.126 exastro.yaml
    112  pfDatabaseDefinition:
    113    name: auth-database
    114    enabled: true
    115    config:
    116-     DB_VENDOR: "mariadb"
    117-     DB_HOST: "mariadb"
    118-     DB_PORT: "3306"
    119+     DB_VENDOR: "mariadb"                # mariadb or mysql
    120+     DB_HOST: "your.database.endpoint"   # データベースのエンドポイント
    121+     DB_PORT: "3306"                     # データベース接続ポート
    122      DB_DATABASE: "platform"             # 変更不要
    123    secret:
    124-     DB_ADMIN_USER: ""
    125-     DB_ADMIN_PASSWORD: ""
    126+     DB_ADMIN_USER: "your-admin-account"      # データベースの管理者ユーザ
    127+     DB_ADMIN_PASSWORD: "your-admin-password" # データベースの管理者ユーザのパスワード
    128      DB_USER: ""
    129      DB_PASSWORD: ""
    
  3. データベースコンテナの無効化

    データベースコンテナが起動しないように設定します。
    表 2.127 共通設定 (Exastro 共用データベース) のオプションパラメータ

    パラメータ

    説明

    変更

    デフォルト値・選択可能な設定値

    global.databaseDefinition.name

    Exastro 共用データベースの定義名

    不可

    "mariadb"

    global.databaseDefinition.enabled

    Exastro 共用データベースの定義の利用有無

    不可

    true

    global.databaseDefinition.secret.MARIADB_ROOT_PASSWORD

    Exastro 共用データベースの root アカウントに設定するパスワード(エンコードなし)

    必須

    任意の文字列

    global.databaseDefinition.persistence.enabled

    Exastro 共用データベースのデータ永続化の有効フラグ

    "true" (デフォルト): データを永続化する
    "false": データを永続化しない

    global.databaseDefinition.persistence.reinstall

    再インストール時にデータ領域の初期化の要否

    可 (データ永続化時)

    "true" (デフォルト): データを初期化(削除)する
    "false": データを初期化(削除)しない

    global.databaseDefinition.persistence.accessMode

    永続ボリュームのアクセスモードの指定。

    不可

    "ReadWriteOnce"

    global.databaseDefinition.persistence.size

    永続ボリュームのディスク容量

    可 (データ永続化時)

    "20Gi"

    global.databaseDefinition.persistence.volumeType

    永続ボリュームのボリュームタイプ

    可 (現在無効)

    "hostPath" (デフォルト): Kubernetes クラスタのノード上にデータを保存(非推奨)
    "AKS": AKS のストレージクラスを利用

    global.databaseDefinition.persistence.storageClass

    永続ボリュームにストレージクラスを利用する場合のクラスを指定

    可 (データ永続化時)

    "-" (デフォルト): ストレージクラスを指定しない。
    ストレージクラス名: クラウドプロバイダなどから提供されるストレージクラス名を指定。
    リスト 2.127 exastro.yaml
    270  mariadb:
    271-   enabled: true
    272+   enabled: false
    

2.4.5. アプリケーションの DB ユーザ設定

Exastro でアプリケーションのために作成する DB ユーザの設定をします。

設定例

下記のアプリケーションが利用・作成する DB ユーザをそれぞれ設定します。
  • Exastro IT Automation

  • Exastro 共通基盤

  • Keycloak

警告

認証情報などはすべて平文で問題ありません。(Base64エンコードは不要)
  1. Exastro IT Automation 用データベースの設定

    アプリケーションが利用・作成する DB ユーザを設定します。
    表 2.131 共通設定 (Exastro IT Automation 用データベース) のオプションパラメータ

    パラメータ

    説明

    変更

    デフォルト値・選択可能な設定値

    global.itaDatabaseDefinition.name

    Exastro IT Automation 用データベースの定義名

    不可

    "ita-database"

    global.itaDatabaseDefinition.enabled

    Exastro IT Automation 用データベースの定義の利用有無

    不可

    true

    global.itaDatabaseDefinition.config.DB_VENDOR

    Exastro IT Automation 用データベースで使用するデータベース

    可 (外部データベース利用時)

    "mariadb" (デフォルト): MariaDB を利用
    "mysql": MySQL を利用

    global.itaDatabaseDefinition.config.DB_HOST

    Exastro IT Automation 用データベース利用するDB
    デフォルト状態では、同一の Kubernetes クラスタ内にデプロイされるコンテナを指定しています。
    クラスタ外部の DB を利用する場合には設定が必要となります。

    可 (外部データベース利用時)

    "mariadb"

    global.itaDatabaseDefinition.config.DB_PORT

    Exastro IT Automation 用データベースで利用するポート番号(TCP)

    可 (外部データベース利用時)

    "3306"

    global.itaDatabaseDefinition.config.DB_DATABASE

    Exastro IT Automation 用データベースで利用するデータベース名

    可 (外部データベース利用時)

    "platform"

    global.itaDatabaseDefinition.secret.DB_ADMIN_USER

    Exastro IT Automation 用データベースで利用する管理権限を持つDBユーザ名

    必須

    管理権限を持つDBユーザ名

    global.itaDatabaseDefinition.secret.DB_ADMIN_PASSWORD

    Exastro IT Automation 用データベースで利用する管理権限を持つDBユーザのパスワード(エンコードなし)

    必須

    管理権限を持つDBユーザ名のパスワード

    global.itaDatabaseDefinition.secret.DB_USER

    Exastro IT Automation 用データベースに作成するDBユーザ名。
    指定した DB ユーザが作成される。

    必須

    任意の文字列

    global.itaDatabaseDefinition.secret.DB_PASSWORD

    Exastro IT Automation 用データベースに作成するDBユーザのパスワード(エンコードなし)

    必須

    任意の文字列

    リスト 2.132 exastro.yaml
    39  itaDatabaseDefinition:
    40    name: ita-database
    41    enabled: true
    42    config:
    43      DB_VENDOR: "mariadb"
    44      DB_HOST: "mariadb"
    45      DB_PORT: "3306"
    46      DB_DATABASE: "ITA_DB"
    47    secret:
    48      DB_ADMIN_USER: ""
    49      DB_ADMIN_PASSWORD: ""
    50-     DB_USER: ""
    51-     DB_PASSWORD: ""
    52+     DB_USER: "ita-db-user"                # Exastro IT Automation のアプリが使うDBユーザ
    53+     DB_PASSWORD: "ita-db-user-password"   # Exastro IT Automation のアプリが使うDBユーザのパスワード
    
  2. Keycloak 用データベースの設定

    アプリケーションが利用・作成する DB ユーザを設定します。
    表 2.132 共通設定 (Keycloak) のオプションパラメータ

    パラメータ

    説明

    変更

    デフォルト値・選択可能な設定値

    global.keycloakDefinition.name

    Keycloak の定義名

    不可

    "keycloak"

    global.keycloakDefinition.enabled

    Keycloak の定義の利用有無

    不可

    true

    global.keycloakDefinition.config.API_KEYCLOAK_PROTOCOL

    Keycloak API エンドポイントのプロトコル

    可 (外部Keycloak利用時)

    "http”

    global.keycloakDefinition.config.API_KEYCLOAK_HOST

    Keycloak API エンドポイントのホスト名、もしくは、FQDN

    可 (外部Keycloak利用時)

    "keycloak"

    global.keycloakDefinition.config.API_KEYCLOAK_PORT

    Keycloak API エンドポイントのポート番号

    可 (外部Keycloak利用時)

    "8080"

    global.keycloakDefinition.config.KEYCLOAK_PROTOCOL

    Keycloak エンドポイントのプロトコル

    可 (外部Keycloak利用時)

    "http"

    global.keycloakDefinition.config.KEYCLOAK_HOST

    Keycloak エンドポイントのホスト名、もしくは、FQDN

    可 (外部Keycloak利用時)

    "keycloak"

    global.keycloakDefinition.config.KEYCLOAK_PORT

    Keycloak API エンドポイントのポート番号

    可 (外部Keycloak利用時)

    "8080"

    global.keycloakDefinition.config.KEYCLOAK_MASTER_REALM

    Keycloak のマスターレルム名

    "master"

    global.keycloakDefinition.config.KEYCLOAK_DB_DATABASE

    Keycloak が利用するデータベース名

    "keycloak"

    global.keycloakDefinition.secret.KEYCLOAK_USER

    Keycloak のマスターレルムにおける管理権限を持ったユーザ名を指定。
    指定した Keycloak ユーザが作成される。

    必須

    任意の文字列

    global.keycloakDefinition.secret.KEYCLOAK_PASSWORD

    Keycloak のマスターレルムにおける管理権限を持ったユーザに設定するパスワード(エンコードなし)

    必須

    任意の文字列

    global.keycloakDefinition.secret.KEYCLOAK_DB_USER

    Keycloak が使用するデータベースユーザ。
    指定した DB ユーザが作成される。

    必須

    任意の文字列

    global.keycloakDefinition.secret.KEYCLOAK_DB_PASSWORD

    Keycloak が使用するデータベースユーザのパスワード(エンコードなし)

    必須

    任意の文字列

    リスト 2.133 exastro.yaml
     82  keycloakDefinition:
     83    name: keycloak
     84    enabled: true
     85    config:
     86      API_KEYCLOAK_PROTOCOL: "http"
     87      API_KEYCLOAK_HOST: "keycloak"
     88      API_KEYCLOAK_PORT: "8080"
     89      KEYCLOAK_PROTOCOL: "http"
     90      KEYCLOAK_HOST: "keycloak"
     91      KEYCLOAK_PORT: "8080"
     92      KEYCLOAK_MASTER_REALM: "master"
     93      KEYCLOAK_DB_DATABASE: "keycloak"
     94    secret:
     95      KEYCLOAK_USER: ""
     96      KEYCLOAK_PASSWORD: ""
     97-     KEYCLOAK_DB_USER: ""
     98-     KEYCLOAK_DB_PASSWORD: ""
     99+     KEYCLOAK_DB_USER: "keycloak-db-user"               # Keycloak が使うDBユーザ
    100+     KEYCLOAK_DB_PASSWORD: "keycloak-db-user-password"  # Keycloak が使うDBユーザのパスワード
    
  3. Exastro 共通基盤用データベースの設定

    アプリケーションが利用・作成する DB ユーザを設定します。
    表 2.133 共通設定 (Exastro 共通基盤用データベース) のオプションパラメータ

    パラメータ

    説明

    変更

    デフォルト値・選択可能な設定値

    global.pfDatabaseDefinition.name

    認証機能用データベースの定義名

    不可

    "pf-database"

    global.pfDatabaseDefinition.enabled

    認証機能用データベースの定義の有効有無

    不可

    true

    global.pfDatabaseDefinition.config.DB_VENDOR

    認証機能用データベースで使用するデータベース

    可 (外部データベース利用時)

    "mariadb" (デフォルト): MariaDB を利用
    "mysql": MySQL を利用

    global.pfDatabaseDefinition.config.DB_HOST

    認証機能用データベース利用するDB
    デフォルト状態では、同一の Kubernetes クラスタ内にデプロイされるコンテナを指定しています。
    クラスタ外部の DB を利用する場合には設定が必要となります。

    可 (外部データベース利用時)

    "mariadb"

    global.pfDatabaseDefinition.config.DB_PORT

    認証機能用データベースで利用するポート番号(TCP)

    可 (外部データベース利用時)

    "3306"

    global.pfDatabaseDefinition.config.DB_DATABASE

    認証機能用データベースで利用するデータベース名

    可 (外部データベース利用時)

    "platform"

    global.pfDatabaseDefinition.secret.DB_ADMIN_USER

    認証機能用データベースで利用する管理権限を持つDBユーザ名

    必須

    管理権限を持つDBユーザ名

    global.pfDatabaseDefinition.secret.DB_ADMIN_PASSWORD

    認証機能用データベースで利用する管理権限を持つDBユーザのパスワード(エンコードなし)

    必須

    管理権限を持つDBユーザ名のパスワード

    global.pfDatabaseDefinition.secret.DB_USER

    認証機能用データベースに作成するDBユーザ名。
    指定した DB ユーザが作成される。

    必須

    任意の文字列

    global.pfDatabaseDefinition.secret.DB_PASSWORD

    認証機能用データベースに作成するDBユーザのパスワード(エンコードなし)

    必須

    任意の文字列

    リスト 2.134 exastro.yaml
    112  pfDatabaseDefinition:
    113    name: auth-database
    114    enabled: true
    115    config:
    116      DB_VENDOR: "mariadb"
    117      DB_HOST: "mariadb"
    118      DB_PORT: "3306"
    119      DB_DATABASE: "platform"
    120    secret:
    121      DB_ADMIN_USER: ""
    122      DB_ADMIN_PASSWORD: ""
    123-     DB_USER: ""
    124-     DB_PASSWORD: ""
    125+     DB_USER: "pf-db-user"           # Exastro 共通基盤が使うDBユーザ
    126+     DB_PASSWORD: "pf-db-password"   # Exastro 共通基盤が使うDBユーザのパスワード
    

2.4.6. GitLab 連携設定

GitLab 連携のための接続情報を登録します。
表 2.134 共通設定 (GitLab) のオプションパラメータ

パラメータ

説明

変更

デフォルト値・選択可能な設定値

global.gitlabDefinition.name

GitLab の定義名

不可

gitlab

global.gitlabDefinition.enabled

GitLab の定義の利用有無

不可

true

global.gitlabDefinition.config.GITLAB_PROTOCOL

GitLab エンドポイントのプロトコル

http

global.gitlabDefinition.config.GITLAB_HOST

GitLab エンドポイントへのホスト名、もしくは、FQDN

gitlab

global.gitlabDefinition.config.GITLAB_PORT

GitLab エンドポイントのポート番号

80

global.gitlabDefinition.secret.GITLAB_ROOT_TOKEN

GitLab の root 権限アカウントのアクセストークン

必須

アクセエストークン(平文)

警告

GITLAB_ROOT_TOKEN は下記の権限スコープが割り当てられたトークンが必要です。
・api
・write_repository
・sudo
下記は、GitLab 連携の設定例を記載しています。
リスト 2.135 exastro.yaml
30    gitlabDefinition:
31      name: gitlab
32      enabled: true
33      config:
34  -     GITLAB_PROTOCOL: "http"
35  -     GITLAB_HOST: "gitlab"
36  -     GITLAB_PORT: "80"
37  +     GITLAB_PROTOCOL: "接続プロトコル http or https"
38  +     GITLAB_HOST: "接続先"
39  +     GITLAB_PORT: "接続ポート"
40      secret:
41  -     GITLAB_ROOT_TOKEN: ""
42  +     GITLAB_ROOT_TOKEN: "GitLabのRoot権限を持ったトークン"

2.4.7. Exastro システム管理者の作成

Keycloak セットアップ時に Exastro システム管理者の初期ユーザを作成するための情報を設定します。
表 2.135 共通設定 (Keycloak) のオプションパラメータ

パラメータ

説明

変更

デフォルト値・選択可能な設定値

global.keycloakDefinition.name

Keycloak の定義名

不可

"keycloak"

global.keycloakDefinition.enabled

Keycloak の定義の利用有無

不可

true

global.keycloakDefinition.config.API_KEYCLOAK_PROTOCOL

Keycloak API エンドポイントのプロトコル

可 (外部Keycloak利用時)

"http”

global.keycloakDefinition.config.API_KEYCLOAK_HOST

Keycloak API エンドポイントのホスト名、もしくは、FQDN

可 (外部Keycloak利用時)

"keycloak"

global.keycloakDefinition.config.API_KEYCLOAK_PORT

Keycloak API エンドポイントのポート番号

可 (外部Keycloak利用時)

"8080"

global.keycloakDefinition.config.KEYCLOAK_PROTOCOL

Keycloak エンドポイントのプロトコル

可 (外部Keycloak利用時)

"http"

global.keycloakDefinition.config.KEYCLOAK_HOST

Keycloak エンドポイントのホスト名、もしくは、FQDN

可 (外部Keycloak利用時)

"keycloak"

global.keycloakDefinition.config.KEYCLOAK_PORT

Keycloak API エンドポイントのポート番号

可 (外部Keycloak利用時)

"8080"

global.keycloakDefinition.config.KEYCLOAK_MASTER_REALM

Keycloak のマスターレルム名

"master"

global.keycloakDefinition.config.KEYCLOAK_DB_DATABASE

Keycloak が利用するデータベース名

"keycloak"

global.keycloakDefinition.secret.KEYCLOAK_USER

Keycloak のマスターレルムにおける管理権限を持ったユーザ名を指定。
指定した Keycloak ユーザが作成される。

必須

任意の文字列

global.keycloakDefinition.secret.KEYCLOAK_PASSWORD

Keycloak のマスターレルムにおける管理権限を持ったユーザに設定するパスワード(エンコードなし)

必須

任意の文字列

global.keycloakDefinition.secret.KEYCLOAK_DB_USER

Keycloak が使用するデータベースユーザ。
指定した DB ユーザが作成される。

必須

任意の文字列

global.keycloakDefinition.secret.KEYCLOAK_DB_PASSWORD

Keycloak が使用するデータベースユーザのパスワード(エンコードなし)

必須

任意の文字列

リスト 2.136 exastro.yaml
 82  keycloakDefinition:
 83    name: keycloak
 84    enabled: true
 85    config:
 86      API_KEYCLOAK_PROTOCOL: "http"
 87      API_KEYCLOAK_HOST: "keycloak"
 88      API_KEYCLOAK_PORT: "8080"
 89      KEYCLOAK_PROTOCOL: "http"
 90      KEYCLOAK_HOST: "keycloak"
 91      KEYCLOAK_PORT: "8080"
 92      KEYCLOAK_MASTER_REALM: "master"
 93      KEYCLOAK_DB_DATABASE: "keycloak"
 94    secret:
 95-     KEYCLOAK_USER: ""
 96-     KEYCLOAK_PASSWORD: ""
 97+     KEYCLOAK_USER: "admin"               # Exastro システムの管理者
 98+     KEYCLOAK_PASSWORD: "admin-password"  # Exastro システムの管理者のパスワード
 99      KEYCLOAK_DB_USER: ""
100      KEYCLOAK_DB_PASSWORD: ""

2.4.8. 永続ボリュームの設定

データベースのデータ永続化 (クラスタ内コンテナがある場合)、および、ファイルの永続化のために、永続ボリュームを設定する必要があります。
永続ボリュームの詳細については、 永続ボリューム - Kubernetes を参照してください。
ストレージ利用時の2つの方法について説明します。
  • マネージドディスク

  • Kubernetes ノードのディレクトリ

  • 特徴

パブリッククラウドで提供されるストレージサービスを利用することでストレージの構築や維持管理が不要となります。
  • 設定例

Azure のストレージを利用する場合、下記のように StorageClass を定義することで利用が可能です。
リスト 2.137 storage-class-exastro-suite.yaml
 1apiVersion: storage.k8s.io/v1
 2kind: StorageClass
 3metadata:
 4  name: exastro-suite-azurefile-csi-nfs
 5provisioner: file.csi.azure.com
 6allowVolumeExpansion: true
 7parameters:
 8  protocol: nfs
 9mountOptions:
10  - nconnect=8
リスト 2.138 exastro.yaml
 5  itaGlobalDefinition:
 6    persistence:
 7      enabled: true
 8      accessMode: ReadWriteMany
 9      size: 10Gi
10      volumeType: hostPath # e.g.) hostPath or AKS
11-      storageClass: "-" # e.g.) azurefile or - (None)
12+      storageClass: "azurefile" # e.g.) azurefile or - (None)
※ 下記は、データベース連携 で設定済みです。
リスト 2.139 exastro.yaml
39  databaseDefinition:
40    persistence:
41      enabled: true
42      reinstall: false
43      accessMode: ReadWriteOnce
44      size: 20Gi
45      volumeType: hostPath # e.g.) hostPath or AKS
46-      storageClass: "-" # e.g.) azurefile or - (None)
47+      storageClass: "exastro-suite-azurefile-csi-nfs" # e.g.) azurefile or - (None)

2.5. インストール

2.5.1. 永続ボリュームの作成

永続ボリュームの設定 で作成したマニフェストファイルを適用し、ボリュームを作成します。
# pv-database.yaml
kubectl apply -f pv-database.yaml

# pv-ita-common.yaml
kubectl apply -f pv-ita-common.yaml
# 確認
kubectl get pv
NAME            CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
pv-database     20Gi       RWO            Retain           Available                                   19s
pv-ita-common   10Gi       RWX            Retain           Available                                   9s

2.5.2. インストール

Helm バージョンとアプリケーションのバージョンについては下記を確認してください。
表 2.136 Helm チャートとアプリケーションのバージョン

Chart Version

Exastro Version

Exastro IT Automation

Exastro Platform

リリースシナリオ

1.0.2

2.1.0

2.0.3

1.4.0

Exastro IT Automation Version 2.0 GA リリース

...

...

...

...

...

1.1.x

2.2.x

2.1.x

1.x.0

Exastro IT Automation Version 2.1 GA リリース(予定)

インストール時にサービスの公開方法によって、アクセス方法が異なります。
Ingress, LoadBalancer, NodePort それぞれの方法について説明します。
  1. Helm コマンドを使い Kubernetes 環境にインストールを行います。

    リスト 2.142 コマンド
    helm install exastro exastro/exastro \
      --namespace exastro --create-namespace \
      --values exastro.yaml
    
    リスト 2.143 出力結果
    NAME: exastro
    LAST DEPLOYED: Sat Jan 28 15:00:02 2023
    NAMESPACE: exastro
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Exastro install completion!
    
    1. Execute the following command and wait until the pod becomes "Running" or "Completed":
    
      # NOTE: You can also append "-w" to the command or wait until the state changes with "watch command"
    
      kubectl get pods --namespace exastro
    
    2. Get the ENCRYPT_KEY by running these commands:
    
      # Exastro IT Automation ENCRYPT_KEY
      kubectl get secret ita-secret-ita-global -n exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
    
      # Exastro Platform ENCRYPT_KEY
      kubectl get secret platform-secret-pf-global -n exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
    
      !!! Please save the output ENCRYPT_KEY carefully. !!!
    
    3. Run the following command to get the application URL and go to the URL or go to the displayed URL:
      *************************
      * Service Console       *
      *************************
      http://exastro-suite.example.local/
    
      *************************
      * Administrator Console *
      *************************
      http://exastro-suite-mng.example.local/auth/
    
    
    # Note: You can display this note again by executing the following command.
    
    以下、上記の出力結果に従って操作をします。
  2. インストール状況確認
コマンドラインから以下のコマンドを入力して、インストールが完了していることを確認します。
リスト 2.144 コマンド
# Pod の一覧を取得
kubectl get po -n exastro

| 正常に起動している場合は、ita-migration-xxxとplatform-migration-xxxが “Completed” 、その他すべてが “Running” となります。
| ※正常に起動するまで数分かかる場合があります。
リスト 2.145 出力結果
NAME                                                      READY   STATUS      RESTARTS   AGE
ita-api-admin-64657656c6-r4s2l                            1/1     Running     0          30m
ita-api-organization-75ff9d599c-gthvl                     1/1     Running     0          30m
ita-by-ansible-execute-fdd8dfc57-7676h                    1/1     Running     0          30m
ita-by-ansible-legacy-role-vars-listup-6cd558d78b-xxl6x   1/1     Running     0          30m
ita-by-ansible-legacy-vars-listup-5db44d54d8-zxqj7        1/1     Running     0          30m
ita-by-ansible-pioneer-vars-listup-6bf744f5b6-k8ctx       1/1     Running     0          30m
ita-by-ansible-towermaster-sync-59594b5d84-phbg7          1/1     Running     0          30m
ita-by-cicd-for-iac-f6855c588-r6w4k                       1/1     Running     0          30m
ita-by-collector-6fc8c7b4d4-hjwck                         1/1     Running     0          30m
ita-by-conductor-regularly-5897dcb9f6-4npz7               1/1     Running     0          30m
ita-by-conductor-synchronize-6fd6dcd5f4-qgdhx             1/1     Running     0          30m
ita-by-excel-export-import-df76d77c4-ms4j2                1/1     Running     0          30m
ita-by-hostgroup-split-86746f758-b796k                    1/1     Running     0          30m
ita-by-menu-create-8588c9747d-66xwn                       1/1     Running     0          30m
ita-by-menu-export-import-6b8498f476-zwml7                1/1     Running     0          30m
ita-by-terraform-cli-execute-8478554d8d-qztbv             1/1     Running     0          30m
ita-by-terraform-cli-vars-listup-bf688659d-zgh8d          1/1     Running     0          30m
ita-by-terraform-cloud-ep-execute-5dbbb599b-qh8rc         1/1     Running     0          30m
ita-by-terraform-cloud-ep-vars-listup-5564fcb5b-nphm7     1/1     Running     0          30m
ita-migration-1.0.4-0wdt                                  0/1     Completed   0          30m
ita-web-server-854bcdbbf4-s7fdb                           1/1     Running     0          30m
keycloak-56d8b4556c-tndnv                                 1/1     Running     0          30m
platform-api-bddb446db-s9zjh                              1/1     Running     0          30m
platform-auth-799f57fb6c-wlbtf                            1/1     Running     0          30m
platform-migration-1.4.2-6sks                             0/1     Completed   0          30m
platform-web-88db7c489-wkmn9                              1/1     Running     0          30m
  1. 暗号化キーのバックアップ

    Exastro システムのパスワードや認証情報といった機密情報はすべて暗号化されています。
    必ず、下記で取得した暗号化キーをバックアップして、適切に保管してください。

    危険

    暗号化キーを紛失した場合、バックアップデータからシステムを復旧した際にデータの復号ができなくなります。
    リスト 2.146 コマンド
    # Exastro IT Automation ENCRYPT_KEY
    kubectl get secret ita-secret-ita-global -n exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
    
    リスト 2.147 出力結果
    JnIoXzJtPic2MXFqRl1yI1chMj8hWzQrNypmVn41Pk8=
    
    リスト 2.148 コマンド
    # Exastro Platform ENCRYPT_KEY
    kubectl get secret platform-secret-pf-global -n exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
    
    リスト 2.149 出力結果
    bHFZe2VEVVM2PmFeQDMqNG4oZT4lTlglLjJJekxBTHE=
    
  2. 接続確認

    出力結果に従って、Administrator Console の URL にアクセスします。
    下記は、実行例のため サービス公開の設定 で設定したホスト名に読み替えてください。
    リスト 2.150 出力結果(例)
    *************************
    * Service Console       *
    *************************
    http://exastro-suite.example.local/
    
    *************************
    * Administrator Console *
    *************************
    http://exastro-suite-mng.example.local/auth/
    
    表 2.137 接続確認用URL

    管理コンソール

    http://exastro-suite-mng.example.local/auth/

2.5.3. 管理コンソールへのログイン

以下の画面が表示された場合、Administration Console を選択して、ログイン画面を開きます。
administrator-console
ログイン ID とパスワードは Exastro システム管理者の作成 で登録した、KEYCLOAK_USER 及び KEYCLOAK_PASSWORD です。
login
Keycloak の管理画面が開きます。
login
ログインが確認できたら、Organization (オーガナイゼーション) の作成を行います。