Skip to content

CML 上で Linux を使う際の Cloud Init 設定例

Cisco CML には Reference Platform に Ubuntu 22 が含まれるようになりました。 私の場合、この Reference Platform に含まれている Ubuntu 22 イメージは利用せず、日々更新されている Ubuntu Cloud Images を利用しています。 これらのイメージを CML で利用する手順は cmlutils を使い、CLI から CML へ新規イメージを登録する で書きました。

尚、Ubuntu のバージョンごとに付けられたコードネームは Wikipedia に書かれています。

Ubuntu Cloud Images に登録されているイメージには Cloud Init が含まれている為、初期コンフィグを指定することが出来ます。 今回は以下の 3 パターンの Cloud Init 用コンフィグ例をメモしておきます。 尚、いずれのパターンもログイン情報は「ユーザ名は root、パスワードは password」にしています。

  1. NIC x 1 枚構成
  2. NIC x 2 枚構成 (NIC #1 側が Default Route)
  3. NIC x 2 枚構成 (NIC #1 側が Default Route、NIC #2 側には Static Route)

1. NIC x 1 枚構成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#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)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#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