pyATS の GUI である XPRESSO をインストールする
XPRESSO はネットワークテストの自動化ツールである pyATS にブラウザからアクセス可能な UI を提供します。 今回は XPRESSO のインストール手順をメモしておきます。 尚、タイムゾーンの指定など、設定に関しては省略しており、インストール手順までだけをメモしています。
要求スペック¶
Requirements に要求スペックは以下と記載されていました。 スペックの低い環境で動作させると「一部のコンテナが正常に起動しない」等の状態になるようです (なりました)。
- Linux/macOS environment
- Docker installed and in working condition
- Free disk space for log storage
- Minimum System Spec:
- 4 CPU (with hyper-threading)
- 16G memory
- Ideal System Spec:
- 12 CPU
- 64G memory
上記も踏まえ、今回は以下の環境で検証しました。
- Ubuntu 22.04LTS
- 12CPU
- 16GB Memory
Docker Engine / Docker Compose のインストール¶
今回は Docker Compose を使い、XPRESSO をコンテナとして動作させますので、予め Docker Engine / Docker Compose をインストールしておきます。 Ubuntu への Docker インストール手順は過去に書いた以下のメモ、または公式サイトを参考にします。
- Install Docker Engine on Ubuntu ※ 公式サイト
- Ubuntu 22.04.2LTS へ docker / docker-compose / docker-purge をインストールする
公式サイトの手順では Docker Engine と共に Docker Compose もパッケージでインストールしているのですが、現時点でパッケージ版のバージョンは 2.21.0 でした。 Docker Compose の GitHub にある最新版はバージョの 2.23.0 なので (公式サイトでは無い) 私のメモでは「Docker Compose は別途、GitHub からインストールする」手順にしています。
vm.max_map_count の拡張¶
GitHub に注意点として下記が記載されています。
[ WARNING ]: in linux servers, make sure the max_map_count is set to at least 262144, ie vm.max_map_count=262144. See elastic documentation for details.
また、XPRESSO の Issue に登録されている admin/admin not working #45 は「初期ユーザでログイン出来ない」というものですが、この Issue には以下と書かれています。
Reboot your server and than start again the EXpresso as advised in the § 4. "Start you engine" in the https://github.com/CiscoTestAutomation/xpresso#readme After that I was able to log in as described. The reboot may be especially important if the initial setup modified the sysctl.conf file (vm.max_map_count=262144) and if during the first start-up a lot of updates was installed.
XPRESSO は内部的に Elastic を利用している為、上述の通り vm.max_map_count
の値を増やす必要があります。 XPRESSO には後述するセットアップスクリプト (setup.sh
) が同梱されており、このスクリプト内で vm.max_map_count
を修正することは可能なのですが、同スクリプト中では「値の修正は行っているが、反映はしていない」状態のようです。 その為、予め手動で vm.max_map_count
を修正しておきます。 私の環境ではデフォルト値は 65,530 でした。
1 2 |
|
XPRESSO (や Elastic) のドキュメントに書かれている内容に従って vm.max_map_count
の値を増やします。
1 2 |
|
XPRESSO のインストール¶
XPRESSO をインストールします。 まず、GitHub からダウンロードします。
1 2 |
|
過去、docker compose のバイナリは docker-compose
という独立したバイナリでしたが、現在は docker compose
のように「docker
のサブコマンド」として動作します。 XPRESSO にはセットアップスクリプトである setup.sh
が同梱されていますが、このスクリプト中では過去の形式である docker-compose
を前提にかかれています。 以下のように実行し、この部分を「docker-compose
→ docker compose
」へ置換します。
1 |
|
セットアップスクリプトを実行します。 セットアップスクリプトには引数として「外部からアクセスさせたい URL」(ADVERTISED_URL
) を指定して実行します。 途中で「vm.max_map_count
を修正するか?」と問われますが、事前に手動で修正・反映している為、ここでは no
を入力して続行します。 必要なコンテナイメージをダウンロードするので実行完了までしばらく時間がかかります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
いよいよコンテナを起動させます。 GitHub の 4. Start Your Engine
に下記のように記載されています。
It may take a while for the initial settings to be automatically applied while the system boots for the first time. This may mean you could not login using the default credentials for a few minutes. Give it some time (eg, 5-10min on a 2016 MacBook Pro 15)
その為、実行環境のスペックに依存すると思われますが、コンテナ起動直後しばらく (10 〜 15 分程度?) は放置しておき、初期化作業が完了するまで待った方が良いかもしれません。 Docker Compose でコンテナを起動させ、私の場合は 15 分程度放置しておきました。
1 |
|
XPRESSO へのログイン¶
セットアップスクリプト実行時に ADVERTISED_URL
として指定した URL へブラウザでアクセスすると XPRESSO の画面が表示されます。 画面右上の Login
をクリックします。
ログイン画面が表示されます。
デフォルトのログイン情報は以下です (ユーザ名・パスワードの両方とも admin
)。
初期ユーザ名 | 初期パスワード | |
---|---|---|
値 | admin |
admin |
ユーザ名とパスワードを入力したログインします。
初回ログイン時はドキュメントが表示されるようです。
以降は Requests の画面が表示されました。
参考¶
初期状態の setup.sh¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
|