Skip to content

cmlutils を使い、CLI から CML へ新規イメージを登録する

以前に以下のメモを書きました。

今回、改めて cmlutils を使って CLI から CML へ新規のイメージを追加する手順をメモしておきます。 作業環境には Ubuntu 22.04 LTS と Python 3.10.4 を使いました。

cmlutils 環境の準備

まず最初に cmlutils をインストールし、利用出来る状態にします。

インストール

venv 環境内にインストールします。

1
2
3
4
5
6
mkdir cmlutils
cd cmlutils
python3 -m venv .venv
echo 'source .venv/bin/activate' > .envrc
direnv allow
python3 -m pip install --upgrade pip cmlutils

認証情報の準備

cmlutils を利用するには認証情報を ~/.virlrc へ記載します。 設定例は以下の通りです (アドレスやユーザ名、パスワードは環境に合わせて修正します)。

1
2
3
4
5
6
cat << 'EOF' > ~/.virlrc
VIRL_HOST="10.0.0.1"
VIRL_USERNAME="admin"
VIRL_PASSWORD="password"
CML_VERIFY_CERT=false
EOF

イメージの登録

cmlutils の準備が出来たら、CML 上で利用したいイメージを登録していきます。

イメージ定義の削除

もし事前にイメージ定義がされている場合は (二重登録を避ける為に) 削除しておきます。

file

イメージのダウンロード / アップロード

CML へ登録するイメージを事前に用意しておきます。 各種アプライアンスであれば評価版をダウンロードしたり、Ubuntu 22.04 LTS であれば Ubuntu Cloud Images 22.04 Daily Build からイメージをダウンロードしておきます。 下記は Ubuntu 22.04 LTS のイメージをダウンロードする例です。

1
curl -LO https://cloud-images.ubuntu.com/jammy/20220718/jammy-server-cloudimg-amd64.img

これを cmlutils を使い、CML へアップロードします。

1
cml definitions images import image-file -f jammy-server-cloudimg-amd64.img

ノード定義

ノード定義を行います。 Ubuntu であれば既存の Ubuntu 20.04 用定義を流用し、バージョンを切り替えて利用しても良いのですが、「都度、バージョンを切り替える」のが手間に感じる為、今回は (Ubuntu 20.04 とは別に)「Ubuntu 22.04 LTS」としてノード定義を追加しました。 [cml-community/node-definitions/] を探してノード定義が無ければ新規に作成する必要があります。 Ubuntu 22.04 LTS であれば実質、既存の Ubuntu 20.04 のノード定義を流用出来ますので大した手間ではありませんが、下記のように実行すれば Ubuntu 22.04 LTS のノード定義を追加することが可能です。

1
2
curl -O https://s3.sig9.org/cml2/node-definitions/ubuntu22.yaml
cml definitions nodes import --filename ubuntu22.yaml

イメージ定義

最後はイメージ定義を追加します。 イメージ定義は指定する項目自体が少ない為、新規に設定するのも簡単ですが、Ubuntu 22.04 LTS の場合は以下のように実行することでイメージ定義を追加することが出来ます。

1
2
curl -O https://s3.sig9.org/cml2/node-definitions/ubuntu22_image.yaml
cml definitions images import definition --filename ubuntu22_image.yaml

イメージ定義例は以下の通りです。

Item Value
ID ubuntu-22-04-20220503
Label Ubuntu 22.04 - 03 May 2022
Description Ubuntu 22.04 - 03 May 2022
Disk Image jammy-server-cloudimg-amd64.img
Node Definition Ubuntu22

Ubuntu 22.04 LTS の初期設定

Ubuntu 22.04 LTS に関しては、自分 (筆者) がよく利用する初期設定をスクリプト化してあります。 以下のように実行することでインターネットから初期設定スクリプトをダウンロードして実行、初期設定が完了すると自動的に再起動されます。

1
curl -L https://raw.githubusercontent.com/sig9org/init-linux/master/init-ubuntu22.sh | bash -s