Ubuntu 22.04 Server で Autoinstall YAML で自動インストールを行う


Ubuntu の最新の LTS 版となる 22.04 がリリースされました。

このリリースでは Preseed による OS インストールは完全にできなくなり、自動でインストールするにはブログでも以前紹介した Autoinstall を使う方法のみとなりました。

以前のブログでは、ユーザー作成が上手くいかず、late-commands で無理矢理設定していました。

今回は修正されているかも改めて確認してみました。

user-data の中身

を参考に設定します。

#cloud-config
autoinstall:
    version: 1
    identity:
        hostname: ubuntu-vm22
        username: yasu
        password: "$6$以下略"
    ssh:
        install-server: yes
        authorized-keys:
            - "ssh-ed25519 以下略"
        allow-pw: true
    packages:
        - language-pack-ja
    keyboard:
        layout: jp
    locale: en-US.UTF-8
    refresh-installer:
        update: yes
    user-data:
        timezone: "Asia/Tokyo"
        disable_root: false

自動インストールの実施

user-data の渡し方として、PXE などネットワーク経由での方法もありますが、今回は手軽にできる、ISO ファイルを作成します。

genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data

前回の記事で紹介した Windows 版 QEMU(qemu-system-x86_64.exe)を使うと下記となります。

"C:\Program Files\qemu\qemu-system-x86_64.exe" ^
-accel hax -machine type=q35 -m 4096 ^
-cpu Skylake-Client-noTSX-IBRS -smp cpus=1,cores=3,maxcpus=3 ^
-vga virtio -display gtk,show-cursor=on -rtc base=utc ^
-device intel-iommu -k jp106 -net nic,model=virtio -net user ^
-cdrom ubuntu-22.04-live-server-amd64.iso ^
-drive file=ubuntu22.qcow2,if=virtio ^
-drive file=seed.iso,if=virtio

VirtualBox や VMware の場合、

  1. ubuntu-22.04-live-server-amd64.iso
  2. seed.iso

の順でマウントして仮想マシンを起動させます。

grub のオプションに「autoinstall」を追記するとスムーズにインストールできるかと思います。

動作確認

identity username, password などのユーザー作成

ユーザの作成、パスワード、SSH については下記を設定しています。

    identity:
        username: yasu
        password: "$6$以下略"
    ssh:
        install-server: yes
        authorized-keys:
            - "ssh-ed25519 以下略"
        allow-pw: true

Ubuntu 20.04 ではこれらが設定されず、late-commands で流し込んでいましたが、
パスワード、SSH キーともに正常に設定されたことを確認しました。

システムロケール設定

システムロケールは下記を設定しています。

    keyboard:
        layout: jp
    locale: en-US.UTF-8

ただ、実際はキーボードは正常に設定された物の、システムロケールは Ubuntu 20.04 同様、正常に設定されませんでした。

$ localectl
   System Locale: LANG=C.UTF-8
       VC Keymap: n/a
      X11 Layout: jp
       X11 Model: pc105

タイムゾーン設定

タイムゾーンは下記を設定しています。

    user-data:
        timezone: "Asia/Tokyo"

Ubuntu 20.04 とは異なり、正常に設定されたことを確認しました。

$ timedatectl status | grep zone
                Time zone: Asia/Tokyo (JST, +0900)

まとめ

Autoinstall YAML により OS のインストールを簡単に自動化できることを確認しました。

以前 Ubuntu 20.04 で検証したときよりも、より挙動が安定しており安心して使えそうです。

依然として、言語設定といったリファレンスに書かれているものも、正常に動作しない部分もありましたが、 late-commands でコマンドを流し込むことも可能なので、工夫次第でなんとかなりそうです。


Comments

comments

コメントを残す

メールアドレスが公開されることはありません。

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)