Kubernetes(k8s)環境を使用したAWX構築(Almalinux版)

Linux

はじめに

「AWX」は、Red Hat Ansible Automation Platformのアップストリームプロジェクトの1つで、サポートはありませんが無償で使用できるコミュニティ版のAnsibleです。
「AWX Operator」は、AWXをインストールするために推奨されている方法の1つで、Kubernetesクラスターにデプロイされることを意図して作成されています。
本記事では、Almalinuxで構築したKenernetes(k8s)環境上に「AWX」を構築する方法について記載します。

環境

  • OS
    AlmaLinux release 9.5 (Teal Serval)
  • Container Runtime Interface(CRI)
    Containerd v2.0.4
  • Kubernetes(k8s)
    v1.32
  • Container Network Interface(CNI)
    calico v3.29.2
  • AWX
    AWX 2.19.1

事前準備

makeのインストール

1.デプロイするために、「make」をインストールします。

NFSサーバのインストール

本記事では、AWXのPostgres用ボリューム及びProjects用ボリュームとして、NFSボリュームを使用するため、NFSサーバをインストールします。

「Worker Node」に、「nfs-utils」をインストールすることを忘れないように注意してください。
AWXは、「Control Plane」ではなく「Worker Node」で実行されるため、「Worker Node」からNFSマウントが行える必要があります。
事前に「Worker Node」からNFSマウントができることを確認して置いてください。

2.NFSサーバを起動します。

3.サービスが起動していることを確認します。

AWXのインストール

AWX Operatorのインストール

1.「AWX Operator」のGitリポジトリをクローンします。

2.「git tag」を選択し、インストールするバージョンを選択します。
  ここでは、「git tag:2.19.1」を選択します。

3.ターゲットをmakeして、「awx operator」を作成します。

4.「awx operator」が実行されていることを確認します。

5.kubectl の現在の名前空間を「awx」に設定します。
  (※「-n awx」を繰り返し、指定する必要がなくなります。)

NFSボリュームの作成

AWXで使用するPostgres用ボリュームとして、NFSボリューム「/share/postgres」、プロジェクト用ボリュームとして、NFSボリューム「/share/projects」をそれぞれ作成します。

1.NFSサーバ使用するディレクトリを作成します。

2.NFSサーバでexportsするディレクトリを設定ファイルに記載します。

3.NFSサーバに変更した内容を反映します。

4.所定のディレクトリがexportsされていることを確認します。

Postgres用PersistentVolumeの作成

1.Postgres用PersistentVolumeを作成するためのyamlファイルを作成します。
  NFSサーバのボリューム「/share/postgres」を使用します。

2.Kubernetes上にPostgres用PersistentVolumeを作成します。

3.作成されたことを確認します。

Postgres用StorageClassの作成

1.Postgres用StorageClassを作成するためのyamlファイルを作成します。

2.Kubernetes上にPostgres用StorageClassを作成します。

3.作成されたことを確認します。

Projects用PersistentVolumeの作成

1.Projects用PersistentVolumeを作成するためのyamlファイルを作成します。
  NFSサーバのたボリューム「/share/projects」を使用します。

2.Kubernetes上にProjects用PersistentVolumeを作成します。

3.作成されたことを確認します。

Projects用PersistentVolumeClaimの作成

1.Projects用PersistentVolumeClaimを作成するためのyamlファイルを作成します。

2.Kubernetes上にProjects用PersistentVolumeClaimを作成します。

3.作成されたことを確認します。

Projects用StorageClassの作成

1.Projects用StorageClassを作成するためのyamlファイルを作成します。

2.Kubernetes上にProjects用StorageClassを作成します。

3.作成されたことを確認します。

AWXのデプロイ

1.同じフォルダーに「AWX」をデプロイするための「my-awx.yml」ファイルを作成します。
  ここでは、リソース名として「my-awx」、サービスタイプとして「nodeport」を使用します。

2.「AWX」をデプロイします。

3.インストールの進行状況を確認するには、以下のコマンドを実行します。
  インストールには、しばらく時間がかかります。
  「PLAY RECAP ***~」が表示されれば、インストールプロセスが終了しています。

4.リソースが作成されていることを確認します。

AWXの接続確認

AWXインスタンスへのアクセスは、「http://<Control PlaneのIPアドレス>:<assigned-nodeport>/」でアクセスすることができます。

Control PlaneのIPアドレスの確認

1.Kubernetesの「Control Plane」のURLを確認します。
  以下の場合、Control PlaneのIPアドレスは、「192.168.10.50」であることが確認できます。

NodePortの確認

1.「AWX Service」を確認し、割り当てられた「NodePort」を確認します。
  以下の場合、「NodePort」は、「32186」です。

初期パスワードの取得

1.初期パスワードは、「<resourcename>-admin-password」のシークレットで取得することができます。

アクセス確認

1.確認した「Control PlaneのIPアドレス」、「NodePort」を使用して、AWXにアクセスしログインできることを確認します。
  ユーザーIDは、「admin」、初期パスワードは、確認したパスワードです。

URL: http://192.168.10.50:32186/

以上で、終了です。

タイトルとURLをコピーしました