0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VMWareやTerraform無しでAWSにCMLを構築する

Posted at

はじめに

なるべく前提ツール無しで、AWS上にCisco Modeling Labs(以下CML)の構築を試行してみたのでメモを残します。
よく知られている方法としては、ローカルのVMWareでovaから構築してAMIに変換する方法や、Terraformを用いて自動構築する方法がありますが、ローカルPCへのインストールが難しかったり、AWS上のSubnet構成を限定したかったりすることも多いので、それらの前提無しで構築できるか試してみました。

CMLの準備

今回はCML 2.8無償版を利用します。Cisco Software Downloadページから以下をダウンロードします。

  • cml2_f_2.8.1-14_amd64-35-pkg.zip
  • refplat-20241016-freetier-iso.zip

EC2インスタンス作成

AWS環境にて以下のインスタンスを作成します。

  • マシンイメージ:Ubuntu Server 24.04 LTS
  • インスタンスタイプ:m5zn.metal
  • セキュリティグループ:SSHを許可する設定
  • ストレージ(EBS):100GBもあれば十分

インスタンスタイプの種類は特に問いませんが、フレーバーはベアメタルを選択します。それ以外だとCMLで以下の警告が出てノードを立ち上げることが出来ません。
image6.png

CMLの構築

インスタンスへの接続

sshでインスタンスに接続します。ターミナルは何でも構いません。ユーザ名はubuntu、認証にはAWSで生成したキーペアを用います。
その際に、後々CMLの管理画面やUIにブラウザからアクセスするため、インスタンスの9090番ポートと443番ポートにポートフォワーディングの設定をしておきます。今回は、ローカルポートの19090番ポートと10443番ポートをそれぞれ対応付けます。
image7.png

CMLファイルの転送

ダウンロードした以下のファイルをインスタンスに転送します。転送方法はSCPでもS3経由でも構いません。

  • cml2_f_2.8.1-14_amd64-35-pkg.zip
  • refplat-20241016-freetier-iso.zip

CMLのインストール

CMLのパッケージを展開します。pkgファイルはtarアーカイブです。展開するとdebファイルが現れます。

sudo apt update
sudo apt install unzip
unzip cml2_f_2.8.1-14_amd64-35-pkg.zip
tar xvf cml2_2.8.1-14_amd64-35.pkg

その後、必要に応じて競合パッケージを削除後、CMLをインストールします。

sudo apt remove apport
sudo apt install ./cml2_2.8.1-14_amd64.deb ./iol-tools_0.1.14_amd64.deb ./patty_0.2.15_amd64.deb

途中の確認画面ではYesを選択します。
image5.png

管理コンソールへのログイン

次に、管理コンソールにログインするためのパスワードを設定します。Password Generator等で十分な強度のものを生成して使用します。

$ sudo passwd ubuntu
New password:
Retype new password:
passwd: password updated successfully

ブラウザを立ち上げてhttp://127.0.0.1:19090で管理コンソールページにアクセスします。ポート番号はポートフォワーディングの設定に対応します。
ユーザネームはubuntu、パスワードは先ほど設定したものでログインできます。
image2.png

Refplatの取り込み

次にRefplatのデータを取り込みます。sshのターミナルに戻り、Refplatのisoを解凍してmountします。

unzip refplat-20241016-freetier-iso.zip
sudo mkdir -p /media/iso
sudo mount ./refplat-20241016-freetier.iso /media/iso -o loop

管理コンソールの CML2 タブの Copy Refplat ISO をクリックして取り込みを開始します。
image9.png
image11.png
image8.png

CML UIへのアクセス

次にUIページにログインするためのアカウントを設定します。パスワードは管理コンソールとは別の、十分に強度のあるパスワードを使用します。

$ sudo /usr/local/bin/virl2-switch-admin.sh
New username[cml2]:
New password:
Repeat password:
The admin username and password have been replaced successfully

ブラウザの別のタブで、https://127.0.0.1:10443でCML UIにアクセスします。ポート番号はポートフォワーディングの設定に対応します。
ユーザネームは先程のスクリプトで変更してなければcml2、パスワードは設定したものでログインできます。
image10.png

sshの設定の見直し

CMLのインストールに伴い、sshdの設定が変更されています。引き続きインスタンスにsshでログインする場合は、以下ファイルの設定を変更しておきます。

sudo vim /etc/ssh/sshd_config

以下の2行のコメントアウトを外します。

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2

設定の変更を適用します。

sudo systemctl restart ssh

sshのポート番号も変更されています。こちらの変更も必要に応じて行います。

$ cat  /etc/ssh/sshd_config.d/sshd_virl2.conf
#
# This file is part of VIRL 2
# Copyright (c) 2019-2024, Cisco Systems, Inc.
# All rights reserved.
#
# In CML, port 22 is used by the virl2-sshd service for lab node console access
# Regular ssh service is moved to this port in turn
Port 1122

CML動作テスト

動作確認をしておきます。今回はお試しで2台のAlpine Linuxと1台のL2スイッチを接続し相互にPingが通ることを確認してみます。問題なく動いていますね!

image1.png

iol-l2-0の設定

enable
conf t

vlan 10

int Vlan10
  ip address 192.168.10.254 255.255.255.0
  no shut

int Eth0/0
  switchport mode access
  switchport access vlan 10
  no shut

int Eth0/1
  switchport mode access
  switchport access vlan 10
  no shut

alpine-0の設定

sudo ip addr add 192.168.10.1/24 dev eth0

alpine-1の設定

sudo ip addr add 192.168.10.2/24 dev eth0
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?