CML 上で Linux を使う際の Cloud Init 設定例
Cisco CML には Reference Platform に Ubuntu 22 が含まれるようになりました。 私の場合、この Reference Platform に含まれている Ubuntu 22 イメージは利用せず、日々更新されている Ubuntu Cloud Images を利用しています。 これらのイメージを CML で利用する手順は cmlutils を使い、CLI から CML へ新規イメージを登録する で書きました。
- Ubuntu Cloud Images 22.04 Daily Build
- Ubuntu Cloud Images 23.04 Daily Build
- Ubuntu Cloud Images 23.10 Daily Build
- Ubuntu Cloud Images 24.04 LTS Daily Build
尚、Ubuntu のバージョンごとに付けられたコードネームは Wikipedia に書かれています。
Ubuntu Cloud Images に登録されているイメージには Cloud Init が含まれている為、初期コンフィグを指定することが出来ます。 今回は以下の 3 パターンの Cloud Init 用コンフィグ例をメモしておきます。 尚、いずれのパターンもログイン情報は「ユーザ名は root、パスワードは password」にしています。
- NIC x 1 枚構成
- NIC x 2 枚構成 (NIC #1 側が Default Route)
- NIC x 2 枚構成 (NIC #1 側が Default Route、NIC #2 側には Static Route)
1. NIC x 1 枚構成¶
#cloud-config
hostname: linux1
manage_etc_hosts: True
disable_root: False
ssh_pwauth: True
ssh_authorized_keys:
- ssh-rsa AAA...
chpasswd:
list: |
root:password
expire: False
timezone: Asia/Tokyo
write_files:
- path: /etc/netplan/50-cloud-init.yaml
content: |
network:
ethernets:
ens2:
addresses:
- 10.0.0.1/24
gateway4: 10.0.0.254
dhcp4: false
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
version: 2
runcmd:
- sudo netplan apply
- sudo sed -i -e "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
- sudo systemctl reload ssh.service
2. NIC x 2 枚構成 (NIC #1 側が Default Route)¶
#cloud-config
hostname: linux1
manage_etc_hosts: True
disable_root: False
ssh_pwauth: True
ssh_authorized_keys:
- ssh-rsa AAA...
chpasswd:
list: |
root:password
expire: False
timezone: Asia/Tokyo
write_files:
- path: /etc/netplan/50-cloud-init.yaml
content: |
network:
ethernets:
ens2:
addresses:
- 10.0.0.1/24
gateway4: 10.0.0.254
dhcp4: false
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
ens3:
addresses:
- 192.168.1.1/24
dhcp4: false
version: 2
runcmd:
- sudo netplan apply
- sudo sed -i -e "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
- sudo systemctl reload ssh.service
3. NIC x 2 枚構成 (NIC #1 側が Default Route、NIC #2 側には Static Route)¶
#cloud-config
hostname: linux1
manage_etc_hosts: True
disable_root: False
ssh_pwauth: True
ssh_authorized_keys:
- ssh-rsa AAA...
chpasswd:
list: |
root:password
expire: False
timezone: Asia/Tokyo
write_files:
- path: /etc/netplan/50-cloud-init.yaml
content: |
network:
ethernets:
ens2:
addresses:
- 10.0.0.1/24
gateway4: 10.0.0.254
dhcp4: false
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
ens3:
addresses:
- 192.168.1.1/24
routes:
- to: "192.168.0.0/16"
via: "192.168.1.254"
metric: 100
dhcp4: false
version: 2
runcmd:
- sudo netplan apply
- sudo sed -i -e "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
- sudo systemctl reload ssh.service