macOS で CML 2.6.0 の Breakout Tool を利用してコンソール接続する
Cisco CML に関して、以前に以下のメモを書きました。
- CML で Breakout Tool を使い、ローカルのターミナルからコンソール接続する
- macOS / Chrome / iTerm2 で CML の Breakout Tool からコンソール接続する
大きく変わったわけではありませんが、改めて現時点の (ほぼ) 最新である 2.6.0 での Breakout Tool インストール手順をメモしておきます。
Step.1¶
CML へログインし、Tools
→ Breakout Tool
をクリックします。
Step.2¶
左側のナビゲーションメニューから Download
をクリックします。
Step.3¶
自身の環境に合わせたバイナリをダウンロードします。 今回は Apple Silicon な mac で試したので、Apple Silicon 用のバイナリをダウンロードしました。
Step.4¶
ダウンロードしたバイナリは任意のフォルダに移動します。 今回はパスが設定済みの場所にすべく、/usr/local/bin/
へ移動しました。 また、ファイルの所有者や権限も修正しておきます。
1 2 3 |
|
Step.5¶
Breakout Tool はデフォルトで「IPv6 ローカルアドレスの TCP/8080」を Listen します。 私の環境では都合が悪かった為、明示的に「IPv4 ローカルアドレスの TCP/8080」を Listen するよう、事前に設定しておきます。 また、「CML のログイン情報」などは Breakout Tool の Web UI 上から設定出来るのですが、この時点で設定してしまいます (後ほど、Web UI から設定することも可能です)。 今回は設定ファイルの位置を ~/config.yaml
としますので、このファイルを以下の内容で新規作成します。
1 2 3 4 5 6 7 8 9 10 11 |
|
自身の環境に合わせて下記あたりは修正します。 尚、populate_all
はデフォルトで false
です。 この設定が false
の場合、「ノードの状態が started
なものだけを Breakout Tool 上に表示する」という動作をします。 私の場合は「started
以外のノードも表示させたい」ので true
を設定します。
項目 | 意味 |
---|---|
controller |
CML のアドレス |
password |
CML のログイン用パスワード |
username |
CML のログイン用ユーザ名 |
verify_tls |
CML 接続時に証明書の検証を行うか?を設定 |
Step.6¶
Breakout Tool を Web UI 付きで起動させるには以下のように実行します。 デフォルトでは設定ファイルを「Breakout Tool のバイナリと同じディレクトリ内で探す」という動作をします。 今回はユーザのホームフォルダに設定ファイルを保存している為、明示的に -config
や -labs
オプションで設定ファイルの位置を指定しています。
1 |
|
この実行方法でも問題は無いのですが、毎回ターミナルからコマンドを実行するのが面倒です。 そこで「Breakout Tool の起動」を Apple Script 化します。 Script Editor を起動し、New Document
をクリックします。
Script Editor に以下を起動します。 tell application "Terminal"
でターミナルを起動し、do script
で Breakout Tool を起動しています。
1 2 3 |
|
入力が完了したらファイルを保存します。 今回は以下の 3 点を指定しました。 今回、作成したスクリプトはファイル形式を「アプリケーション形式」にしつつ、/Applications
フォルダへ保存することで Raycast や Alfread のようなランチャーソフトから手軽に実行出来るようにしました。
項目 | 値 |
---|---|
ファイル名 | BreakoutTool.app |
保存場所 | Applications ディレクトリ |
ファイル形式 | Application 形式 |
Step.7¶
ランチャーソフトから起動する際の視認性を向上させる為、作成した .app ファイルのアイコンを任意のものに差し替えておきます。 作成した /Applications/BreakoutTool.app
の「ファイルの情報」を開くと以下のように表示されます。
デフォルトでは「巻物 (スクロール)」のようなアイコンが表示されています。 ここに任意のアイコンをドロップすることでアイコンを差し替えることが出来ます。 今回は flatficon さんが提供しているアイコンを利用させて頂きました。 (※ このアイコンを無償利用する場合は「Connected icons created by HJ Studio - Flaticon」というクレジットを記載しておきなさい、ということでしたの転記させて頂きます)
Step.8¶
初回起動時だけ、以下のようにセキュリティの警告が表示される場合があります。 これは OK
をクリックします。
Step.9¶
私は普段、ターミナルソフトウェアとして iTerm2 を利用しているのですが、TELNET プロトコルハンドラーが (iTerm2 では無く) macOS 標準の Terminal に関連付けられていました。 これを変更する為、iTerm2 でデフォルトとは別に「TELNET」という名前のプロファイルを作成しました (※ 今回は既存の「★Default」プロファイルを複製しました)。 新規作成したプロファイルは Command
から Command
を選択し、右側に以下の文字列を入力します。 現在の macOS は TELNET が標準で付属しない為、Homebrew でインストールした為、/opt/homebrew
配下に TELNET のバイナリが存在します。 また、$$HOME$$
と $$PORT$$
は各々、「ホスト名」と「ポート番号」を意味するマジックワードです。
1 |
|
ここまで入力出来たら下部の URL Schemes
から telnet
を選択します。 これで TELNET ハンドラーが iTerm2 と紐付けられます。
TELNET ハンドラーの関連付け変更に関する警告が表示されます。 OK
をクリックします。
これで「ブラウザ上から TELNET のリンクをクリックすると iTerm2 が起動される」為の準備は完了です。
Step.10¶
作成したアプリケーション /Applications/BreakoutTool.app
をクリックして Breakout Tool を起動します。 この状態でブラウザから http://127.0.0.1:8080 へアクセスすると Breakout Tool の Web UI が表示されます。 本来は Web UI 右上にある Configuration
から CML と接続する為の設定を行うのですが、事前に設定済み (~/config.yaml
ファイルに定義済み) である為、ここでは CML との接続設定を省略することが出来ます。
デフォルトでは何も表示されないのですが、画面右上にあるリフレッシュマーク (下記側の赤枠部分) をクリックすると定義済みのラボが表示されます。
ラボが表示されても、デフォルトでは Status
が Off
になっており、Breakout Tool から接続することが出来ません。 Status
部分をクリックして On
にします。
次はラボ名をクリックします。
するとノードの一覧と Links
の一覧が表示されます。 コンソール接続したいノードの Links をクリックすると iTerm2 上で TELNET が起動し、指定したノードへコンソールアクセスすることが出来ます。
これは「コンソール接続」ですので、TELNET や SSH のようにセッションを完全に終了することは出来ません。 その為、不要になれば iTerm2 のタブ自体を閉じてしまって問題ありません。