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

More than 3 years have passed since last update.

CML2を使いこなす。(その11:Node Definitionsの設定)

Last updated at Posted at 2021-08-28

はじめに

CML2にはCisco機器のOSイメージ以外に、AlpineUbuntu等のサーバ用イメージも標準で付属されていますが、WindowsのマシンイメージやRHEL系のマシンイメージは付属されておりません。

標準で付属しているマシンイメージでは足りない場合に、独自のカスタムイメージを導入する方法を紹介しようと思います。

カスタムイメージについて

CML2ではKVM等のディスクイメージとして使われるqcowqcow2のファイル形式に対応しています。

最近はISOのディスクイメージだけではなく、クラウド用のイメージとしてqcow2の形式で公開されているOSも多いことから、qcow2形式で公開されている最新のOSをCML2に導入したり、独自で作成したKVMのイメージを使ったりすることができるようになっています。

カスタムイメージ登録方法

カスタムイメージを登録するためにはカスタムイメージのアップロード、カスタムイメージ用の設定情報の作成とカスタムイメージの情報登録が必要となります。

カスタムイメージ用の設定情報(Node Definitions)とカスタムイメージの登録情報(Image Definitions)は内部的にはyamlのファイル形式で設定されており、Node Definitionsについては前もって準備しておけばファイルをインポートすることも可能です。

内容 ファイル形式
カスタムイメージ qcow,qcow2
Node Definitions yaml(インポート可)
Image Definitions yaml(インポート不可)

今回は以下で公開されているCentOSのクラウドイメージを登録してみます。

【CentOS8クラウドイメージ 】
https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2

Node Definitions設定の構成

Node Definitionsを登録するといっても設定項目がたくさんあり、初見では何をどのように登録すればよいか分かりづらいため、デフォルトで登録されているUbuntuの設定を見ながら読み解いていこうと思います。

尚、以下項目はCML2の管理画面からTOOLSNode and Image DefinitionsUbuntuより確認できます。

各項目の詳細は以下公式ドキュメントを参照。

General

項目名 Ubuntuでの設定例 説明
ID ubuntu 内部ID。画面表示名ではない
Description Ubuntu Cloud Init Platform Node Definitionsに表示されるコメント
Nature server ノード種別
Available image definitions UBUNTU 20.04 - 24 FEB 2021 紐付けられているImage Definitions名

一番最初の項目になるので、IDが画面表示される際の名前と思いきや、画面表示名ではありません

どうやらCML2ホストの/var/lib/libvirt/image/node-definitions/配下に作成されるNode DefinitionsのYamlファイル名として使われるようです。

Natureは特にどれを選んでも動作に影響は無いようですが、どのような種別のノードなのかを判断するために指定するようです。

User Interface

項目名 Ubuntuでの設定例 説明
Visible 有効 ADD NODESでの表示項目を減らす?
Description (Markdown) ※下記参照 ADD NODESで表示されるコメント
Prefix ubuntu- Workbench上のノードプレフィックス
Icon server 画面上アイコンの種類
Label Ubuntu Node Definitionsに表示される表示名

VisibleWorkbench画面のADD NODESで表示される項目数の表示有無の設定のようですが、設定の違いが分かりませんでした・・・

Description (Markdown)は以下ADD NODESでカーソルをノードに合わせたときに表示されるコメントになり、マークダウン形式で記載することができます。

capture_16082021_071555.jpg

PrefixWorkbench上にノードを配置した際に表示されるノード名を示しており、ハイフンの後ろにノードの番号が付与されます。

LabelNode Definitions画面で表示される表示名となるため、ユーザが見たときに分かりやすい名前にするのが良いでしょう。

Linux Native Simulation

項目名 Ubuntuでの設定例 説明
Domain Driver KVM 仮想化ドライバ
Simulation Driver server シミュレーションドライバ
Disk Driver VirtIO ディスクドライバ
Memory 2048MiB メモリサイズ
CPUs 1 CPU数
CPU Limit - (100%) 最大CPU使用率
Network Driver VirtIO ネットワークドライバ
Data Disk Size 0GiB データ用ディスクサイズ
Boot Disk Size 64GiB ブート用ディスクサイズ
Video Model No Video Adapter ビデオカード設定
Video Memory - ビデオメモリサイズ

KVM等で仮想マシンを作成する際にも設定する各種ドライバ設定となります。

Simulation Driverはドライバ種別を指定するようですが、サーバ用途ならserverを選択しておけば問題ないかと思われます。

CPUやメモリは使うイメージに合わせて設定、ディスクサイズは1ディスクで問題なければData Disk Sizeには入力せず、Boot Disk Sizeのみサイズを入力するようにします。

CPU LimitUbuntuでは値無しとなっていますが、ユーザが登録する場合は20~100%の範囲で設定しないと登録できないようなので、100%(制限なし)とします。

Interfaces

項目名 Ubuntuでの設定例 説明
Has a Loopback Interface 無効 ループバックインタフェースの要否
Number of serial ports 1 シリアルポート番号
Default number of physical interfaces 1
インタフェース名 ens3~ens10 使用可能なインタフェース数

Has a Loopback Interfaceはループバックインタフェースが必要な場合に有効にする設定となりますが、Cisco系ノードの設定時のみ必要となる設定のため、Cisco系ノード以外では無効にしておきます。

