0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Exastro IT Automation(v2.4)をインストールしてみた(Kubernetes)

Last updated at Posted at 2024-06-13

はじめに

今回は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版を参照してください。

exastro.yaml : 369行目
# 下記に対象のIPアドレスを入力
EXTERNAL_URL: "http://xx.xx.xx.xx:30080"
EXTERNAL_URL_MNG: "http://xx.xx.xx.xx:30081" 
exastro.yaml : 386行目
# 下記のコメントアウトを外す
  http:
    nodePort: 30080
  httpMng:
    nodePort: 30081
exastro.yaml : 438行目
size: 20Gi    # データベースコンテナ永続ボリュームのディスク容量を必要な容量に変更
exastro.yaml : 30行目
DB_ADMIN_PASSWORD: "password" # コンテナデータベースの root のパスワード(新規作成)
exastro.yaml : 61行目
DB_ADMIN_PASSWORD: "password" # コンテナデータベースの root のパスワード
exastro.yaml : 84行目
MONGO_ADMIN_USER: "root"         # OASE用データベースの管理者ユーザ(新規作成)
MONGO_ADMIN_PASSWORD: "password" # OASE用データベースの管理者ユーザのパスワード(新規作成)
exastro.yaml : 547行目
size: 20Gi    # OASE用データベース永続ボリュームのディスク容量を必要な容量に変更します。
exastro.yaml : 31行目
DB_USER: "itauser"        # Exastro IT Automation のアプリが使うDBユーザー
DB_PASSWORD: "password"   # Exastro IT Automation のアプリが使うDBユーザーのパスワード
exastro.yaml : 68行目
KEYCLOAK_DB_USER: "keycloakuser"  # Keycloak が使うDBユーザー
KEYCLOAK_DB_PASSWORD: "password"  # Keycloak が使うDBユーザーのパスワード
exastro.yaml : 62行目
DB_USER: "pfuser"         # Exastro 共通基盤が使うDBユーザー
DB_PASSWORD: "password"   # Exastro 共通基盤が使うDBユーザーのパスワード
exastro.yaml : 66行目
SYSTEM_ADMIN: "admin"                     # Exastro システムのシステム管理者のユーザー名
SYSTEM_ADMIN_PASSWORD: "password"   # Exastro システムのシステム管理者のユーザーパスワード
exastro.yaml : 43行目
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にアクセスすると画像のようにログイン画面にいくと思います。
こちらにシステム管理者の作成で作成したユーザーとパスワードを入力してログインします。
ログイン画面.png

4.Organization (オーガナイゼーション)の作成

それではログインが確認できたら、Organization (オーガナイゼーション) の作成を行っていきましょう。
オーガナイゼーションの作成はこちらを参考に実施していきます。
オーガナイゼーションの作成方法には、下記の2通りの方法があります。

  • 画面操作
  • Rest APIによる実行

上記の2つになります。今回はその中でも簡単な画面操作での作成をしていきましょう。

まずは、オーガナイゼーション管理→オーガナイゼーション一覧→作成ボタンを選択します。
オーガナイゼーション一覧.png

そうすると、以下の画像のようにオーガナイゼーションの作成に必要な情報を入力する画面が出てきますので、必要な項目を入力していきましょう。
オーガナイゼーション作成項目入力.png

入力を終えたら登録ボタンを選択し、オーガナイゼーションの作成を完了しましょう。
オーガナイゼーションへのアクセスは以下の書式を利用します。

http[s]://{Exastro Platform の管理用 URL}:{Exastro Platform の管理用ポート}/{オーガナイゼーションID}/platform/

5.Workspace(ワークスペース)の作成

最後にワークスペースの作成をしていきましょう。
ワークスペースの作成はこちらを参考に実施していきます。

まずは作成したオーガナイゼーションに管理者でログインします。
ログインするとワークスペース一覧という画面に飛びますので、こちらからワークスペースの作成をしていきましょう。
ワークスペース一覧.png

作成ボタンを押すと、以下の画像のようにワークスペースの作成に必要な情報を入力する画面が出てきますので、必要な項目を入力していきましょう。
ワークスペース作成項目.png

ワークスペースの作成が完了したら、ワークスペース一覧に戻って今作成したワークスペースを選択しましょう。選択したらITAの画面にいくはずです!無事準備完了!

6.まとめ

今回はHelm Chart版でのITA(v2.4.0)のインストールからITAを実際に使えるようになるまでの手順を実施してみました。次は実際にITAの各モードを触っていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?