Exastro on Kubernetes - Offline¶
目的¶
特徴¶
前提条件¶
警告
クライアント要件
動作確認が取れているクライアントアプリケーションのバージョンは下記のとおりです。¶ アプリケーション
バージョン
Helm
v3.9.x
kubectl
1.23
動作確認済みオペレーティングシステム
以下は、動作確認済のバージョンとなります。
¶ 種別
バージョン
Red Hat Enterprise Linux
バージョン 8.9
デプロイ環境
動作確認が取れているコンテナ環境の最小要求リソースとバージョンは下記のとおりです。¶ リソース種別
要求リソース
CPU
2 Cores (3.0 GHz, x86_64)
Memory
4GB
Storage (Container image size)
10GB
Kubernetes (Container image size)
1.23 以上
¶ リソース種別
要求リソース
CPU
4 Cores (3.0 GHz, x86_64)
Memory
16GB
Storage (Container image size)
120GB
Kubernetes (Container image size)
1.23 以上
警告
要求リソースは Exastro IT Automation のコア機能に対する値です。同一クラスタ上に Keycloak や MariaDB などの外部ツールをデプロイする場合は、その分のリソースが別途必要となります。データベースおよびファイルの永続化のために、別途ストレージ領域を用意する必要があります。Storage サイズには、Exastro IT Automation が使用する入出力データのファイルは含まれていないため、利用状況に応じて容量を見積もる必要があります。通信要件
- クライアントからデプロイ先のコンテナ環境にアクセスできる必要があります。
- Platform 管理者用と一般ユーザー用の2つ通信ポートが使用となります。
- コンテナ環境からコンテナイメージの取得のために、Docker Hub に接続できる必要があります。
外部コンポーネント
- MariaDB、もしくは、MySQL サーバ
- GitLab リポジトリ、および、アカウントの払い出しが可能なこと
警告
GitLab 環境を同一クラスタに構築する場合は、GitLab のシステム要件に対応する最小要件を追加で容易する必要があります。Database 環境を同一クラスタに構築する場合は、使用する Database のシステム要件に対応する最小要件を定義する必要があります
全体の流れ¶
オンライン環境での手順¶
オフライン環境での手順¶
オンライン環境(インターネットに接続できる環境)での作業¶
①事前準備¶
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf remove -y runc
dnf install -y docker-ce docker-ce-cli containerd.io container-selinux
systemctl enable --now docker
cat /etc/group | grep docker
usermod -aG docker ${USER}
cat /etc/group | grep docker
reboot
cd /etc/systemd/system/docker.service.d
#docker.service.dディレクトリが存在しない場合は新しく作成する
cd /etc/systemd/system/
mkdir docker.service.d && cd docker.service.d
vi http-proxy.conf
[Service]
Environment="DOCKER_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE=1"
注釈
systemctl daemon-reload
systemctl restart docker
systemctl show --property=Environment docker
dnf install -y git python39
pip3.9 install ruamel-yaml
pip3.9 install ansible
②helmリポジトリ及び設定ファイルの編集¶
cd /tmp
mkdir work && cd work
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm version
helm repo add exastro https://exastro-suite.github.io/exastro-helm/ --namespace exastro
helm repo update
helm pull exastro/exastro
rm -f get_helm.sh
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 config:
7 DEFAULT_LANGUAGE: "ja"
8 LANGUAGE: "en"
9 TZ: "Asia/Tokyo"
10 secret:
11 ENCRYPT_KEY: ""
12 persistence:
13 enabled: true
14 accessMode: ReadWriteMany
15 size: 10Gi
16 volumeType: hostPath # e.g.) hostPath or AKS
17 storageClass: "-" # e.g.) azurefile or - (None)
18 # matchLabels:
19 # release: "stable"
20 # matchExpressions:
21 # - {key: environment, operator: In, values: [dev]}
22 itaDatabaseDefinition:
23 config:
24 DB_VENDOR: "mariadb"
25 DB_HOST: "mariadb"
26 DB_PORT: "3306"
27 DB_DATABASE: "ITA_DB"
28 secret:
29 DB_ADMIN_USER: "root"
30 DB_ADMIN_PASSWORD: "Ch@ngeMeDBAdm"
31 DB_USER: "ITA_USER"
32 DB_PASSWORD: "Ch@ngeMeITADB"
33 pfGlobalDefinition:
34 config:
35 DEFAULT_LANGUAGE: "ja"
36 LANGUAGE: "en"
37 TZ: "Asia/Tokyo"
38 secret:
39 ENCRYPT_KEY: ""
40 pfAuditLogDefinition:
41 name: pf-auditlog
42 persistence:
43 enabled: false
44 reinstall: false
45 accessMode: ReadWriteMany
46 size: 10Gi
47 volumeType: hostPath # e.g.) hostPath or AKS
48 storageClass: "-" # e.g.) azurefile or - (None)
49 # matchLabels:
50 # release: "stable"
51 # matchExpressions:
52 # - {key: environment, operator: In, values: [dev]}
53 pfDatabaseDefinition:
54 config:
55 DB_VENDOR: "mariadb"
56 DB_HOST: "mariadb"
57 DB_PORT: "3306"
58 DB_DATABASE: "platform"
59 secret:
60 DB_ADMIN_USER: "root"
61 DB_ADMIN_PASSWORD: "Ch@ngeMeDBAdm"
62 DB_USER: "pf-user"
63 DB_PASSWORD: "Ch@ngeMePFDB"
64 keycloakDefinition:
65 secret:
66 SYSTEM_ADMIN: "admin"
67 SYSTEM_ADMIN_PASSWORD: "Ch@ngeMeKCAdm"
68 KEYCLOAK_DB_USER: "keycloak"
69 KEYCLOAK_DB_PASSWORD: "Ch@ngeMeKCADB"
70 gitlabDefinition:
71 config:
72 GITLAB_PROTOCOL: "http"
73 GITLAB_HOST: "" # "gitlab" if use container.
74 GITLAB_PORT: "8080"
75 secret:
76 GITLAB_ROOT_PASSWORD: "Ch@ngeMeGL"
77 GITLAB_ROOT_TOKEN: "change-this-token"
78 mongoDefinition:
79 config:
80 MONGO_PROTOCOL: "http"
81 MONGO_HOST: "mongo" # "mongo" if use container.
82 MONGO_PORT: "27017"
83 secret:
84 MONGO_ADMIN_USER: "admin"
85 MONGO_ADMIN_PASSWORD: "Ch@ngeMeMGAdm"
86
87exastro-it-automation:
88 ita-api-admin:
89 replicaCount: 1
90 image:
91 repository: "docker.io/exastro/exastro-it-automation-api-admin"
92 tag: ""
93 pullPolicy: IfNotPresent
94 extraEnv:
95 PLATFORM_API_HOST: "platform-api"
96 PLATFORM_API_PORT: "8000"
97
98 ita-api-organization:
99 replicaCount: 1
100 image:
101 repository: "docker.io/exastro/exastro-it-automation-api-organization"
102 tag: ""
103 pullPolicy: IfNotPresent
104 extraEnv:
105 PLATFORM_API_HOST: "platform-api"
106 PLATFORM_API_PORT: "8000"
107
108 ita-api-oase-receiver:
109 replicaCount: 1
110 image:
111 repository: "docker.io/exastro/exastro-it-automation-api-oase-receiver"
112 tag: ""
113 pullPolicy: IfNotPresent
114 extraEnv:
115 LISTEN_PORT: "8000"
116 PLATFORM_API_HOST: "platform-api"
117 PLATFORM_API_PORT: "8000"
118
119 ita-by-ansible-execute:
120 replicaCount: 1
121 image:
122 repository: "docker.io/exastro/exastro-it-automation-by-ansible-execute"
123 tag: ""
124 pullPolicy: IfNotPresent
125 extraEnv:
126 EXECUTE_INTERVAL: "3"
127 ANSIBLE_AGENT_IMAGE: "docker.io/exastro/exastro-it-automation-by-ansible-agent"
128 ANSIBLE_AGENT_IMAGE_TAG: ""
129 PLATFORM_API_HOST: "platform-api"
130 PLATFORM_API_PORT: "8000"
131 serviceAccount:
132 create: false
133 name: "ita-by-ansible-execute-sa"
134
135 ita-by-ansible-legacy-role-vars-listup:
136 replicaCount: 1
137 extraEnv:
138 EXECUTE_INTERVAL: "10"
139 PLATFORM_API_HOST: "platform-api"
140 PLATFORM_API_PORT: "8000"
141 image:
142 repository: "docker.io/exastro/exastro-it-automation-by-ansible-legacy-role-vars-listup"
143 tag: ""
144 pullPolicy: IfNotPresent
145
146 ita-by-ansible-legacy-vars-listup:
147 replicaCount: 1
148 extraEnv:
149 EXECUTE_INTERVAL: "10"
150 PLATFORM_API_HOST: "platform-api"
151 PLATFORM_API_PORT: "8000"
152 image:
153 repository: "docker.io/exastro/exastro-it-automation-by-ansible-legacy-vars-listup"
154 tag: ""
155 pullPolicy: IfNotPresent
156
157 ita-by-ansible-pioneer-vars-listup:
158 replicaCount: 1
159 extraEnv:
160 EXECUTE_INTERVAL: "10"
161 PLATFORM_API_HOST: "platform-api"
162 PLATFORM_API_PORT: "8000"
163 image:
164 repository: "docker.io/exastro/exastro-it-automation-by-ansible-pioneer-vars-listup"
165 tag: ""
166 pullPolicy: IfNotPresent
167
168 ita-by-ansible-towermaster-sync:
169 replicaCount: 1
170 extraEnv:
171 EXECUTE_INTERVAL: "10"
172 PLATFORM_API_HOST: "platform-api"
173 PLATFORM_API_PORT: "8000"
174 image:
175 repository: "docker.io/exastro/exastro-it-automation-by-ansible-towermaster-sync"
176 tag: ""
177 pullPolicy: IfNotPresent
178
179 ita-by-cicd-for-iac:
180 replicaCount: 1
181 extraEnv:
182 EXECUTE_INTERVAL: "10"
183 PLATFORM_API_HOST: "platform-api"
184 PLATFORM_API_PORT: "8000"
185 image:
186 repository: "docker.io/exastro/exastro-it-automation-by-cicd-for-iac"
187 tag: ""
188 pullPolicy: IfNotPresent
189
190 ita-by-collector:
191 replicaCount: 1
192 extraEnv:
193 EXECUTE_INTERVAL: "10"
194 PLATFORM_API_HOST: "platform-api"
195 PLATFORM_API_PORT: "8000"
196 image:
197 repository: "docker.io/exastro/exastro-it-automation-by-collector"
198 tag: ""
199 pullPolicy: IfNotPresent
200
201 ita-by-conductor-regularly:
202 replicaCount: 1
203 extraEnv:
204 EXECUTE_INTERVAL: "10"
205 PLATFORM_API_HOST: "platform-api"
206 PLATFORM_API_PORT: "8000"
207 image:
208 repository: "docker.io/exastro/exastro-it-automation-by-conductor-regularly"
209 tag: ""
210 pullPolicy: IfNotPresent
211
212 ita-by-conductor-synchronize:
213 replicaCount: 1
214 extraEnv:
215 EXECUTE_INTERVAL: "3"
216 PLATFORM_API_HOST: "platform-api"
217 PLATFORM_API_PORT: "8000"
218 image:
219 repository: "docker.io/exastro/exastro-it-automation-by-conductor-synchronize"
220 tag: ""
221 pullPolicy: IfNotPresent
222
223 ita-by-excel-export-import:
224 replicaCount: 1
225 extraEnv:
226 EXECUTE_INTERVAL: "10"
227 PLATFORM_API_HOST: "platform-api"
228 PLATFORM_API_PORT: "8000"
229 image:
230 repository: "docker.io/exastro/exastro-it-automation-by-excel-export-import"
231 tag: ""
232 pullPolicy: IfNotPresent
233
234 ita-by-execinstance-dataautoclean:
235 replicaCount: 1
236 extraEnv:
237 EXECUTE_INTERVAL: "10"
238 PLATFORM_API_HOST: "platform-api"
239 PLATFORM_API_PORT: "8000"
240 image:
241 repository: "docker.io/exastro/exastro-it-automation-by-execinstance-dataautoclean"
242 tag: ""
243 pullPolicy: IfNotPresent
244
245 ita-by-file-autoclean:
246 replicaCount: 1
247 extraEnv:
248 EXECUTE_INTERVAL: "10"
249 PLATFORM_API_HOST: "platform-api"
250 PLATFORM_API_PORT: "8000"
251 image:
252 repository: "docker.io/exastro/exastro-it-automation-by-file-autoclean"
253 tag: ""
254 pullPolicy: IfNotPresent
255
256 ita-by-hostgroup-split:
257 replicaCount: 1
258 extraEnv:
259 EXECUTE_INTERVAL: "10"
260 PLATFORM_API_HOST: "platform-api"
261 PLATFORM_API_PORT: "8000"
262 image:
263 repository: "docker.io/exastro/exastro-it-automation-by-hostgroup-split"
264 tag: ""
265 pullPolicy: IfNotPresent
266
267 ita-by-menu-create:
268 replicaCount: 1
269 extraEnv:
270 EXECUTE_INTERVAL: "10"
271 PLATFORM_API_HOST: "platform-api"
272 PLATFORM_API_PORT: "8000"
273 image:
274 repository: "docker.io/exastro/exastro-it-automation-by-menu-create"
275 tag: ""
276 pullPolicy: IfNotPresent
277
278 ita-by-menu-export-import:
279 replicaCount: 1
280 extraEnv:
281 EXECUTE_INTERVAL: "10"
282 PLATFORM_API_HOST: "platform-api"
283 PLATFORM_API_PORT: "8000"
284 image:
285 repository: "docker.io/exastro/exastro-it-automation-by-menu-export-import"
286 tag: ""
287 pullPolicy: IfNotPresent
288
289 ita-by-oase-conclusion:
290 replicaCount: 1
291 extraEnv:
292 EXECUTE_INTERVAL: "10"
293 PLATFORM_API_HOST: "platform-api"
294 PLATFORM_API_PORT: "8000"
295 image:
296 repository: "docker.io/exastro/exastro-it-automation-by-oase-conclusion"
297 tag: ""
298 pullPolicy: IfNotPresent
299
300 ita-by-terraform-cli-execute:
301 replicaCount: 1
302 extraEnv:
303 EXECUTE_INTERVAL: "3"
304 PLATFORM_API_HOST: "platform-api"
305 PLATFORM_API_PORT: "8000"
306 image:
307 repository: "docker.io/exastro/exastro-it-automation-by-terraform-cli-execute"
308 tag: ""
309 pullPolicy: IfNotPresent
310
311 ita-by-terraform-cli-vars-listup:
312 replicaCount: 1
313 extraEnv:
314 EXECUTE_INTERVAL: "10"
315 PLATFORM_API_HOST: "platform-api"
316 PLATFORM_API_PORT: "8000"
317 image:
318 repository: "docker.io/exastro/exastro-it-automation-by-terraform-cli-vars-listup"
319 tag: ""
320 pullPolicy: IfNotPresent
321
322 ita-by-terraform-cloud-ep-execute:
323 replicaCount: 1
324 extraEnv:
325 EXECUTE_INTERVAL: "3"
326 PLATFORM_API_HOST: "platform-api"
327 PLATFORM_API_PORT: "8000"
328 image:
329 repository: "docker.io/exastro/exastro-it-automation-by-terraform-cloud-ep-execute"
330 tag: ""
331 pullPolicy: IfNotPresent
332
333 ita-by-terraform-cloud-ep-vars-listup:
334 replicaCount: 1
335 extraEnv:
336 EXECUTE_INTERVAL: "10"
337 PLATFORM_API_HOST: "platform-api"
338 PLATFORM_API_PORT: "8000"
339 image:
340 repository: "docker.io/exastro/exastro-it-automation-by-terraform-cloud-ep-vars-listup"
341 tag: ""
342 pullPolicy: IfNotPresent
343
344 ita-web-server:
345 replicaCount: 1
346 image:
347 repository: "docker.io/exastro/exastro-it-automation-web-server"
348 tag: ""
349 pullPolicy: IfNotPresent
350
351 ita-migration:
352 extraEnv:
353 PLATFORM_API_HOST: "platform-api"
354 PLATFORM_API_PORT: "8000"
355 image:
356 repository: "docker.io/exastro/exastro-it-automation-migration"
357 tag: ""
358 pullPolicy: IfNotPresent
359
360exastro-platform:
361 platform-api:
362 image:
363 repository: "docker.io/exastro/exastro-platform-api"
364 tag: ""
365
366 platform-auth:
367 extraEnv:
368 # Please set the URL to access
369 EXTERNAL_URL: ""
370 EXTERNAL_URL_MNG: ""
371 ingress:
372 enabled: true
373 hosts:
374 - host: exastro-suite.example.local
375 paths:
376 - path: /
377 pathType: Prefix
378 backend: "http"
379 - host: exastro-suite-mng.example.local
380 paths:
381 - path: /
382 pathType: Prefix
383 backend: "httpMng"
384 service:
385 type: ClusterIP
386 # http:
387 # nodePort: 30080
388 # httpMng:
389 # nodePort: 30081
390 image:
391 repository: "docker.io/exastro/exastro-platform-auth"
392 tag: ""
393
394 platform-job:
395 extraEnv:
396 # LOG_LEVEL: "INFO"
397 # SUB_PROCESS_TERMINATE_REQUEST_SECONDS: "1800"
398 # SUB_PROCESS_ACCEPTABLE: "2"
399 # SUB_PROCESS_MAX_JOBS: "10"
400 # SUB_PROCESS_WATCH_INTERVAL_SECONDS: "1.0"
401 # SUB_PROCESS_DB_RECONNECT_INTERVAL_SECONDS: "60"
402 # SUB_PROCESS_DB_HEALTH_CHECK_INTERVAL_SECONDS: "5"
403 # SUB_PROCESS_MAX_CANCEL_TIMEOUT: "10"
404 # JOB_STATUS_WATCH_INTERVAL_SECONDS: "1.0"
405 # JOB_CANCEL_TIMEOUT_SECONDS: "5.0"
406 # JOB_NOTIFICATION_TIMEOUT_SECONDS: "20"
407 # JOB_NOTIFICATION_TEAMS_CONNECTION_TIMEOUT: "3.0"
408 # JOB_NOTIFICATION_TEAMS_READ_TIMEOUT: "10.0"
409 # JOB_NOTIFICATION_SMTP_TIMEOUT: "10.0"
410 # JOB_NOTIFICATION_SMTPS_SSL_VERIFY_ENABLED: "TRUE"
411 # JOB_FORCE_UPDATE_STATUS_TIMEOUT_SECONDS: "60"
412 # JOB_FORCE_UPDATE_STATUS_INTERVAL_SECONDS: "180"
413 # JOB_FORCE_UPDATE_STATUS_PROGRASS_SECONDS: "600"
414 image:
415 repository: "docker.io/exastro/exastro-platform-job"
416 tag: ""
417
418 platform-migration:
419 image:
420 repository: "docker.io/exastro/exastro-platform-migration"
421 tag: ""
422
423 platform-web:
424 image:
425 repository: "docker.io/exastro/exastro-platform-web"
426 tag: ""
427
428 mariadb:
429 enabled: true
430 image:
431 repository: "docker.io/mariadb"
432 tag: "10.11"
433 pullPolicy: IfNotPresent
434 imagePullSecrets: []
435 persistence:
436 enabled: true
437 accessMode: ReadWriteOnce
438 size: 20Gi
439 storageClass: "-" # e.g.) azurefile or - (None)
440 matchLabels:
441 name: pv-database
442 matchExpressions:
443 # - {key: name, operator: In, values: [pv-database]}
444 dbSetup:
445 dbConfInfo:
446 name: mysql-server-conf-config
447 customCnf: |-
448 [mysqld]
449 character-set-server=utf8mb4
450 collation-server=utf8mb4_bin
451 secure_file_priv=/tmp
452 lower_case_table_names=1
453 [client]
454 default-character-set=utf8mb4
455 resources:
456 requests:
457 memory: "256Mi"
458 cpu: "1m"
459 limits:
460 memory: "2Gi"
461 cpu: "4"
462
463 keycloak:
464 enabled: true
465 image:
466 repository: "docker.io/exastro/keycloak"
467 tag: ""
468 pullPolicy: IfNotPresent
469 resources: {}
470 # requests:
471 # memory: "256Mi"
472 # cpu: "1m"
473 # limits:
474 # memory: "2Gi"
475 # cpu: "4"
476
477 gitlab:
478 enabled: false
479 extraEnv:
480 GITLAB_OMNIBUS_CONFIG: |
481 postgresql['shared_buffers'] = "2048MB"
482 postgresql['work_mem'] = "128MB"
483 postgresql['maintenance_work_mem'] = "128MB"
484 postgresql['effective_cache_size'] = "128MB"
485 postgresql['checkpoint_segments'] = 16
486 postgresql['checkpoint_timeout'] = "10min"
487 external_url 'http://gitlab:40080'
488 nginx['listen_port'] = 40080
489 gitlab_rails['initial_root_password'] = "${GITLAB_ROOT_PASSWORD:-}"
490 gitlab_rails['registry_enabled'] = false;
491 gitlab_rails['db_prepared_statements'] = false;
492 gitlab_rails['monitoring_whitelist'] = ['0.0.0.0/0']
493 # gitlab_rails['env'] = {'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'}
494 # puma['worker_processes'] = 0
495 prometheus_monitoring['enable'] = false
496 # sidekiq['max_concurrency'] = 10
497 # gitaly['env'] = {'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000', 'GITALY_COMMAND_SPAWN_MAX_PARALLEL' => '2'}
498 GITLAB_POST_RECONFIGURE_SCRIPT: |
499 while ! curl -sfI -o /dev/null http://localhost:40080/-/readiness;
500 do
501 echo "GitLab service is not ready."
502 sleep 1
503 done
504 echo "GitLab service started normally"
505 curl -Ssf -H "PRIVATE-TOKEN: ${GITLAB_ROOT_TOKEN:-}" "http://localhost:40080/api/v4/version" || (
506 gitlab-rails runner "token = User.find_by_username('root').personal_access_tokens.create(scopes: [:api, :write_repository, :sudo], name: 'exastro system token'); token.set_token('${GITLAB_ROOT_TOKEN:-}'); token.save!"
507 )
508 echo "GitLab post reconfigure script ended."
509 image:
510 repository: "docker.io/gitlab/gitlab-ce"
511 tag: "15.11.13-ce.0"
512 pullPolicy: IfNotPresent
513 # Overrides the image tag whose default is the chart appVersion.
514 persistence:
515 enabled: true
516 volumeName: pv-gitlab
517 accessMode: ReadWriteMany
518 size: 20Gi
519 storageClass: "-" # e.g.) azurefile or - (None)
520 matchLabels:
521 name: pv-gitlab
522 matchExpressions:
523 # - {key: name, operator: In, values: [pv-gitlab]}
524 resources: {}
525 # requests:
526 # memory: "4Gi"
527 # cpu: "4"
528 # limits:
529 # memory: "8Gi"
530 # cpu: "8"
531 service:
532 type: ClusterIP
533 name: gitlab
534 port: 40080
535 # nodePort: 30082
536
537 mongo:
538 enabled: true
539 image:
540 repository: "docker.io/mongo"
541 pullPolicy: IfNotPresent
542 # Overrides the image tag whose default is the chart appVersion.
543 tag: "6.0"
544 persistence:
545 enabled: true
546 accessMode: ReadWriteOnce
547 size: 20Gi
548 storageClass: "-" # e.g.) azurefile, local-path or - (None)
549 matchLabels:
550 # release: "pv-mongo"
551 matchExpressions:
552 # - {key: name, operator: In, values: [pv-mongo]}
553 dbSetup:
554 dbConfInfo:
555 name: mongo-server-conf-config
556 customCnf: |
557 systemLog:
558 verbosity: 0
559 # destination: file
560 # path: /root/logs/mongod.log
561 timeStampFormat: iso8601-utc
562 # storage:
563 # directoryPerDB: true
564 # dbPath: /root/data
565 # engine: wiredTiger
566 # wiredTiger:
567 # engineConfig:
568 # cacheSizeGB: 1
569 # journal:
570 # enabled: true
571 # processManagement:
572 # fork: true
573 # net:
574 # port: 27017
575 # bindIp: 0.0.0.0
576 # security:
577 # authorization: enabled
578 resources: {}
579 # requests:
580 # memory: "4Gi"
581 # cpu: "4"
582 # limits:
583 # memory: "8Gi"
584 # cpu: "4"
585 affinity:
586 podAntiAffinity:
587 requiredDuringSchedulingIgnoredDuringExecution:
588 - labelSelector:
589 matchExpressions:
590 - key: name
591 operator: In
592 values:
593 - mongo
594 topologyKey: kubernetes.io/hostname
サービス公開の設定¶
exastro.yaml
を編集しサービス公開に必要なパラメータを設定していきます。EXTERNAL_URL: "http://xx.xx.xx.xx:30080"
EXTERNAL_URL_MNG: "http://xx.xx.xx.xx:30081"
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml
+++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_nodeport_setting.yaml
@@ -366,10 +366,10 @@
platform-auth:
extraEnv:
# Please set the URL to access
- EXTERNAL_URL: ""
- EXTERNAL_URL_MNG: ""
+ EXTERNAL_URL: "http://10.10.10.10:30080"
+ EXTERNAL_URL_MNG: "http://10.10.10.10:30081"
ingress:
- enabled: true
+ enabled: false
hosts:
- host: exastro-suite.example.local
paths:
@@ -382,11 +382,11 @@
pathType: Prefix
backend: "httpMng"
service:
- type: ClusterIP
- # http:
- # nodePort: 30080
- # httpMng:
- # nodePort: 30081
+ type: NodePort
+ http:
+ nodePort: 30080
+ httpMng:
+ nodePort: 30081
image:
repository: "docker.io/exastro/exastro-platform-auth"
tag: ""
@@ -593,4 +593,3 @@
- mongo
topologyKey: kubernetes.io/hostname
-
データベース連携¶
警告
警告
- データベースコンテナの設定データベースコンテナの root パスワードを設定します。また、データベースのデータを永続化するために利用するストレージを指定します。
¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
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
永続ボリュームにストレージクラスを利用する場合のクラスを指定
可 (データ永続化時)
"-" (デフォルト): ストレージクラスを指定しない。ストレージクラス名: クラウドプロバイダなどから提供されるストレージクラス名を指定。--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_database_hostpath.yaml @@ -435,7 +435,7 @@ persistence: enabled: true accessMode: ReadWriteOnce - size: 20Gi + size: XXGi # 必要な容量に変更 storageClass: "-" # e.g.) azurefile or - (None) matchLabels: name: pv-database @@ -593,4 +593,3 @@ - mongo topologyKey: kubernetes.io/hostname -
- Exastro IT Automation 用データベースの設定Exastro IT Automation コンテナがデータベースに接続できるようにするために、データベース連携 で作成した root アカウントのパスワードを設定します。
¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
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ユーザのパスワード(エンコードなし)
必須
任意の文字列
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_database_ita_setting.yaml @@ -27,7 +27,7 @@ DB_DATABASE: "ITA_DB" secret: DB_ADMIN_USER: "root" - DB_ADMIN_PASSWORD: "Ch@ngeMeDBAdm" + DB_ADMIN_PASSWORD: "your-admin-password" # 「1. データベースコンテナの設定」で設定したコンテナデータベースの root のパスワード DB_USER: "ITA_USER" DB_PASSWORD: "Ch@ngeMeITADB" pfGlobalDefinition: @@ -593,4 +593,3 @@ - mongo topologyKey: kubernetes.io/hostname -
- Exastro 共通基盤用データベースの設定Exastro 共通基盤のコンテナがデータベースに接続できるようにするために、「1. データベースコンテナの設定」で作成した root アカウントのパスワードを設定します。
¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
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ユーザのパスワード(エンコードなし)
必須
任意の文字列
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_database_pf_setting.yaml @@ -58,7 +58,7 @@ DB_DATABASE: "platform" secret: DB_ADMIN_USER: "root" - DB_ADMIN_PASSWORD: "Ch@ngeMeDBAdm" + DB_ADMIN_PASSWORD: "your-admin-password" # 「1. データベースコンテナの設定」で設定したコンテナデータベースの root のパスワード DB_USER: "pf-user" DB_PASSWORD: "Ch@ngeMePFDB" keycloakDefinition: @@ -593,4 +593,3 @@ - mongo topologyKey: kubernetes.io/hostname -
OASE用データベースの設定
OASE用データベースの接続情報を設定します。警告
MongoDBのユーザやデータベースを「自動払い出し( オーガナイゼーション作成 )」で利用する場合は、MONGO_HOST の指定が必要です。MONGO_ADMIN_USER がユーザやデータベースの作成・削除が可能(rootロールまたは同等の権限)である必要があります。上記の権限がない場合は「Python接続文字列( オーガナイゼーション作成 )」の指定が必要です。また、自動払い出しを利用しない場合は MONGO_HOST の指定は不要です。¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
global.mongoDefinition.config.MONGO_PROTOCOL
OASE用データベースで利用するDBのプロトコル可
"http"
global.mongoDefinition.config.MONGO_HOST
OASE用データベース利用するDBデフォルト状態では、同一の Kubernetes クラスタ内にデプロイされるコンテナを指定しています。クラスタ外部の DB を利用する場合には設定が必要となります。自動払い出しを利用しない場合は、""(空)を指定してください。可 (外部データベース利用時)
"mongo"
global.mongoDefinition.config.MONGO_PORT
OASE用データベースで利用するポート番号(TCP)
可 (外部データベース利用時)
"27017"
global.mongoDefinition.secret.MONGO_ADMIN_USER
OASE用データベースで利用する管理権限を持つDBユーザ名
必須
管理権限を持つDBユーザ名
global.mongoDefinition.secret.DB_ADMIN_PASSWORD
OASE用データベースで利用する管理権限を持つDBユーザのパスワード(エンコードなし)
必須
管理権限を持つDBユーザ名のパスワード
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_database_mongo_setting.yaml @@ -81,8 +81,8 @@ MONGO_HOST: "mongo" # "mongo" if use container. MONGO_PORT: "27017" secret: - MONGO_ADMIN_USER: "admin" - MONGO_ADMIN_PASSWORD: "Ch@ngeMeMGAdm" + MONGO_ADMIN_USER: "your-admin-account" # OASE用データベースの管理者ユーザ + MONGO_ADMIN_PASSWORD: "your-admin-password" # OASE用データベースの管理者ユーザのパスワード exastro-it-automation: ita-api-admin:
MongoDBコンテナの設定
データベースのデータを永続化するために利用するストレージを指定します警告
MongoDBコンテナを利用しない場合、exastro-platform.mongo.enabled をfalseに指定して下さい。¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
exastro-platform.mongo.enabled
MongoDB コンテナのデプロイの有無
可
true (デフォルト): MongoDB コンテナをデプロイします。false : MongoDB コンテナをデプロイしません。exastro-platform.mongo.image.repository
コンテナイメージのリポジトリ名
不可
"mongo"
exastro-platform.mongo.image.pullPolicy
イメージプルポリシー
可
IfNotPresent (デフォルト): コンテナイメージが存在しない場合のみプルAlways: 毎回必ずプルNone: プルしないexastro-platform.mongo.image.tag
コンテナイメージのタグ
不可
"6.0"
exastro-platform.mongo.persistence.enabled
Exastro 共用データベースのデータ永続化の有効フラグ
可
true (デフォルト): データを永続化するfalse: データを永続化しないexastro-platform.mongo.persistence.reinstall
再インストール時にデータ領域の初期化の要否
不可
true : データを初期化(削除)するfalse (デフォルト): データを初期化(削除)しないexastro-platform.mongo.persistence.accessMode
永続ボリュームのアクセスモードの指定。
不可
"ReadWriteOnce"
exastro-platform.mongo.persistence.size
永続ボリュームのディスク容量
可 (データ永続化時)
"20Gi"
exastro-platform.mongo.persistence.storageClass
永続ボリュームにストレージクラスを利用する場合のクラスを指定
可 (データ永続化時)
- (デフォルト): ストレージクラスを指定しない。ストレージクラス名: クラウドプロバイダなどから提供されるストレージクラス名を指定。exastro-platform.mongo.persistence.matchLabels.name
利用する永続ボリューム名を指定
不可
"コメントアウト"
exastro-platform.mongo.resources.requests.memory
メモリ要求
可
"256Mi"
exastro-platform.mongo.resources.requests.cpu
CPU要求
可
"1m"
exastro-platform.mongo.resources.limits.memory
メモリ上限
可
"2Gi"
exastro-platform.mongo.resources.limits.cpu
CPU上限
可
"4"
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_mongodb_hostpath.yaml @@ -544,7 +544,7 @@ persistence: enabled: true accessMode: ReadWriteOnce - size: 20Gi + size: XXGi storageClass: "-" # e.g.) azurefile, local-path or - (None) matchLabels: # release: "pv-mongo"
アプリケーションの DB ユーザー設定¶
設定例¶
Exastro IT Automation
Exastro 共通基盤
Keycloak
警告
- Exastro IT Automation 用データベースの設定アプリケーションが利用・作成する DB ユーザーを設定します。
¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
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ユーザのパスワード(エンコードなし)
必須
任意の文字列
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_db_user_ita.yaml @@ -28,8 +28,8 @@ secret: DB_ADMIN_USER: "root" DB_ADMIN_PASSWORD: "Ch@ngeMeDBAdm" - DB_USER: "ITA_USER" - DB_PASSWORD: "Ch@ngeMeITADB" + DB_USER: "ita-db-user" # Exastro IT Automation のアプリが使うDBユーザー + DB_PASSWORD: "ita-db-user-password" # Exastro IT Automation のアプリが使うDBユーザーのパスワード pfGlobalDefinition: config: DEFAULT_LANGUAGE: "ja" @@ -593,4 +593,3 @@ - mongo topologyKey: kubernetes.io/hostname -
- Keycloak 用データベースの設定アプリケーションが利用・作成する DB ユーザーを設定します。
¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
global.keycloakDefinition.name
Keycloak の定義名
不可
keycloak
global.keycloakDefinition.enabled
Keycloak の定義の利用有無
不可
true
global.keycloakDefinition.config.API_KEYCLOAK_PROTOCOL
Keycloak API エンドポイントのプロトコル
不可
"http”
global.keycloakDefinition.config.API_KEYCLOAK_HOST
Keycloak API エンドポイントのホスト名、もしくは、FQDN
不可
"keycloak"
global.keycloakDefinition.config.API_KEYCLOAK_PORT
Keycloak API エンドポイントのポート番号
不可
"8080"
global.keycloakDefinition.config.KEYCLOAK_PROTOCOL
Keycloak エンドポイントのプロトコル
不可
"http"
global.keycloakDefinition.config.KEYCLOAK_HOST
Keycloak エンドポイントのホスト名、もしくは、FQDN
不可
"keycloak"
global.keycloakDefinition.config.KEYCLOAK_PORT
Keycloak API エンドポイントのポート番号
不可
"8080"
global.keycloakDefinition.config.KEYCLOAK_MASTER_REALM
Keycloak のマスターレルム名
不可
"master"
global.keycloakDefinition.config.KEYCLOAK_DB_DATABASE
Keycloak が利用するデータベース名
不可
"keycloak"
global.keycloakDefinition.secret.SYSTEM_ADMIN
Keycloak のマスターレルムにおける管理権限を持ったユーザ名を指定。指定した Keycloak ユーザが作成される。※KEYCLOAK_USER→SYSTEM_ADMINに変更必須
任意の文字列
global.keycloakDefinition.secret.SYSTEM_ADMIN_PASSWORD
Keycloak のマスターレルムにおける管理権限を持ったユーザに設定するパスワード(エンコードなし)※KEYCLOAK_PASSWORD→SYSTEM_ADMIN_PASSWORDに変更必須
任意の文字列
global.keycloakDefinition.secret.KEYCLOAK_DB_USER
Keycloak が使用するデータベースユーザ。指定した DB ユーザが作成される。必須
任意の文字列
global.keycloakDefinition.secret.KEYCLOAK_DB_PASSWORD
Keycloak が使用するデータベースユーザのパスワード(エンコードなし)
必須
任意の文字列
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_db_user_keycloak.yaml @@ -65,8 +65,8 @@ secret: SYSTEM_ADMIN: "admin" SYSTEM_ADMIN_PASSWORD: "Ch@ngeMeKCAdm" - KEYCLOAK_DB_USER: "keycloak" - KEYCLOAK_DB_PASSWORD: "Ch@ngeMeKCADB" + KEYCLOAK_DB_USER: "keycloak-db-user" # Keycloak が使うDBユーザー + KEYCLOAK_DB_PASSWORD: "keycloak-db-user-password" # Keycloak が使うDBユーザーのパスワード gitlabDefinition: config: GITLAB_PROTOCOL: "http" @@ -593,4 +593,3 @@ - mongo topologyKey: kubernetes.io/hostname -
- Exastro 共通基盤用データベースの設定アプリケーションが利用・作成する DB ユーザーを設定します。
¶ パラメータ
説明
変更
デフォルト値・選択可能な設定値
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ユーザのパスワード(エンコードなし)
必須
任意の文字列
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml +++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_db_user_pf.yaml @@ -59,8 +59,8 @@ secret: DB_ADMIN_USER: "root" DB_ADMIN_PASSWORD: "Ch@ngeMeDBAdm" - DB_USER: "pf-user" - DB_PASSWORD: "Ch@ngeMePFDB" + DB_USER: "pf-db-user" # Exastro 共通基盤が使うDBユーザー + DB_PASSWORD: "pf-db-password" # Exastro 共通基盤が使うDBユーザーのパスワード keycloakDefinition: secret: SYSTEM_ADMIN: "admin" @@ -593,4 +593,3 @@ - mongo topologyKey: kubernetes.io/hostname -
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_PASSWORD |
GitLab の root 権限アカウントのユーザーパスワード |
必須 |
任意の文字列(8文字以上で予測可能な単語等は利用不可) |
global.gitlabDefinition.secret.GITLAB_ROOT_TOKEN |
GitLab の root 権限アカウントのアクセストークン |
必須 |
アクセエストークン(平文) |
警告
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml
+++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_gitlab_setting.yaml
@@ -69,12 +69,12 @@
KEYCLOAK_DB_PASSWORD: "Ch@ngeMeKCADB"
gitlabDefinition:
config:
- GITLAB_PROTOCOL: "http"
- GITLAB_HOST: "" # "gitlab" if use container.
- GITLAB_PORT: "8080"
- secret:
- GITLAB_ROOT_PASSWORD: "Ch@ngeMeGL"
- GITLAB_ROOT_TOKEN: "change-this-token"
+ GITLAB_PROTOCOL: "接続プロトコル http or https"
+ GITLAB_HOST: "your.gitlab.endpoint" # 起動する Gitalb コンテナの公開時のURL。AAPから接続できる必要がある。
+ GITLAB_PORT: "30082" # 起動する Gitalb コンテナの公開時のポート番号
+ secret:
+ GITLAB_ROOT_PASSWORD: "GitLabのRoot権限をユーザーパスワード"
+ GITLAB_ROOT_TOKEN: "GitLabのRoot権限を持ったトークン"
mongoDefinition:
config:
MONGO_PROTOCOL: "http"
@@ -593,4 +593,3 @@
- mongo
topologyKey: kubernetes.io/hostname
-
システム管理者の作成¶
パラメータ |
説明 |
変更 |
デフォルト値・選択可能な設定値 |
---|---|---|---|
global.keycloakDefinition.name |
Keycloak の定義名 |
不可 |
keycloak |
global.keycloakDefinition.enabled |
Keycloak の定義の利用有無 |
不可 |
true |
global.keycloakDefinition.config.API_KEYCLOAK_PROTOCOL |
Keycloak API エンドポイントのプロトコル |
不可 |
"http” |
global.keycloakDefinition.config.API_KEYCLOAK_HOST |
Keycloak API エンドポイントのホスト名、もしくは、FQDN |
不可 |
"keycloak" |
global.keycloakDefinition.config.API_KEYCLOAK_PORT |
Keycloak API エンドポイントのポート番号 |
不可 |
"8080" |
global.keycloakDefinition.config.KEYCLOAK_PROTOCOL |
Keycloak エンドポイントのプロトコル |
不可 |
"http" |
global.keycloakDefinition.config.KEYCLOAK_HOST |
Keycloak エンドポイントのホスト名、もしくは、FQDN |
不可 |
"keycloak" |
global.keycloakDefinition.config.KEYCLOAK_PORT |
Keycloak API エンドポイントのポート番号 |
不可 |
"8080" |
global.keycloakDefinition.config.KEYCLOAK_MASTER_REALM |
Keycloak のマスターレルム名 |
不可 |
"master" |
global.keycloakDefinition.config.KEYCLOAK_DB_DATABASE |
Keycloak が利用するデータベース名 |
不可 |
"keycloak" |
global.keycloakDefinition.secret.SYSTEM_ADMIN |
Keycloak のマスターレルムにおける管理権限を持ったユーザ名を指定。
指定した Keycloak ユーザが作成される。
※KEYCLOAK_USER→SYSTEM_ADMINに変更
|
必須 |
任意の文字列 |
global.keycloakDefinition.secret.SYSTEM_ADMIN_PASSWORD |
Keycloak のマスターレルムにおける管理権限を持ったユーザに設定するパスワード(エンコードなし)
※KEYCLOAK_PASSWORD→SYSTEM_ADMIN_PASSWORDに変更
|
必須 |
任意の文字列 |
global.keycloakDefinition.secret.KEYCLOAK_DB_USER |
Keycloak が使用するデータベースユーザ。
指定した DB ユーザが作成される。
|
必須 |
任意の文字列 |
global.keycloakDefinition.secret.KEYCLOAK_DB_PASSWORD |
Keycloak が使用するデータベースユーザのパスワード(エンコードなし) |
必須 |
任意の文字列 |
--- /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro.yaml
+++ /home/runner/work/exastro-it-automation-docs-dev/exastro-it-automation-docs-dev/workspace/src/ja/2.4/installation/literal_includes/exastro_usercreate_system_manager.yaml
@@ -63,8 +63,8 @@
DB_PASSWORD: "Ch@ngeMePFDB"
keycloakDefinition:
secret:
- SYSTEM_ADMIN: "admin"
- SYSTEM_ADMIN_PASSWORD: "Ch@ngeMeKCAdm"
+ SYSTEM_ADMIN: "admin" # Exastro システムのシステム管理者のユーザー名
+ SYSTEM_ADMIN_PASSWORD: "admin-password" # Exastro システムのシステム管理者のユーザーパスワード
KEYCLOAK_DB_USER: "keycloak"
KEYCLOAK_DB_PASSWORD: "Ch@ngeMeKCADB"
gitlabDefinition:
@@ -593,4 +593,3 @@
- mongo
topologyKey: kubernetes.io/hostname
-
永続ボリュームの設定¶
注釈
Tip
危険
vi pv-database.yaml
1# pv-database.yaml
2apiVersion: v1
3kind: PersistentVolume
4metadata:
5 name: pv-database
6spec:
7 claimRef:
8 name: pvc-mariadb
9 namespace: exastro
10 capacity:
11 storage: 20Gi
12 accessModes:
13 - ReadWriteOnce
14 persistentVolumeReclaimPolicy: Retain
15 hostPath:
16 path: /var/data/exastro-suite/exastro-platform/database
17 type: DirectoryOrCreate
vi pv-ita-common.yaml
1# pv-ita-common.yaml
2apiVersion: v1
3kind: PersistentVolume
4metadata:
5 name: pv-ita-common
6spec:
7 claimRef:
8 name: pvc-ita-global
9 namespace: exastro
10 capacity:
11 storage: 10Gi
12 accessModes:
13 - ReadWriteMany
14 persistentVolumeReclaimPolicy: Retain
15 hostPath:
16 path: /var/data/exastro-suite/exastro-it-automation/ita-common
17 type: DirectoryOrCreate
vi pv-mongo.yaml
1# pv-mongo.yaml
2apiVersion: v1
3kind: PersistentVolume
4metadata:
5 name: pv-mongo
6spec:
7 claimRef:
8 name: volume-mongo-storage-mongo-0
9 namespace: exastro
10 capacity:
11 storage: 20Gi
12 accessModes:
13 - ReadWriteOnce
14 persistentVolumeReclaimPolicy: Retain
15 hostPath:
16 path: /var/data/exastro-suite/exastro-platform/mongo
17 type: DirectoryOrCreate
vi pv-gitlab.yaml
1# pv-gitlab.yaml
2apiVersion: v1
3kind: PersistentVolume
4metadata:
5 name: pv-gitlab
6spec:
7 claimRef:
8 name: pvc-gitlab
9 namespace: exastro
10 capacity:
11 storage: 20Gi
12 accessModes:
13 - ReadWriteMany
14 persistentVolumeReclaimPolicy: Retain
15 hostPath:
16 path: /var/data/exastro-suite/exastro-platform/gitlab
17 type: DirectoryOrCreate
pfAuditLogDefinition:
name: pf-auditlog
persistence:
- enabled: false
+ enabled: true
reinstall: false
accessMode: ReadWriteMany
size: 10Gi
volumeType: hostPath # e.g.) hostPath or AKS
storageClass: "-" # e.g.) azurefile or - (None)
vi pv-pf-auditlog.yaml
1# pv-pf-auditlog.yaml
2apiVersion: v1
3kind: PersistentVolume
4metadata:
5 name: pv-auditlog
6spec:
7 claimRef:
8 name: pvc-pf-auditlog
9 namespace: exastro
10 capacity:
11 storage: 10Gi
12 accessModes:
13 - ReadWriteMany
14 persistentVolumeReclaimPolicy: Retain
15 hostPath:
16 path: /var/log/exastro
17 type: DirectoryOrCreate
③kubespray及びkubernetesのコンテナイメージの取得¶
cd /tmp
git clone https://github.com/kubernetes-sigs/kubespray.git -b release-2.23
cd kubespray/contrib/offline
./generate_list.sh
cp -ip /tmp/kubespray/contrib/offline/temp/images.list /tmp/work/k8s-images.list
cd /tmp/work
vi k8s-image-save.sh
#!/bin/bash
mkdir k8s-images
readarray -t image_list < "./k8s-images.list"
for image in ${image_list[@]}
do
image_fullname=$(echo ${image})
image_name=$(basename ${image_fullname} | sed -e "s/:/-/" -e "s/docker.io//" -e "s/registry.k8s.io//" -e "s/quay.io//" -e "s/ghcr.io//")
if [ ! -e k8s-images/${image_name}.tar.gz ]; then
echo $image_fullname $image_name
docker pull ${image_fullname}
if [ $? -eq 0 ]; then
docker save ${image_fullname} | gzip -c > k8s-images/${image_name}.tar.gz
fi
fi
done
chmod a+x k8s-image-save.sh
./k8s-image-save.sh
④パッケージファイルの取得¶
cd /tmp/kubespray
dnf install -y --downloadonly --downloaddir=/tmp/pkg-repo --installroot=/tmp/pkg-installroot --releasever=x.x docker-ce python39 nginx gcc httpd systemd-devel keepalived
dnf install -y createrepo
createrepo /tmp/pkg-repo
pip3.9 download -d /tmp/pip_whl -r requirements.txt
dnf install -y --downloadonly --downloaddir=/tmp/k8s-repo --installroot=/tmp/k8s-installroot --releasever=x.x conntrack-tools libnetfilter_cttimeout libnetfilter_cthelper libnetfilter_queue bash-completion e2fsprogs device-mapper-libs ipset libseccomp ipvsadm nss openssl python3-libselinux rsync socat unzip xfsprogs gssproxy libverto-libevent keyutils nfs-utils libev rpcbind container-selinux iproute
createrepo /tmp/k8s-repo
cd contrib/offline
cp manage-offline-files.sh manage-offline-files.sh.bk
vi manage-offline-files.sh
#!/bin/bash
CURRENT_DIR=$( dirname "$(readlink -f "$0")" )
OFFLINE_FILES_DIR_NAME="offline-files"
OFFLINE_FILES_DIR="${CURRENT_DIR}/${OFFLINE_FILES_DIR_NAME}"
OFFLINE_FILES_ARCHIVE="${CURRENT_DIR}/offline-files.tar.gz"
FILES_LIST=${FILES_LIST:-"${CURRENT_DIR}/temp/files.list"}
- NGINX_PORT=8080
- sudo "${runtime}" container inspect nginx >/dev/null 2>&1
- if [ $? -ne 0 ]; then
- sudo "${runtime}" run \
- --restart=always -d -p ${NGINX_PORT}:80 \
- --volume "${OFFLINE_FILES_DIR}:/usr/share/nginx/html/download" \
- --volume "${CURRENT_DIR}"/nginx.conf:/etc/nginx/nginx.conf \
- --name nginx nginx:alpine
- fi
./manage-offline-files.sh
mv offline-files.tar.gz /tmp/work
注釈
⑤Exastroのコンテナイメージを取得¶
cd /tmp/work
vi exastro-images.list
docker.io/exastro/exastro-it-automation-api-admin:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-api-organization:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-api-oase-receiver:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-ansible-execute:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-ansible-agent:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-ansible-legacy-role-vars-listup:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-ansible-legacy-vars-listup:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-ansible-pioneer-vars-listup:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-ansible-towermaster-sync:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-cicd-for-iac:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-collector:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-conductor-regularly:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-conductor-synchronize:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-excel-export-import:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-execinstance-dataautoclean:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-file-autoclean:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-hostgroup-split:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-menu-create:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-menu-export-import:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-oase-conclusion:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-terraform-cli-execute:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-terraform-cli-vars-listup:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-terraform-cloud-ep-execute:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-by-terraform-cloud-ep-vars-listup:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-web-server:#__ITA_VERSION__#
docker.io/exastro/exastro-it-automation-migration:#__ITA_VERSION__#
docker.io/exastro/exastro-platform-api:#__PF_VERSION__#
docker.io/exastro/exastro-platform-auth:#__PF_VERSION__#
docker.io/exastro/exastro-platform-job:#__PF_VERSION__#
docker.io/exastro/exastro-platform-migration:#__PF_VERSION__#
docker.io/exastro/exastro-platform-web:#__PF_VERSION__#
docker.io/exastro/keycloak:#__PF_VERSION__#
docker.io/gitlab/gitlab-ce:15.11.13-ce.0
docker.io/mongo:6.0
docker.io/mongo:6.0.7
docker.io/mariadb:10.9
docker.io/mariadb:10.11
busybox:latest
registry.access.redhat.com/ubi8/ubi-init:latest
vi exastro-image-save.sh
#!/bin/bash
ITA_VERSION=$1
declare -A PF_VERSION=(
["x.x.x"]="x.x.x"
)
if [ ! -d $1 ]; then
mkdir $ITA_VERSION
fi
readarray -t image_list < "./exastro-images.list"
for image in ${image_list[@]}
do
image_fullname=$(echo ${image} | sed -e "s/#__ITA_VERSION__#/${ITA_VERSION}/" -e "s/#__PF_VERSION__#/${PF_VERSION[$ITA_VERSION]}/")
image_name=$(basename ${image_fullname} | sed -e "s/:/-/")
if [ ! -e ${ITA_VERSION}/${image_name}.tar.gz ]; then
echo $image_fullname $image_name
docker pull ${image_fullname}
if [ $? -eq 0 ]; then
docker save ${image_fullname} | gzip -c > ${ITA_VERSION}/${image_name}.tar.gz
fi
fi
done
chmod a+x exastro-image-save.sh
sh exastro-image-save.sh x.x.x
⑥オフライン環境で使用するシェルスクリプト等を作成¶
cd /tmp/work
vi exastro-image-load.sh
#!/bin/bash
ITA_VERSION=x.x.x
cd /tmp/work/${ITA_VERSION}
for file in *.tar.gz; do
/usr/local/bin/nerdctl load -i ${file}
done
vi k8s-image-push.sh
#!/bin/bash
IPaddress=xx.xx.xx.xx:6000
image_list=$(docker images --format "{{.Repository}}:{{.Tag}}" | grep ${IPaddress})
IFS=$'\n'
for image in ${image_list}; do
new_image=$(echo "${image}" | sed -e "s|docker.io/||" -e "s|registry.k8s.io/||" -e "s|quay.io/||" -e "s|ghcr.io/||")
docker tag "${image}" "${new_image}"
docker push "${new_image}"
done
vi k8s-image-load.sh
#!/bin/bash
IPaddress=xx.xx.xx.xx:6000
readarray -t image_list < k8s-images.list
for image in ${image_list[@]}
do
image_fullname=$(echo ${image} )
image_name=$(basename ${image_fullname} | sed -e "s/:/-/")
if [ -e k8s-images/${image_name}.tar.gz ]; then
docker load < k8s-images/${image_name}.tar.gz &&
docker tag ${image_fullname} ${IPaddress}/${image_fullname} &&
docker rmi ${image_fullname} &
fi
done
wait
vi inventory.yaml
[ControlMachine]
Ansible実行サーバのホスト名
[k8s-node1]
Exastroインストールサーバのホスト名
[K8S:children]
k8s-node1
vi preparation.yaml
preparation.yaml
1---
2- name: 資材配布など
3 hosts: K8S
4 tasks:
5 - name: k8s-nodeにディレクトリ作成
6 file:
7 path: /tmp/work
8 state: directory
9
10 - name: パッケージを展開(rpmファイル)
11 unarchive:
12 src: /tmp/work/k8s-repo.tar.gz
13 dest: /tmp/work
14 mode: 0755
15 remote_src: false
16
17 - name: パッケージを展開(offline-files)
18 unarchive:
19 src: /tmp/work/offline-files.tar.gz
20 dest: /tmp/work
21 mode: 0755
22 remote_src: false
23
24 - name: パッケージをインストールするシェルスクリプトをコピー
25 copy:
26 src: /tmp/work/k8s-pkg-install.sh
27 dest: /tmp/work
28 mode: 0755
29
30 - name: パッケージをインストールする
31 shell:
32 cmd: /tmp/work/k8s-pkg-install.sh
33 chdir: /tmp/work/k8s-repo
34
vi install-exastro.yaml
install-exastro.yaml
1---
2- name: exastroのインストール
3 hosts: K8S
4 gather_facts: yes
5 tasks:
6 - name: helmを展開
7 shell:
8 cmd: tar xzvf /tmp/work/offline-files/get.helm.sh/helm*.tar.gz
9 chdir: /tmp/work/offline-files/get.helm.sh
10
11 - name: helmをコピー
12 shell:
13 cmd: cp /tmp/work/offline-files/get.helm.sh/linux-amd64/helm /usr/local/bin
14
15 - name: シェルスクリプトをコピー
16 copy:
17 src: /tmp/work/exastro-image-load.sh
18 dest: /tmp/work
19 mode: 0755
20
21 - name: exastroのコンテナイメージを展開
22 shell:
23 cmd: tar xzf /tmp/work/exastro-image.tar.gz
24 chdir: /tmp/work
25
26
27 - name: シェルスクリプトを実行
28 shell:
29 cmd: ./exastro-image-load.sh
30 chdir: /tmp/work
31
32 - name: exastro helm chartをコピー
33 copy:
34 src: /tmp/work/exastro-x.x.x.tgz
35 dest: /tmp/work
36 mode: 0755
37 remote_src: false
38
39 - name: exastro.yamlをコピー
40 copy:
41 src: /tmp/work/exastro.yaml
42 dest: /tmp/work
43 mode: 0755
44
45 - name: pv-database.yamlをコピー
46 copy:
47 src: /tmp/work/pv-database.yaml
48 dest: /tmp/work
49 remote_src: false
50 when: "'k8s-node1' in group_names"
51
52 - name: pv-ita-common.yamlをコピー
53 copy:
54 src: /tmp/work/pv-ita-common.yaml
55 dest: /tmp/work
56 remote_src: false
57 when: "'k8s-node1' in group_names"
58
59 - name: pv-mongo.yamlをコピー
60 copy:
61 src: /tmp/work/pv-mongo.yaml
62 dest: /tmp/work
63 remote_src: false
64 when: "'k8s-node1' in group_names"
65
66 - name: pv-gitlab.yaml をコピー
67 copy:
68 src: /tmp/work/pv-gitlab.yaml
69 dest: /tmp/work
70 remote_src: false
71 when: "'k8s-node1' in group_names"
72
73 - name: pv-pf-auditlog.yaml をコピー
74 copy:
75 src: /tmp/work/pv-pf-auditlog.yaml
76 dest: /tmp/work
77 remote_src: false
78 when: "'k8s-node1' in group_names"
79
80 - name: シェルスクリプトのコピー
81 copy:
82 src: /tmp/work/apply-pv.sh
83 dest: /tmp/work
84 mode: 0755
85 remote_src: false
86 when: "'k8s-node1' in group_names"
87
88 - name: シェルスクリプトを実行
89 shell:
90 cmd: /tmp/work/apply-pv.sh
91 chdir: /tmp/work
92 ignore_errors: true
93 when: "'k8s-node1' in group_names"
94
95 - name: exec exastro v2
96 shell:
97 cmd: /usr/local/bin/helm install exastro ./exastro-x.x.x.tgz --namespace exastro --create-namespace --values exastro.yaml
98 chdir: /tmp/work
99 when: "'k8s-node1' in group_names"
100 - debug:
101 msg: need checking exastro pod command kubectl get pod -n exastro
vi apply-pv.sh
#!/bin/bash
/usr/local/bin/kubectl apply -f /tmp/work/pv-database.yaml
/usr/local/bin/kubectl apply -f /tmp/work/pv-ita-common.yaml
/usr/local/bin/kubectl apply -f /tmp/work/pv-mongo.yaml
/usr/local/bin/kubectl apply -f /tmp/work/pv-gitlab.yaml
/usr/local/bin/kubectl apply -f /tmp/work/pv-pf-auditlog.yaml
vi k8s-pkg-install.sh
#!/bin/bash
#ebtables のインストール
rpm -ivh --force iptables*.rpm iptables-ebtables*.rpm iptables-libs*.rpm
# conntrack-tools のインストール
rpm -ivh --force conntrack-tools*.rpm libnetfilter_cttimeout*.rpm libnetfilter_cthelper*.rpm libnetfilter_queue*.rpm
# bash-completion のインストール
rpm -ivh --force bash-completion*.rpm libssh*.rpm libssh-config*.rpm openssl*.rpm openssl-libs*.rpm
# curl のインストール
rpm -ivh --force curl*.rpm libcurl*.rpm
# e2fsprogs のインストール
rpm -ivh --force e2fsprogs*.rpm e2fsprogs-libs*.rpm libcom_err*.rpm libss*.rpm
# device-mapper-libs のインストール
rpm -ivh --force device-mapper*.rpm device-mapper-event*.rpm device-mapper-event-libs*.rpm device-mapper-libs*.rpm lvm2*.rpm lvm2-libs*.rpm ipset-libs*.rpm
# ipset のインストール
rpm -ivh --force ipset*.rpm
# libseccomp のインストール
rpm -ivh --force libseccomp*.rpm
# ipvsadm のインストール
rpm -ivh --force ipvsadm*.rpm
# nss のインストール
rpm -ivh --force nspr*.rpm nss*.rpm nss-softokn*.rpm nss-softokn-freebl*.rpm nss-sysinit*.rpm nss-tools*.rpm nss-util*.rpm
# openssl のインストール
rpm -ivh --force openssl*.rpm
# python3-libselinux のインストール
rpm -ivh --force libselinux*.rpm python3-libselinux*.rpm libselinux-utils*.rpm
# rsync のインストール
rpm -ivh --force rsync*.rpm
# socat のインストール
rpm -ivh --force socat*.rpm
# unzip のインストール
rpm -ivh --force unzip*.rpm
# xfsprogs のインストール
rpm -ivh --force xfsprogs*.rpm
# container-selinux のインストール
rpm -ivh --force container-selinux*.rpm selinux-policy*.rpm selinux-policy-targeted*.rpm
# nfs-utils のインストール
rpm -ivh --force nfs-utils*.rpm
#iproutes のインストール
rpm -ivh --force iproute*.rpm
資材の転送¶
cd /tmp/work
tar -zcvf exastro-image.tar.gz x.x.x
tar -zcvf k8s-images.tar.gz k8s-images
tar -zcvf resource.tar.gz k8s-image-push.sh k8s-image-load.sh k8s-images.list exastro.yaml inventory.yaml install-exastro.yaml preparation.yaml apply-pv.sh exastro-image-load.sh k8s-pkg-install.sh pv-database.yaml pv-ita-common.yaml pv-gitlab.yaml pv-mongo.yaml pv-pf-auditlog.yaml
cd /tmp
tar -zcvf k8s-repo.tar.gz k8s-repo
tar -zcvf pkg-repo.tar.gz pkg-repo
tar -zcvf pip-whl.tar.gz pip_whl
tar -zcvf kubespray.tar.gz kubespray
exastro-image.tar.gz
k8s-images.tar.gz
resource.tar.gz
exastro-x.x.x.tgz
offline-files.tar.gz
k8s-repo.tar.gz
pkg-repo.tar.gz
pip-whl.tar.gz
kubespray.tar.gz
オフライン環境(インターネットに接続できない環境)での作業¶
⑦資材受け取り¶
cd /tmp
tar xzvf kubespray.tar.gz
tar xzvf pip-whl.tar.gz
tar xzvf pkg-repo.tar.gz
cd /tmp/work
tar xzvf offline-files.tar.gz
tar xzvf k8s-images.tar.gz
tar xzvf /tmp/work/resource.tar.gz -C /tmp/work
⑧Ansible実行サーバでの準備¶
cd /tmp
vi pkg-install.sh
#!/bin/bash
#ローカルリポジトリを作成
sudo tee /etc/yum.repos.d/pkg-repo.repo <<EOF
[pkg-repo]
name=RedHat-\$releaserver - pkg
baseurl=file:///tmp/pkg-repo
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF
dnf remove -y runc
#docker-ceのインストール
cd /tmp/pkg-repo
docker_ce=$(ls | grep -E "docker-ce|docker-ce-cli|docker-ce-rootless-extras|docker-compose-plugin|fuse3|fuse3-libs|fuse-common|fuse-overlayfs|libcgroup|libslirp|slirp4netns|container-selinux|perl-IO-Socket-SSL|perl-Mozilla-CA|perl-Net-SSLeay")
dnf install -y --disablerepo=\* --enablerepo=pkg-repo ${docker_ce}
#pythonのインストール
python=$(ls | grep "python39")
dnf install -y --disablerepo=\* --enablerepo=pkg-repo ${python}
#Nginxのインストール
nginx=$(ls | grep "nginx")
dnf install -y --disablerepo=\* --enablerepo=pkg-repo ${nginx}
#ansible関連のインストール
cd /tmp/pip_whl
pip3.9 install --no-index --find-links=./ ansible cryptography jinja2 jmespath MarkupSafe netaddr pbr ruamel.yaml ruamel.yaml.clib
chmod a+x pkg-install.sh
./pkg-install.sh
No available modular metadata for modular package 'perl-Mozilla-CA-20160104-7.module_el8.5.0+2812+ed912d05.noarch', it cannot be installed on the system
No available modular metadata for modular package 'perl-Net-SSLeay-1.88-2.module_el8.6.0+2811+fe6c84b0.x86_64', it cannot be installed on the system
Error: No available modular metadata for modular package
#対象がperl-Mozilla-CA 及び perl-Net-SSLeayだった場合
cd /tmp/pkg-repo
ls -l | grep -E "perl-Mozilla-CA|perl-Net-SSLeay"
dnf -y --disablerepo=\* --enablerepo=pkg-repo perl-Mozilla-CA-20160104-7.module_el8.5.0+2812+ed912d05.noarch.rmp perl-Net-SSLeay-1.88-2.module_el8.6.0+2811+fe6c84b0.x86_64.rpm
systemctl enable --now docker
cat /etc/group | grep docker
usermod -aG docker ${USER}
cat /etc/group | grep docker
reboot
vi /etc/hosts
xx.xx.xx.xx xxx.cluster.local xxx
#サーバのIPアドレス:xx.xx.xx.xx
#サーバホスト名:xxx.cluster.local xxx
cd ~ && ls -al
#.sshディレクトリが存在する場合は作成不要
mkdir .ssh
cd .ssh
#指定がない場合は全てEnterを押す
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@HOSTSに登録したサーバのホスト名
ssh-copy-id -i ~/.ssh/id_rsa.pub root@実行しているサーバのホスト名
ssh root@HOSTSに登録したサーバのホスト名
exit
⑨Exastroインストールサーバでの準備¶
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
+net.ipv4.ip_forward=1
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
getenforce
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
+SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
reboot
getenforce
⑩kubernetesのコンテナイメージの設定¶
vi /etc/docker/daemon.json
{ "insecure-registries":[ "xx.xx.xx.xx:6000" ] }
systemctl daemon-reload
systemctl start docker
cd /tmp/work
ls k8s-image-load.sh
chmod a+x k8s-image-load.sh
./k8s-image-load.sh
docker images | grep docker.io/library/registry
#上記で得られたREPOSITORYとTAGを指定します
docker run -d -p 6000:5000 --restart=always --name registry REPOSITORY:TAG
#以下は記載例です
docker run -d -p 6000:5000 --restart=always --name registry xx.xx.xx.xx:6000/docker.io/library/registry:2.8.1
#docker registryが起動していることを確認します
docker ps
ls k8s-image-push.sh
chmod a+x k8s-image-push.sh
./k8s-image-push.sh
注釈
⑪自己署名証明書及びNginxの設定¶
mkdir /etc/nginx/ssl
openssl genrsa -out /etc/nginx/ssl/server.key 2048
openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr
openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt
ls /etc/nginx/ssl
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bk
vi /etc/nginx/nginx.conf
server {
listen 81 ssl ;
ssl_certificate "/etc/nginx/ssl/server.crt";
ssl_certificate_key "/etc/nginx/ssl/server.key";
charset UTF-8;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /{
client_max_body_size 256M;
proxy_set_header Host $host;
proxy_pass http://xx.xx.xx.xx:6000/;
proxy_redirect off;
}
}
systemctl stop firewalld
systemctl start nginx
https://xx.xx.xx.xx:81/v2/_catalog
注釈
scp /etc/nginx/ssl/server.crt root@xx.xx.xx.xx:/usr/share/pki/ca-trust-source/anchors
⑫パッケージのインストール¶
cd /tmp/kubespray
cp -rfp inventory/sample inventory/k8s_cluster
declare -a IPS=(xx.xx.xx.xx)
CONFIG_FILE=inventory/k8s_cluster/hosts.yml python3.9 contrib/inventory_builder/inventory.py ${IPS[@]}
hosts.yml
のnode1を構成したいKubernetesクラスターのホスト名に書き換えます。cd /tmp/kubespray/inventory/k8s_cluster
vi hosts.yml
all:
hosts:
node1:
ansible_host: xx.xx.xx.xx
ip: xx.xx.xx.xx
access_ip: xx.xx.xx.xx
children:
kube_control_plane:
hosts:
node1:
kube_node:
hosts:
node1:
etcd:
hosts:
node1:
k8s_cluster:
children:
kube_control_plane:
kube_node:
calico_rr:
hosts: {}
cd /tmp/work
ls inventory.yaml
ls preparation.yaml
ansible-playbook -i inventory.yaml preparation.yaml -become --become-user=root --private-key=~/.ssh/id_rsa
⑬kubesprayのインストール¶
systemctl restart docker
docker images | grep docker.io/library/nginx
#上記で得られたREPOSITORYとTAGを指定します
docker run --name exastro-nginx -d -p 8080:80 -v /tmp/work/offline-files:/usr/share/nginx/html/download REPOSITORY:TAG
#以下は記載例です
docker run --name exastro-nginx -d -p 8080:80 -v /tmp/work/offline-files:/usr/share/nginx/html/download xx.xx.xx.xx:6000/docker.io/library/nginx:1.25.2-alpine
#Nginxコンテナが起動していることを確認します
docker ps
cd /tmp/kubespray/inventory/k8s_cluster/group_vars/all
cp all.yml all.yml.bk
vi all.yml
## Set these proxy values in order to update package manager and docker daemon to use proxies and custom CA for https_proxy if needed
# http_proxy: ""
# https_proxy: ""
- # https_proxy_cert_file: ""
+ https_proxy_cert_file: "/usr/share/pki/ca-trust-source/anchors/server.crt"
cp offline.yml offline.yml.bk
vi offline.yml
containerd_registries_mirrors:
- prefix: "{{ registry_host }}"
mirrors:
- host: "{{ registry_host }}"
capabilities: ["pull", "resolve"]
skip_verify: true
offline.yml
1---
2## Global Offline settings
3### Private Container Image Registry
4- # registry_host: "myprivateregisry.com"
5+ registry_host: "xx.xx.xx.xx:81"
6- # files_repo: "http://myprivatehttpd"
7+ files_repo: "http://xx.xx.xx.xx:8080/download"
8### If using CentOS, RedHat, AlmaLinux or Fedora
9- # yum_repo: "http://myinternalyumrepo"
10+ yum_repo: "http://xx.xx.xx.xx:81"
11### If using Debian
12# debian_repo: "http://myinternaldebianrepo"
13### If using Ubuntu
14# ubuntu_repo: "http://myinternalubunturepo"
15
16containerd_registries_mirrors:
17 - prefix: "{{ registry_host }}"
18 mirrors:
19 - host: "{{ registry_host }}"
20 capabilities: ["pull", "resolve"]
21 skip_verify: true
22
23## Container Registry overrides
24- # kube_image_repo: "{{ registry_host }}"
25+ kube_image_repo: "{{ registry_host }}"
26- # gcr_image_repo: "{{ registry_host }}"
27+ gcr_image_repo: "{{ registry_host }}"
28- # github_image_repo: "{{ registry_host }}"
29+ github_image_repo: "{{ registry_host }}"
30- # docker_image_repo: "{{ registry_host }}"
31+ docker_image_repo: "{{ registry_host }}"
32- # quay_image_repo: "{{ registry_host }}"
33+ quay_image_repo: "{{ registry_host }}"
34
35## Kubernetes components
36- # kubeadm_download_url: "{{ files_repo }}/dl.k8s.io/release/{{ kubeadm_version }}/bin/linux/{{ image_arch }}/kubeadm"
37+ kubeadm_download_url: "{{ files_repo }}/dl.k8s.io/release/{{ kubeadm_version }}/bin/linux/{{ image_arch }}/kubeadm"
38- # kubectl_download_url: "{{ files_repo }}/dl.k8s.io/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubectl"
39+ kubectl_download_url: "{{ files_repo }}/dl.k8s.io/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubectl"
40- # kubelet_download_url: "{{ files_repo }}/dl.k8s.io/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubelet"
41+ kubelet_download_url: "{{ files_repo }}/dl.k8s.io/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubelet"
42
43## CNI Plugins
44- # cni_download_url: "{{ files_repo }}/github.com/containernetworking/plugins/releases/download/{{ cni_version }}/cni-plugins-linux-{{ image_arch }}-{{ cni_version }}.tgz"
45+ cni_download_url: "{{ files_repo }}/github.com/containernetworking/plugins/releases/download/{{ cni_version }}/cni-plugins-linux-{{ image_arch }}-{{ cni_version }}.tgz"
46
47## cri-tools
48- # crictl_download_url: "{{ files_repo }}/github.com/kubernetes-sigs/cri-tools/releases/download/{{ crictl_version }}/crictl-{{ crictl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz"
49+ crictl_download_url: "{{ files_repo }}/github.com/kubernetes-sigs/cri-tools/releases/download/{{ crictl_version }}/crictl-{{ crictl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz"
50
51## [Optional] etcd: only if you use etcd_deployment=host
52- # etcd_download_url: "{{ files_repo }}/github.com/etcd-io/etcd/releases/download/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-{{ image_arch }}.tar.gz"
53+ etcd_download_url: "{{ files_repo }}/github.com/etcd-io/etcd/releases/download/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-{{ image_arch }}.tar.gz"
54
55# [Optional] Calico: If using Calico network plugin
56- # calicoctl_download_url: "{{ files_repo }}/github.com/projectcalico/calico/releases/download/{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}"
57+ calicoctl_download_url: "{{ files_repo }}/github.com/projectcalico/calico/releases/download/{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}"
58# [Optional] Calico with kdd: If using Calico network plugin with kdd datastore
59- # calico_crds_download_url: "{{ files_repo }}/github.com/projectcalico/calico/archive/{{ calico_version }}.tar.gz"
60+ calico_crds_download_url: "{{ files_repo }}/github.com/projectcalico/calico/archive/{{ calico_version }}.tar.gz"
61
62# [Optional] Cilium: If using Cilium network plugin
63- # ciliumcli_download_url: "{{ files_repo }}/github.com/cilium/cilium-cli/releases/download/{{ cilium_cli_version }}/cilium-linux-{{ image_arch }}.tar.gz"
64+ ciliumcli_download_url: "{{ files_repo }}/github.com/cilium/cilium-cli/releases/download/{{ cilium_cli_version }}/cilium-linux-{{ image_arch }}.tar.gz"
65
66# [Optional] helm: only if you set helm_enabled: true
67- # helm_download_url: "{{ files_repo }}/get.helm.sh/helm-{{ helm_version }}-linux-{{ image_arch }}.tar.gz"
68+ helm_download_url: "{{ files_repo }}/get.helm.sh/helm-{{ helm_version }}-linux-{{ image_arch }}.tar.gz"
69
70# [Optional] crun: only if you set crun_enabled: true
71- # crun_download_url: "{{ files_repo }}/github.com/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}"
72+ crun_download_url: "{{ files_repo }}/github.com/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}"
73
74# [Optional] kata: only if you set kata_containers_enabled: true
75- # kata_containers_download_url: "{{ files_repo }}/github.com/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ ansible_architecture }}.tar.xz"
76+ kata_containers_download_url: "{{ files_repo }}/github.com/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ ansible_architecture }}.tar.xz"
77
78# [Optional] cri-dockerd: only if you set container_manager: docker
79- # cri_dockerd_download_url: "{{ files_repo }}/github.com/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz"
80+ cri_dockerd_download_url: "{{ files_repo }}/github.com/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz"
81
82# [Optional] runc: if you set container_manager to containerd or crio
83- # runc_download_url: "{{ files_repo }}/github.com/opencontainers/runc/releases/download/{{ runc_version }}/runc.{{ image_arch }}"
84+ runc_download_url: "{{ files_repo }}/github.com/opencontainers/runc/releases/download/{{ runc_version }}/runc.{{ image_arch }}"
85
86# [Optional] cri-o: only if you set container_manager: crio
87- # crio_download_base: "download.opensuse.org/repositories/devel:kubic:libcontainers:stable"
88+ crio_download_base: "download.opensuse.org/repositories/devel:kubic:libcontainers:stable"
89- # crio_download_crio: "http://{{ crio_download_base }}:/cri-o:/"
90+ crio_download_crio: "http://{{ crio_download_base }}:/cri-o:/"
91- # crio_download_url: "{{ files_repo }}/storage.googleapis.com/cri-o/artifacts/cri-o.{{ image_arch }}.{{ crio_version }}.tar.gz"
92+ crio_download_url: "{{ files_repo }}/storage.googleapis.com/cri-o/artifacts/cri-o.{{ image_arch }}.{{ crio_version }}.tar.gz"
93- # skopeo_download_url: "{{ files_repo }}/github.com/lework/skopeo-binary/releases/download/{{ skopeo_version }}/skopeo-linux-{{ image_arch }}"
94+ skopeo_download_url: "{{ files_repo }}/github.com/lework/skopeo-binary/releases/download/{{ skopeo_version }}/skopeo-linux-{{ image_arch }}"
95
96# [Optional] containerd: only if you set container_runtime: containerd
97- # containerd_download_url: "{{ files_repo }}/github.com/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz"
98+ containerd_download_url: "{{ files_repo }}/github.com/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz"
99- # nerdctl_download_url: "{{ files_repo }}/github.com/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz"
100+ nerdctl_download_url: "{{ files_repo }}/github.com/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz"
101
102# [Optional] runsc,containerd-shim-runsc: only if you set gvisor_enabled: true
103- # gvisor_runsc_download_url: "{{ files_repo }}/storage.googleapis.com/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/runsc"
104+ gvisor_runsc_download_url: "{{ files_repo }}/storage.googleapis.com/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/runsc"
105- # gvisor_containerd_shim_runsc_download_url: "{{ files_repo }}/storage.googleapis.com/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/containerd-shim-runsc-v1"
106+ gvisor_containerd_shim_runsc_download_url: "{{ files_repo }}/storage.googleapis.com/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/containerd-shim-runsc-v1"
107
108# [Optional] Krew: only if you set krew_enabled: true
109- # krew_download_url: "{{ files_repo }}/github.com/kubernetes-sigs/krew/releases/download/{{ krew_version }}/krew-{{ host_os }}_{{ image_arch }}.tar.gz"
110+ krew_download_url: "{{ files_repo }}/github.com/kubernetes-sigs/krew/releases/download/{{ krew_version }}/krew-{{ host_os }}_{{ image_arch }}.tar.gz"
111
112## CentOS/Redhat/AlmaLinux
113### For EL7, base and extras repo must be available, for EL8, baseos and appstream
114### By default we enable those repo automatically
115# rhel_enable_repos: false
116### Docker / Containerd
117- # docker_rh_repo_base_url: "{{ yum_repo }}/docker-ce/$releasever/$basearch"
118+ docker_rh_repo_base_url: "{{ yum_repo }}/docker-ce/$releasever/$basearch"
119- # docker_rh_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
120+ docker_rh_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
121
122## Fedora
123### Docker
124# docker_fedora_repo_base_url: "{{ yum_repo }}/docker-ce/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}"
125# docker_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
126### Containerd
127# containerd_fedora_repo_base_url: "{{ yum_repo }}/containerd"
128# containerd_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
129
130## Debian
131### Docker
132# docker_debian_repo_base_url: "{{ debian_repo }}/docker-ce"
133# docker_debian_repo_gpgkey: "{{ debian_repo }}/docker-ce/gpg"
134### Containerd
135# containerd_debian_repo_base_url: "{{ debian_repo }}/containerd"
136# containerd_debian_repo_gpgkey: "{{ debian_repo }}/containerd/gpg"
137# containerd_debian_repo_repokey: 'YOURREPOKEY'
138
139## Ubuntu
140### Docker
141# docker_ubuntu_repo_base_url: "{{ ubuntu_repo }}/docker-ce"
142# docker_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/docker-ce/gpg"
143### Containerd
144# containerd_ubuntu_repo_base_url: "{{ ubuntu_repo }}/containerd"
145# containerd_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg"
146# containerd_ubuntu_repo_repokey: 'YOURREPOKEY'
cd /tmp/kubespray
ansible-playbook -i inventory/k8s_cluster/hosts.yml --become --become-user=root cluster.yml --private-key=~/.ssh/id_rsa -e "download_retries=10" | tee ~/kubespray_$(date +%Y%m%d%H%M).log
kubectl get nodes
NAME STATUS ROLES AGE VERSION
ITAをインストールするサーバのホスト名 Ready control-plane 5m10s v1.27.10
⑭Exastroのインストール¶
cd /tmp/work
ls exastro-image.tar.gz
scp /tmp/work/exastro-image.tar.gz root@xx.xx.xx.xx:/tmp/work
ls inventory.yaml
ls install-exastro.yaml
ansible-playbook -i inventory.yaml install-exastro.yaml -become --become-user=root --private-key=~/.ssh/id_rsa
kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-auditlog 10Gi RWX Retain Bound exastro/pvc-pf-auditlog 8m10s
pv-database 20Gi RWO Retain Bound exastro/pvc-mariadb 8m10s
pv-gitlab 20Gi RWX Retain Available exastro/pvc-gitlab 8m10s
pv-ita-common 10Gi RWX Retain Bound exastro/pvc-ita-global 8m10s
pv-mongo 20Gi RWO Retain Bound exastro/volume-mongo-storage-mongo-0 8m10s
# Pod の一覧を取得
kubectl get po --namespace exastro
NAME READY STATUS RESTARTS AGE
ita-api-admin-6b8567596d-rgjms 1/1 Running 0 7h40m
ita-api-oase-receiver-6b74bdff6-zmcrw 1/1 Running 0 7h40m
ita-api-organization-559d7d8f89-ptphh 1/1 Running 0 7h40m
ita-by-ansible-execute-5dc444c999-w6gmr 1/1 Running 0 7h40m
ita-by-ansible-legacy-role-vars-listup-6d8f98895f-bvjgn 1/1 Running 0 7h40m
ita-by-ansible-legacy-vars-listup-6ccd997cf-hvkzq 1/1 Running 0 7h40m
ita-by-ansible-pioneer-vars-listup-6cfcfd4479-8bqst 1/1 Running 0 7h40m
ita-by-ansible-towermaster-sync-6759486f8f-wrbbp 1/1 Running 0 7h40m
ita-by-cicd-for-iac-7b75cc56f5-rrrvg 1/1 Running 0 7h40m
ita-by-collector-7748d54f59-8j5r2 1/1 Running 0 7h40m
ita-by-conductor-regularly-779ff79775-xnt29 1/1 Running 0 7h40m
ita-by-conductor-synchronize-5d5485479-5df54 1/1 Running 0 7h40m
ita-by-excel-export-import-6f84f97dcf-hlm4h 1/1 Running 0 7h40m
ita-by-hostgroup-split-59b698f479-cxggd 1/1 Running 0 7h40m
ita-by-menu-create-796bdc9c75-l79zq 1/1 Running 0 7h40m
ita-by-menu-export-import-849d796bb5-5mpw2 1/1 Running 0 7h40m
ita-by-oase-conclusion-b484595d7-kssv4 1/1 Running 0 7h40m
ita-by-terraform-cli-execute-769d874d7-sknn6 1/1 Running 0 7h40m
ita-by-terraform-cli-vars-listup-7f589cdddc-g5xz6 1/1 Running 0 7h40m
ita-by-terraform-cloud-ep-execute-7f8b6d87cc-kfmfv 1/1 Running 0 7h40m
ita-by-terraform-cloud-ep-vars-listup-6cccbd4899-6frcn 1/1 Running 0 7h40m
ita-migration-1-3-6-lydz 0/1 Completed 0 7h40m
ita-web-server-b4cd4cdf8-wkx78 1/1 Running 0 7h40m
keycloak-0 1/1 Running 0 7h40m
mariadb-778786f7d-ss4cq 1/1 Running 0 7h40m
mongo-0 1/1 Running 0 7h40m
platform-api-ffb78f578-svd5t 1/1 Running 0 7h40m
platform-auth-75895d784-9hhxw 1/1 Running 0 7h40m
platform-job-864c47d4f-8vvvq 1/1 Running 0 7h40m
platform-migration-1-8-0-rjwr 0/1 Completed 0 7h40m
platform-web-6644884657-dmwp6 1/1 Running 0 7h40m
⑮Exastroインストール後の設定¶
危険
# Exastro IT Automation ENCRYPT_KEY
kubectl get secret ita-secret-ita-global --namespace exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
JnIoXzJtPic2MXFqRl1yI1chMj8hWzQrNypmVn41Pk8=
# Exastro Platform ENCRYPT_KEY
kubectl get secret platform-secret-pf-global --namespace exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
bHFZe2VEVVM2PmFeQDMqNG4oZT4lTlglLjJJekxBTHE=
export NODE_SVC_PORT=$(kubectl get services platform-auth --namespace exastro -o jsonpath="{.spec.ports[0].nodePort}")
export NODE_MGT_PORT=$(kubectl get services platform-auth --namespace exastro -o jsonpath="{.spec.ports[1].nodePort}")
export NODE_IP=$(kubectl get nodes --namespace exastro -o jsonpath="{.items[0].status.addresses[0].address}")
# *************************
# * Administrator Console *
# *************************
echo http://$NODE_IP:$NODE_MGT_PORT/auth/
# *************************
# * Service Console *
# *************************
echo http://$NODE_IP:$NODE_SVC_PORT
*************************
* Administrator Console *
*************************
http://172.16.20.xxx:30081/auth/
*************************
* Service Console *
*************************
http://172.16.20.xxx:30080
管理コンソール |
管理コンソールへのログイン¶
オーガナイゼーションの作成¶
ワークスペースの作成¶
kubespray及びExastroのインストール時にエラーが発生した場合の対応¶
#削除が完了するまでに数分かかることがあります
helm uninstall exastro --namespace exastro
#以下は5つの永続ボリュームを作成している場合の例です
kubectl delete pv pv-auditlog pv-gitlab pv-mongo pv-database pv-ita-common
#podが削除されたことを確認します
kubectl get pods -n exastro
#永続ボリュームが削除されたことを確認します
kibectl get pv
cd /tmp/kubespray
ls reset.yml
ansible-playbook -i inventory/k8s_cluster/hosts.yml reset.yml -b -v
#以下のメッセージが表示されるため、yesを手入力します
Are you sure you want to reset cluster state? Type 'yes' to reset your cluster.: