My Home NW Lab

逸般の誤家庭のネットワーク

BIG-IP SSLOのSSLO用RPMファイルの初回インストール処理をCLIから行う

BIG-IP SSLO (SSL Orchestrator)は、Web UIからメニュー: SSL Orchestrator > Configuration を押下した際にRPMファイルのインストール処理が実行されます。

BIG-IP SSLO (SSL Orchestrator)のインストール処理

しかし、検証で初期セットアップのたびにWeb UIを意図的に開くのは作業漏れを起こす可能性が出てくるため、CLI (Command Line Interface)からSSLO用RPMファイルのインストール処理を行う方法を整理しました。また本記事では合わせてアンインストールの方法も記載しております。

iControl LX REST API: /mgmt/shared/iapp/package-management-tasks

本記事内ではiControl LX REST API/mgmt/shared/iapp/package-management-tasks を用いて、QUERY, INSTALL, UNINSTALL のアクションを実行します。

clouddocs.f5.com

/mgmt/shared/iapp/package-management-tasks のclouddocsのドキュメント (2022年10月30日時点)

設定手順

検証時のバージョン

  • F5 BIG-IP Virtual Edition Version: 16.1.3

前提

本作業を行う前にSSLOモジュールを有効化しておきます。

下記はCLIからSSLOモジュールの有効化と、設定の確認を行うコマンドです。

tmsh modify sys provision sslo { level nominal }

tmsh list sys provision

要調整な可変パラメータ

環境によって変更が必要な可変パラメータは下記の通りです。

項目名 項目値 備考
Username admin
Password Pa$$w0rd
RPMファイル名 f5-iappslx-ssl-orchestrator-16.1.3-9.3.41.noarch v16.1.3 にデフォルトで含まれているRPMファイルです。

非同期処理に関して

/mgmt/shared/iapp/package-management-tasksAPIでの QUERY, INSTALL, UNINSTALL のアクションは非同期処理になっています。 動作イメージとしては、実行処理を依頼してから、その処理結果を別途問い合わせるようなイメージです。

「/mgmt/shared/iapp/package-management-tasks」 の非同期処理

INSTALLUNINSTALL の実行処理結果に関しては QUERY でパッケージのインストール状況を確かめれば代用が効きます。

QUERY

QUERY ではパッケージのインストール状況が確認できます。

QUERYの実行コマンド

QUERY の実行処理を依頼するコマンドは下記になります。

curl -s -u 'admin:Pa$$w0rd' -X POST http://localhost:8100/mgmt/shared/iapp/package-management-tasks \
     -d '{ "operation": "QUERY"}' | jq .

非同期処理のため QUERY を実行すると id が発番されます。結果を知るには selfLinkid が付与されたURLを辿る必要があります。

QUERYの出力例 (別途情報取得が必要)

QUERYでの情報取得まで (One Liner)

手動で結果の問い合わせコマンドを毎回組み立てるのは手間がかかりますし、作業ミスも発生しやすいので自動的に結果の情報を取得するOne Linerが下記になります。

curl -s -u 'admin:Pa$$w0rd' -X POST http://localhost:8100/mgmt/shared/iapp/package-management-tasks \
     -d '{ "operation": "QUERY"}' | jq .selfLink | xargs -n 1 curl -s -u 'admin:Pa$$w0rd' -k | jq .

QUERYでの情報取得まで (One Liner)

INSTALL

INSTALL ではパッケージのインストールを実行します。非同期処理のため実行結果を確認するには別途問い合わせが必要になります。適宜、QUERY で結果を確認してください。

INSTALLの実行コマンド

INSTALL の実行処理を依頼する一連のコマンドは下記になります。 本手順では、BIG-IP上にデフォルトで存在するRPMファイルを使用しているため、RPMファイル名のバージョン部分を適宜修正してください。

ls /usr/share/packages/f5-iappslx-ssl-orchestrator/f5-iappslx-ssl-orchestrator-*

cp -ipv /usr/share/packages/f5-iappslx-ssl-orchestrator/f5-iappslx-ssl-orchestrator-16.1.3-9.3.41.noarch.rpm /var/config/rest/downloads/

ls /var/config/rest/downloads/f5-iappslx-ssl-orchestrator-*


curl -s -u 'admin:Pa$$w0rd' -X POST http://localhost:8100/mgmt/shared/iapp/package-installer-tasks \
     -d '{ "operation": "INSTALL", "packageFilePath": "/var/config/rest/downloads/f5-iappslx-ssl-orchestrator-16.1.3-9.3.41.noarch.rpm"}' | jq .

INSTALLの実行例

インストール対象のRPMファイルは /var/config/rest/downloads/ 配下に保存しておいてください。それ以外のディレクトリからインストールを試みると失敗する場合があるのを確認しております。

K10190200: In some BIG-IP versions RPM installation will fail as a result of changing the installation directory
https://support.f5.com/csp/article/K10190200

UNINSTALL

CLIからアンインストールする方法も補足的に説明しておきます。

UNINSTALL ではパッケージのアンインストールを実行します。非同期処理のため実行結果を確認するには別途問い合わせが必要になります。適宜、QUERY で結果を確認してください。

UNINSTALLの実行コマンド

UNINSTALL の実行処理を依頼するコマンドは下記になります。

curl -s -u 'admin:Pa$$w0rd' -X POST http://localhost:8100/mgmt/shared/iapp/package-management-tasks \
     -d '{ "operation": "UNINSTALL", "packageName": "f5-iappslx-ssl-orchestrator-16.1.3-9.3.41.noarch"}' | jq .

UNINSTALLの実行例