はじめに
前回はカスタムイメージを登録する際に設定するNode Definitions
の設定項目について読み解きました。
今回は実際にカスタムイメージ用のNode Definitions
を設定して、実際にカスタムイメージを動作させてみようと思います。
カスタムイメージ導入前の準備
前回説明した通り、今回は以下で公開されているCentOSのクラウドイメージを使用します。
【CentOS8クラウドイメージ 】
https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2
尚、上記クラウドイメージは1.2GB程度あり、さらにカスタムイメージを起動した際にシンプロビジョニング方式でディスクが使われるため、CML2
ホストマシン側のディスク容量が少ない場合は以下を参考にディスク容量を増やしておきましょう。
カスタムイメージ用Node Definitionsの設定
CML2
の画面より「TOOLS」→「Node and Image Definitions」を選択し、「NODE DEFINITIONS」から「ADD」を選択してカスタムイメージ用のNode Definitions
を登録します。
Ubuntu
のNode Definitions
の設定を基に以下のようにしました。
各種項目の詳細は前回の記事や以下公式ドキュメントを参照。
尚、General
のAvailable image definitions
については後ほど作成するImage definitions
を指定するため、設定せずにNode Definitions
を作成します。
「Boot文字列」は事前に起動時のログを調査し、ログに出力されていた「Cloud-init target」と「CentOS Linux 8」を起動完了と判定するBoot文字列として登録しました。
General
項目名 | カスタムイメージの設定 |
---|---|
ID | centos8.4 |
Description | CentOS 8.4 Cloud Init Platform |
Nature | server |
Available image definitions | ※空欄 |
User Interface
項目名 | カスタムイメージの設定 |
---|---|
Visible | 有効 |
Description (Markdown) | CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2 |
Prefix | centos- |
Icon | server |
Label | CentOS |
Linux Native Simulation
項目名 | カスタムイメージの設定 |
---|---|
Domain Driver | KVM |
Simulation Driver | server |
Disk Driver | VirtIO |
Memory | 2048MiB |
CPUs | 1 |
CPU Limit | 100% |
Network Driver | VirtIO |
Data Disk Size | 0GiB |
Boot Disk Size | 64GiB |
Video Model | No Video Adapter |
Video Memory | - |
Interfaces
項目名 | カスタムイメージの設定 |
---|---|
Has a Loopback Interface | 無効 |
Number of serial ports | 1 |
Default number of physical interfaces | 1 |
インタフェース名 | eth0~eth4 |
Boot
項目名 | カスタムイメージの設定 |
---|---|
Timeout | 180 seconds |
Boot文字列1 | Cloud-init target |
Boot文字列2 | CentOS Linux 8 |
pyATS (optional)
項目名 | カスタムイメージの設定 |
---|---|
Enable pyATS | 有効 |
Use in Testbed | 有効 |
Operating System | linux |
Series | - |
Model | - |
Username | - |
Password | - |
Config extract command | - |
Property Inheritance
Image Definition
項目名 | カスタムイメージの設定 |
---|---|
RAM | 有効 |
CPUs | 有効 |
CPU Limit | 有効 |
Boot Disk Size | 有効 |
Data Disk Size | 有効 |
Per-node
項目名 | カスタムイメージの設定 |
---|---|
RAM | 有効 |
CPUs | 有効 |
CPU Limit | 有効 |
Boot Disk Size | 有効 |
Data Disk Size | 有効 |
Configuration
項目名 | カスタムイメージの設定 |
---|---|
Configuration Generator | - |
Provisioning
項目名 | カスタムイメージの設定 |
---|---|
Enable provisioning | 有効 |
Media Type | ISO |
Configuration Disk Volume Name | cidata |
Name | meta-data |
Editable | 無効 |
Content | ※下記参照 |
Name | user-data |
Editable | 有効 |
Content | ※下記参照 |
instance-id: centos
local-hostname: centos
#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
カスタムイメージのアップロード
CML2
の画面より「TOOLS」→「Node and Image Definitions」を選択し、「IMAGE DEFINITIONS」から「MANAGE」を選択してカスタムイメージのアップロード画面に進みます。
「Upload New Image File」の「Choose a file...」を選択することでアップロードするファイルを指定できるため、ファイル指定後、「UPLOAD IMAGE」を選択してアップロードします。
カスタムイメージ用Image Definitionsの設定
カスタムイメージのアップロードが完了すると、「Uploaded Images」にアップロードされたファイル名が表示されるため、「CREATE NEW IMAGE DEFINITION」からカスタムイメージ用Image Definitionsを作成します。
Image Definitions
もUbuntu
の設定を基に以下のようにしました。
General
項目名 | カスタムイメージの設定 |
---|---|
ID | CentOS-8.4.2105-20210603.0 |
Label | CentOS-8-GenericCloud-8.4.2105 |
Description | 8.4.2105 |
Disk Image | CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2 |
Node Definition | CentOS |
Linux Native Simulation
項目名 | カスタムイメージの設定 |
---|---|
Memory | - |
CPUs | - |
CPU Limit | - |
Data Disk Size | - |
Boot Disk Size | - |
Disk Image
は先ほどアップロードしたカスタムイメージを指定。
「Node Definitions」は、先ほど作成したCentOS
のNode Definitions
が選択できるようになっているため、CentOS
を選択して、「CREATE IMAGE DEFINITION」で作成します。
カスタムイメージの起動
登録したカスタムイメージの確認のため、適当なラボを作成し、「ADD NODES」から作成したカスタムイメージを配置します。
External Connector
も配置していますが、cloud-init
で初期構成する設定している場合、DHCPでアドレスが割り振られるようにしないと起動完了まで時間がかかるため配置しています。
各ノード起動後、CentOS
のコンソール画面からNode Definitions
で設定したユーザ名、パスワードでログインできればOKです。
おわりに
今回はクラウドイメージのOSを使用したため、cloud-init
でユーザ名、パスワードを指定するようにしましたが、すでに運用中のqcow2イメージや独自作成のイメージを使用すれば、様々なパッケージが導入済みのイメージをそのままCML2
上で起動させて、試験やアプリケーション動作の確認などを行うことも可能です。
CML2
はデフォルトで登録されているサーバイメージも多いため、あえて追加しなくても十分使えますが、RHELサーバの機能検証やシステム全体での検証等行う場合には有用なので覚えておくと良いと思います。