Number of serial portsはシリアルポート数の指定となり、指定数分シリアルポートが作成されます。

Default number of physical interfacesはデフォルトで作成されるインタフェース数となりますが、Workbench上で「インタフェース名」で指定した数分、接続&設定することができるため、サーバ系では数にあまり意味が無いようです。

Cisco系ノードの場合は未接続ポートのコンフィグが生成されないため、show running-config等で出力されるコンフィグを減らすことができます。

インタフェース名Workbenchで別の機器とポート接続する際に表示されるポート数とポートの表示名となります。

以下のように画面上で表示される名前とポート数を示すだけのようなので、実際のインタフェース名と合わせる必要はありません。

capture_15082021_175234.jpg

Boot

項目名 Ubuntuでの設定例 説明
Timeout 180 seconds タイムアウト時間
Boot文字列1 Cloud-init target ブート完了と見なす文字列
Boot文字列2 Welcome to Ubuntu ブート完了と見なす文字列
Boot文字列3 running 'modules final' at ブート完了と見なす文字列

CML2ではBootが正常に完了したかを確認するために、コンソールに表示される文字列をOR条件でチェックしており、指定した文字列が表示されたらブートシーケンスが完了したと判断しています。

また、上記文字列が確認できなかった場合はTimeout秒数分経過した後、正常に起動完了したとみなします。

上記の場合、Boot文字列1~Boot文字列3のいずれかがコンソール上に表示された場合、もしくはTimeout秒数分経過したら正常に起動したとみなし、Workbench上のノードステータスを起動中に遷移させます。

尚、起動完了を判断するためのBoot文字列は設定しなくても問題ありませんが、Timeoutは必須項目となっているため、仮想マシンの起動時間を考慮して適当な値を設定します。

pyATS (optional)

項目名 Ubuntuでの設定例 説明
Enable pyATS 有効 pyATSの有効化
Use in Testbed 有効 テストベッドでの使用有無
Operating System linux OS種別
Series - シリーズ名
Model - モデル名
Username - ログインユーザ名
Password - パスワード
Config extract command -

本項目はpyATSを使用する場合に設定するログイン情報や実行コマンドを設定する項目となり、pyATSを使用しないなら不要となるものとなります。

pyATSは使ったことが無いため詳細は割愛しますが、正常性確認を自動化するツールとなるようです。

Property Inheritance

Image Definition

項目名 Ubuntuでの設定例 説明
RAM 有効 Image Definitionsの値の継承
CPUs 有効 Image Definitionsの値の継承
CPU Limit 有効 Image Definitionsの値の継承
Boot Disk Size 有効 Image Definitionsの値の継承
Data Disk Size 有効 Image Definitionsの値の継承

Per-node

項目名 Ubuntuでの設定例 説明
RAM 有効 ノード個別の値の継承
CPUs 有効 ノード個別の値の継承
CPU Limit 有効 ノード個別の値の継承
Boot Disk Size 有効 ノード個別の値の継承
Data Disk Size 有効 ノード個別の値の継承

各種リソース情報について、何を継承するかを示す項目となります。

CML2では最初にWorkbenchに配置されたノードに個別定義しているリソース情報が無いかを確認し、次にImage Definitionsで定義された値をチェック、最後にNode Definitionsで定義された値を使用する仕様となっています。

Cisco系では1つのNode Definitionsに複数のImage Definitionsが結びついている定義があるため、各バージョンでリソースの使用量を使い分けたい場合に有用です。

Configuration

項目名 Ubuntuでの設定例 説明
Configuration Generator - Build Initial Bootstrap Configurationsをクリックしたときに生成されるコンフィグを使用するかどうか。

ラボの「DESIGN」にある「BUILD INITIAL BOOTSTRAP CONFIGURATIONS」を選択したときに既定のコンフィグを使用するかの設定。

以下スクリーンショットの通り、特定のノードタイプしか選べませんが、タイプを指定して「BUILD INITIAL BOOTSTRAP CONFIGURATIONS」を選択することである程度基本的な設定がされたコンフィグ(例えばユーザ、パスワード設定等)を読み込ませることができます。

capture_18082021_074009.jpg

Provisioning

項目名 Ubuntuでの設定例 説明
Enable provisioning 有効 初回起動時のプロビジョニングを有効にするか
Media Type ISO メディアタイプ
Configuration Disk Volume Name cidata Media Typeで指定したボリュームのボリューム名
Name meta-data ファイル名
Editable 無効
Content ※下記参照 ファイルの内容
Name user-data ファイル名
Editable 有効
Content ※下記参照 ファイルの内容
meta-dataの内容
instance-id: ubuntu
local-hostname: ubuntu
user-dataの内容
#cloud-config
hostname: inserthostname_here
manage_etc_hosts: True
system_info:
  default_user:
    name: cisco
password: cisco
chpasswd: { expire: False }
ssh_pwauth: True
ssh_authorized_keys:
   - your-ssh-pubkey-line-goes-here

初回起動時に実行する自動構成機能を使うかの設定。

Ubuntuの場合はISO形式のボリュームを読み込み、cloud-initを実行するような設定が定義されています。

おわりに

長くなったので、今回はNode Definitionsの説明までとします。

次回は実際にCentOSのカスタムイメージを登録してみようと思います。

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