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

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

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

cmlutils 環境の準備

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

インストール

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

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 へ記載します。 設定例は以下の通りです (アドレスやユーザ名、パスワードは環境に合わせて修正します)。

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 のイメージをダウンロードする例です。

curl -LO https://cloud-images.ubuntu.com/jammy/20220718/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 のノード定義を追加することが可能です。

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

イメージ定義

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

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

Ubuntu 22.04 LTS の初期設定

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

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

コメント

タイトルとURLをコピーしました