17
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シスコ CSLU アプリをコンテナで動かしてみた!

Last updated at Posted at 2024-12-01

この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2024 の 2 日目として投稿しています。
2024 年版: https://qiita.com/advent-calendar/2024/cisco

はじめに

シスコ製品はスマートライセンスというライセンス管理手法を使っています。スマートライセンスを登録する際、デバイスが直接インターネット上の管理サイトにアクセスできれば良いのですが、そうでない場合はオンプレミスで中継をするためのアプリケーションを使います。

今回使用する CSLU (Cisco Smart Licensing Utility) は、スマートライセンスの中でも SLP (Smart License using Policy) に対応している製品がインターネットに直接接続できないときに、オンプレミスで仲介するソフトウェアになります。

現在 CSLU は Windows 用の EXE、Debian 系のための deb、Redhat 系のための RPM の 3 つのファイル形式で提供されています。ということはコンテナで動くのではないかと思い、ここでは deb パッケージをコンテナで動かす方法をまとめます。

免責

本記事で紹介する方法はあくまでも試験的な動作確認を目的としています。商用での使用は正規のインストールガイドに沿った方法で実施をお願いいたします。また本記事を参考にしたことにより生じるいかなる問題に関しましても、筆者は一切責任を負いません。

CSLU のダウンロード

CSLU ソフトウェア自体は、下記からダウンロードできます。deb パッケージは 90MB とそれほど大きくもありません。
https://software.cisco.com/download/home/286285506/type/286327971/release/2.3.0

01-download-site.png

Ubuntu の準備

CSLU を動かすためには、ベースとなる Linux が必要です。さらに CSLU は GUI アプリのため、X サーバおよび Window Manager が必要です。これらを動かす良いコンテナがないか調べていたところ、@takahashiakari さんが素晴らしいイメージを作られていたので、これを使わせていただきます。

今回このイメージを使う理由は下記の通りです。

  • Debian 系の Linux イメージであること
  • X サーバおよび Window manager をインストール済みであること
  • ブラウザ経由のVNCが使えること
  • Dockerfile が公開されていること
  • できるだけ軽いこと

実際の手順

ここからは実際の手順の詳細です。docker のホストは Ubuntu 24.04.01 サーバを使い、インストール直後から手順をまとめます。

まず docker をインストールします。これは snap 一行で完了です。簡単ですね。

$ sudo snap install docker

また docker コマンドを実行するたびに sudo を打つのは面倒なので、
下記を実施して一度再起動しておきます。

$ sudo groupadd docker
$ sudo usermod –g docker <username>

次に前述の Ubuntu イメージを取得、起動します。ポートを 2 つ公開していますが、それぞれ下記の用途です。

  • 6080: ブラウザ経由での VNC 接続用
  • 8182: デバイスからの SLP ライセンス登録用
$ docker run -itd --platform=linux/amd64 --name cslu-ubuntu -p 6080:6080 -p 8182:8182 akarita/docker-ubuntu-desktop

起動したらブラウザでのアクセスを試します。
http://[ip-address]:6080/vnc.html

アクセスしてターミナルを開けたら成功です。

02-access.png

CSLU のインストールと起動

次に CSLU をコンテナにコピーします。ここでコピー先は /var など、root ユーザ以外でもアクセスできる場所にしておくことがポイントです。

$ docker cp CSLU_Installer_2.3.0_amd64.deb cslu-ubuntu:/var

/root など、root しかアクセスできない場所では動かないため注意が必要です

コンテナ内での操作

ここから先はコンテナ内での操作になります。
まず apt-get update 実行後、libgbm-dev をインストールしておきます。

# apt-get update
# apt-get install -y libgbm-dev

次に /var に移動して、CSLU パッケージをインストールします。

# apt-get install -y ./CSLU_Installer_2.3.0_amd64.deb

この時点で Xfce に CSLU application のメニューはできますが、このままでは起動しません。
コンテナでは root ユーザが基本になりますが、CSLU application を root で起動する際は no-sandbox オプションが必要だからです。そのために下記の作業を行います。

まず、cslu の実行ファイルを別の名前にします。ここでは cslu_app にします。

# cd /opt/CSLU
# mv cslu cslu_app

次に、下記のような bash スクリプトを cslu というファイル名で保存します。

#!/usr/bin/bash
/opt/CSLU/cslu_app --no-sandbox $1

そして、そのファイルに実行属性をつけます。

# chmod 755 cslu

これで Xfce のメニューから cslu を起動してみます。

03-run.png

無事に起動したら成功です!

04-success.png

その後 CSLU のマニュアルに従いログイン、Smart Account、Virtual Account を設定し、デバイスからの登録を行えば動作します。

05-device.png

最後に

CSLU をコンテナで動かすというニーズはなかなかないかもしれませんが、これでスマートライセンスの活用がより容易になるといいなと思います。皆様、素晴らしい年末年始をお過ごしください。

17
1
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
17
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?