はじめに
今回は2024年5月にリリースされたExastro IT Automation(以下ITA)2.4.0のインストールを行ってみたいと思います。
Exastro IT Automationとは
Exastro IT Automation は、情報連携のミスやチーム間の情報伝達のコストを抑えるために、システムの構成情報であるパラメータや手順(IaC)を一元的に管理する仕組みを提供します。また、CMDB 上にシステムの過去・現在・未来のパラメータ情報を格納でき、作業手順書である IaC にパラメータを連携することで IaC の再利用性を高めることができます。
作業環境
- Exastro IT Automation v2.4.0
- Almalinux 8.5(サーバー用)
- Helm version v3.15.1
- kubectl version v1.29.5
作業手順
今回は、ITA v2.4.0をAlmalinux8.5上に、オールインワン構成でオンラインインストールを行っていきます。
コミュニティサイトではこの他に、Docker Compose版、Oase Agent版(Docker Compose、Kubernetes)など様々な手順が用意されています。
具体的な手順は以下のとおりです。
1.環境構築(Helmインストール、kubectlインストール、kindインストール、kindクラスタの作成)
2.ITAのインストール準備
3.ITA(v2.4.0)インストール
4.Organization (オーガナイゼーション)の作成
5.Workspace(ワークスペース)の作成
6.まとめ
1.環境構築
今回はAlmalinux8.5上にExastroSuiteコミュニティページにあるITA Kubernetes - Online版を参考にしてインストールします。
まず上記の手順を実行するために、前提条件にもある環境の構築をしていきます。利用する一般ユーザは sudoer で、全操作権限を持っている必要があります。
1-1.kubectlインストール
kubectlのインストールはこちらを参考にしています。
cat << _EOF_ > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
_EOF_
yum install -y kubectl
1-2.Helmインストール
Helmのインストールはこちらを参考にしています。
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
1-3.kindインストール(Kubernetes)
kindのインストールはこちらを参考にしています。
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.18.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
最後にkindクラスタの作成をしていきます。
mkdir ~/kind
cd ~/kind/
cat << _EOF_ >config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30080
hostPort: 30080
listenAddress: "0.0.0.0"
protocol: TCP
- containerPort: 30081
hostPort: 30081
listenAddress: "0.0.0.0"
protocol: TCP
extraMounts:
- hostPath: /var/data
containerPath: /var/data
_EOF_
kind create cluster --config=config.yaml
※ここのインストールには10分程度時間がかかりました。
Kubernetesの設定ファイルを出力
kind export kubeconfig
クラスタの確認
kubectl get nodes
→ 下記が出力されることを確認出来れば前提条件の環境構築完了です!
NAME STATUS ROLES AGE VERSION
kind-control-plane NotReady control-plane 18s v1.27.1
2.ITAのインストール準備
次にITAをインストールするため準備していきます。
ITAのインストール手順はこちらを参考に実施していきます。
2-1.Helmリポジトリの追加
Exastro システムは、以下の2つのアプリケーションから構成されています。
Exastro の全ツールは同一の Helm リポジトリ上に存在しています。
helm repo add exastro https://exastro-suite.github.io/exastro-helm/ --namespace exastro
helm repo update
2-2.デフォルト設定値の取得
投入するパラメータを管理しやすくするために、下記のコマンドから共通基盤 values.yaml のデフォルト値を出力します。
helm show values exastro/exastro > exastro.yaml
以降の手順では、この exastro.yaml に対してインストールに必要なパラメータを設定していきます。
パラメータの設定はITA Kubernetes - Online版を参照してください。
# 下記に対象のIPアドレスを入力
EXTERNAL_URL: "http://xx.xx.xx.xx:30080"
EXTERNAL_URL_MNG: "http://xx.xx.xx.xx:30081"
# 下記のコメントアウトを外す
http:
nodePort: 30080
httpMng:
nodePort: 30081
size: 20Gi # データベースコンテナ永続ボリュームのディスク容量を必要な容量に変更
DB_ADMIN_PASSWORD: "password" # コンテナデータベースの root のパスワード(新規作成)
DB_ADMIN_PASSWORD: "password" # コンテナデータベースの root のパスワード
MONGO_ADMIN_USER: "root" # OASE用データベースの管理者ユーザ(新規作成)
MONGO_ADMIN_PASSWORD: "password" # OASE用データベースの管理者ユーザのパスワード(新規作成)
size: 20Gi # OASE用データベース永続ボリュームのディスク容量を必要な容量に変更します。
DB_USER: "itauser" # Exastro IT Automation のアプリが使うDBユーザー
DB_PASSWORD: "password" # Exastro IT Automation のアプリが使うDBユーザーのパスワード
KEYCLOAK_DB_USER: "keycloakuser" # Keycloak が使うDBユーザー
KEYCLOAK_DB_PASSWORD: "password" # Keycloak が使うDBユーザーのパスワード
DB_USER: "pfuser" # Exastro 共通基盤が使うDBユーザー
DB_PASSWORD: "password" # Exastro 共通基盤が使うDBユーザーのパスワード
SYSTEM_ADMIN: "admin" # Exastro システムのシステム管理者のユーザー名
SYSTEM_ADMIN_PASSWORD: "password" # Exastro システムのシステム管理者のユーザーパスワード
enabled: true # 監査ログを永続ボリュームに出力する際は、こちらの設定が必要となるみたいです。
2-3.永続ボリュームの設定
データベースのデータ永続化 (クラスタ内コンテナがある場合)、および、ファイルの永続化のために、永続ボリュームを設定する必要があります。
ストレージ利用時には2つのパターンがあります。
- マネージドディスク
- Kubernetes ノードのディレクトリ
上記の2つになります。今回はその中のKubernetes ノードのディレクトリの設定値を当てはめていきたいと思います。
ITA Helm Chart版の「2.4.8. 永続ボリュームの設定」に載っているyamlファイルを作成しましょう。
詳細はマニュアルをご確認ください。
3.ITA(v2.4.0)インストール
3-1.永続ボリュームの作成
2-3で作成したマニフェストファイルを適用し、ボリュームを作成します。
kubectl apply -f pv-database.yaml
kubectl apply -f pv-ita-common.yaml
kubectl apply -f pv-mongo.yaml
kubectl apply -f pv-pf-auditlog.yaml
kubectl get pv
設定したマニフェストファイルが以下の出力結果になればOKです!
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-auditlog 10Gi RWX Retain Available 26s
pv-database 20Gi RWO Retain Available 19s
pv-gitlab 20Gi RWX Retain Available 5s
pv-ita-common 10Gi RWX Retain Available 9s
pv-mongo 20Gi RWO Retain Available 5s
3-2.インストール
インストール時にサービスの公開方法によって、アクセス方法が異なります。
Ingress, LoadBalancer, NodePort の3つのパターンがありますが、今回はNodePortのパターンでインストールを実施していきます。
まずはHelmコマンドを使ってKubernetes環境にインストールを実施していきます。
helm upgrade exastro exastro/exastro --install \
--namespace exastro --create-namespace \
--values exastro.yaml
次にインストール状況確認をしていきます。
コマンドラインから以下のコマンドを入力して、インストール(サービス起動)が完了していることを確認します。
kubectl get po --namespace exastro
※正常に起動するまで数十分かかりました。
次に暗号キーのバックアップを取っていきます。
下記で取得した暗号化キーをバックアップして、適切に保管しなければなりません。必ずメモを取っておきましょう!
kubectl get secret ita-secret-ita-global --namespace exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
kubectl get secret platform-secret-pf-global --namespace exastro -o jsonpath='{.data.ENCRYPT_KEY}' | base64 -d
次に接続確認を行っていきます。
3-2で実行した helm install の出力結果のコマンドをコンソール上に貼り付けて実行します。
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 の URL にアクセスします。
IPアドレスは自分の環境に合わせて入力しましょう。
URLにアクセスすると画像のようにログイン画面にいくと思います。
こちらにシステム管理者の作成で作成したユーザーとパスワードを入力してログインします。
4.Organization (オーガナイゼーション)の作成
それではログインが確認できたら、Organization (オーガナイゼーション) の作成を行っていきましょう。
オーガナイゼーションの作成はこちらを参考に実施していきます。
オーガナイゼーションの作成方法には、下記の2通りの方法があります。
- 画面操作
- Rest APIによる実行
上記の2つになります。今回はその中でも簡単な画面操作での作成をしていきましょう。
まずは、オーガナイゼーション管理→オーガナイゼーション一覧→作成ボタンを選択します。
そうすると、以下の画像のようにオーガナイゼーションの作成に必要な情報を入力する画面が出てきますので、必要な項目を入力していきましょう。
入力を終えたら登録ボタンを選択し、オーガナイゼーションの作成を完了しましょう。
オーガナイゼーションへのアクセスは以下の書式を利用します。
http[s]://{Exastro Platform の管理用 URL}:{Exastro Platform の管理用ポート}/{オーガナイゼーションID}/platform/
5.Workspace(ワークスペース)の作成
最後にワークスペースの作成をしていきましょう。
ワークスペースの作成はこちらを参考に実施していきます。
まずは作成したオーガナイゼーションに管理者でログインします。
ログインするとワークスペース一覧という画面に飛びますので、こちらからワークスペースの作成をしていきましょう。
作成ボタンを押すと、以下の画像のようにワークスペースの作成に必要な情報を入力する画面が出てきますので、必要な項目を入力していきましょう。
ワークスペースの作成が完了したら、ワークスペース一覧に戻って今作成したワークスペースを選択しましょう。選択したらITAの画面にいくはずです!無事準備完了!
6.まとめ
今回はHelm Chart版でのITA(v2.4.0)のインストールからITAを実際に使えるようになるまでの手順を実施してみました。次は実際にITAの各モードを触っていきたいと思います。