それでも僕はラズパイでAWXを動かしたい


ラズパイを使ってk8sクラスタを作ってるのを見て「ラズパイでAnsibleクラスター作ったら面白いかも」と思ってこんなのを作りました。

で、単純にAnsibleを入れて動かすだけでは物足りないので、k3s入れてAnsible Towerアップストリーム版の AWX をラズパイで動かしてみよう!と思って実際にやってみたら色々ハマりました。。。
けど、一応動くところまでは出来たので構築方法について書いてみようと思います。

環境

環境は以下のものを使用します。

イメージ図

k3sクラスタとコンテナ配置のイメージです。
k3s-node01はUSBの外付けSSDを使用しています。
理由は、AWXのPodを動かすのにメモリーが足りなくてSWAPを使うため、なるべく速いストレージにしたかったからです。

構築手順

PostgreSQLのデプロイ

デプロイ準備

PostgreSQLはk3s-node02で動作させます。
そのため、DBを保存するディレクトリを作成します。
ここでは /opt/data に保存させます。

デプロイ

PostgreSQLのデプロイ用マニフェストを作成します。

今回はNodePortで接続させるためPostgreSQLのサービス用マニフェストを作成します。

namespaceを作成します。

PostgreSQLのコンテナをデプロイします。

Podが起動しているか確認します。

DBの設定

AWX用のユーザーDBを設定します。
ここでは、アカウントとパスワードはAWXのinventoryに書かれているデフォルトのもので設定しています。

アカウント パスワード
awx awxpass

PostgreSQLの遠隔接続設定を変更します。

遠隔接続確認

必要であれば遠隔から接続できるか確認します。
接続するためのポートを確認します。
ここでは 32654 でアクセスができます。

接続確認してみます。

SWAPファイルの作成

標準のSWAPサイズでは足りないためk3s-node01で拡張します。

AWXのデプロイ

必要なパッケージのインストール

master側に必要なパッケージをインストールします。

リポジトリクローン

AWXのリポジトリをクローンして指定したバージョンのブランチを作成します。

各ファイルの修正

inventory ファイルを修正します。

roles/kubernetes/defaults/main.yml を修正します。
AWX/rabbitmqイメージと各コンテナの必要スペックを変更します。
AWXのイメージは以下のものを使用します。

デプロイ

AWXをデプロイします。

AWXへアクセス

Webアクセスするポートを確認します。
ここでは 30355 です。

http://クラスタのどれかのホストIP:30355 へアクセスしてログイン画面が表示されるか確認します。

inventoryで設定したアカウントとパスワードでログインできるか確認します。
デフォルトは以下のものです。

アカウント パスワード
admin password

結果

一先ず、ラズパイでAWXを動かすことはできました。
しかし、スペックがやっぱり足りないので動作が結構もたつきます。。。
今後ももう少しチューニングでなんとかならないか手が空いたら色々試してみようと思います。

ちなみに体感はこんな感じです。

AWX on Raspberry pi from sky_joker on Vimeo.

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください