Cisco CML で Ubuntu に SSH 用公開鍵を事前登録する

Cisco CML で Ubuntu をデプロイする際、cloud-config を使って予め (仮想マシンの起動前に) ホスト名やタイムゾーン、ユーザ情報などを設定しておくことが可能です。 この手順は以前、CML で Ubuntu を使う というメモに記載しました。 CML 特有というわけでは無く、「cloud-config のルールに従った設定方法」ですが、SSH 用の公開鍵を埋め込んでおく設定例をメモしておきます。

今回の設定を行うと以下のように設定されます。

項目
ホスト名 ubuntu1
root ユーザの無効化 無効 (「無効化が無効」なので「root ユーザは有効」になる)
SSH 用公開鍵 KEYSTRING…
root ユーザのパスワード password
パスワード認証によるログイン 可能
タイムゾーン Asia/Tokyo
ens2 の設定 DHCP

cloud-config の記載例は以下の通りです。 ssh-rsa KEYSTRING… の部分は実際の環境にあわせた公開鍵を指定します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#cloud-config
hostname: ubuntu1
manage_etc_hosts: True
disable_root: false
ssh_authorized_keys:
  - ssh-rsa KEYSTRING…
chpasswd:
  expire: false
  list: |
    root:password
ssh_pwauth: True
timezone: Asia/Tokyo
write_files:
  - path: /etc/netplan/50-cloud-init.yaml
    content: |
      network:
        ethernets:
          ens2:
            dhcp4: true
        version: 2
runcmd:
  - sudo netplan apply