概要

  • Ubuntu 20.04でOSインストールを自動化する.
  • Ubuntuでは20.04からAutoinstallを自動インストールのために使う.
  • 自動化の対象は,OSのインストール(ユーザ設定,パスワード,言語,キーボード配置,タイムゾーン)とする.

方針

  • UbuntuのAutoinstallを使ってOSインストールを自動化する.
  • ISOを解凍し,設定ファイルを編集し,ISOを固める.
  • 自動インストール用の設定ファイルはNASで起動したHTTPサーバから取得する.
  • 利用者は,VM作成時にISOを指定して起動すると自動でインストールが完了する.

手順

(1) NASで共有フォルダを作成

コントロールパネル

image.png (2.4 MB)

「共有フォルダ」→「作成」→「共有フォルダの作成」

image.png (300.2 kB)

名前: os-auto-install 「次へ」

image.png (162.0 kB)

「次へ」→「次へ」→「次へ」→「適用」

image.png (117.5 kB)

共有フォルダ「os-auto-install」を選び,「編集」を押す

image.png (232.6 kB)

「NFS権限」→「作成」を選び以下のルールを入力し,「保存」を押す.

image.png (42.8 kB)

以下のルールが作成できているかは,共有ドライブ名を選び「編集」を押すことで確認できる.

image.png (100.7 kB)

(2) Webサーバの作成

Web Station

image.png (2.7 MB)

サービスポータルの作成

image.png (339.3 kB)

ポートベース→ポート:3000 ドキュメントルート:os-auto-install 「作成」

image.png (140.3 kB)

「OK」

image.png (80.7 kB)

(3) ISOのカスタマイズ

作業用VMにディレクトリを作成

mkdir ubuntu2004
cd ubuntu2004

インストーラのISOをダウンロード https://jp.ubuntu.com/download/

$ wget https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-live-server-amd64.iso

$ ls
ubuntu-20.04.3-live-server-amd64.iso

ISOのマウント先ディレクトリを作成

mkdir iso-mnt

ISOをディレクトリへマウント

sudo mount -o ro,loop ubuntu-20.04.3-live-server-amd64.iso iso-mnt/

マウント結果を確かめる

ls iso-mnt/

ビルド用のディレクトリを作成

mkdir iso_root

マウントしたファイル群をビルド用のディレクトリへコピー

rsync -avrz iso-mnt/ iso_root/

iso_root/ の所有者を変更

sudo chown -R $(whoami) iso_root/

権限を変更

chmod u+w iso_root/ 

isolinuxに移動

cd iso_root

iso_root/isolinuxに書き込み権限を付与

$ chmod u+w isolinux/

$ ls -l
total 68
dr-xr-xr-x 3 koyama koyama  4096 Aug 24 09:09 EFI
dr-xr-xr-x 3 koyama koyama  4096 Aug 24 09:09 boot
dr-xr-xr-x 3 koyama koyama  4096 Aug 24 09:09 casper
dr-xr-xr-x 3 koyama koyama  4096 Aug 24 09:08 dists
dr-xr-xr-x 2 koyama koyama  4096 Aug 24 09:09 install
drwxr-xr-x 2 koyama koyama 12288 Aug 24 09:09 isolinux
-r--r--r-- 1 koyama koyama 27368 Aug 24 09:09 md5sum.txt
dr-xr-xr-x 3 koyama koyama  4096 Aug 24 09:08 pool
dr-xr-xr-x 2 koyama koyama  4096 Aug 24 09:08 preseed
lrwxrwxrwx 1 koyama koyama     1 Aug 24 09:08 ubuntu -> .

パスワードのハッシュを生成

$ openssl passwd -6 tutcdsl2021
$6$Ld60tfe8aup1He/q$ffo2uPq66sXPFFrIT9E/th0WdX8wDfEbbtnDeqtMLgzTeeGkmHg/DA7C/ED8VV4EyxY4nSMhIxoKGL//4nR5y0

ここを見ながら設定ファイルuser-dataを作成

user-dataの内容

設定ファイルの構文をチェック

cloud-init devel schema --config-file user-data

iso_root/bootに書き込み権限を追加

$ chmod u+w -R boot/

$ ls -l
drwxr-xr-x 3 koyama koyama  4096 Aug 24 09:09 boot

boot/grub/grub.cfgを編集(EFI用)

boot/grub/grub.cfgの内容

isolinux/txt.cfg を編集(BIOS用)

isolinux/txt.cfgの内容

ビルド用パッケージのインストール

sudo apt install isolinux xorriso

ビルドを行う.

$ ls
iso-mnt  iso_root  ubuntu-20.04.3-live-server-amd64.iso

$ sudo dd if=ubuntu-20.04.3-live-server-amd64.iso of=iso_root/isolinux/isohdpfx.bin bs=512 count=1

$ sudo xorriso -as mkisofs -volid "AUTOINST" -output ubuntu-2004-auto-$(date +%Y%m%d).iso -eltorito-boot isolinux/isolinux.bin -eltorito-catalog isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -isohybrid-mbr iso_root/isolinux/isohdpfx.bin iso_root
xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:ubuntu-2004-auto-20220105.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 22.4g free
Added to ISO image: directory '/'='/home/koyama/ubuntu2004/iso_root'
xorriso : UPDATE :     745 files added in 1 seconds
xorriso : UPDATE :     745 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 512 bytes from file '/home/koyama/ubuntu2004/iso_root/isolinux/isohdpfx.bin'
libisofs: NOTE : Automatically adjusted MBR geometry to 1012/76/32
libisofs: NOTE : Aligned image size to cylinder size by 91 blocks
xorriso : UPDATE :  1.96% done
xorriso : UPDATE :  29.16% done
xorriso : UPDATE :  60.12% done
xorriso : UPDATE :  89.42% done
ISO image produced: 615296 sectors
Written to medium : 615296 sectors at LBA 0
Writing to 'stdio:ubuntu-2004-auto-20220105.iso' completed successfully.

(4) ファイルのアップロード

NASにログインする. File Station→「os-auto-install」を選び,ドラッグ&ドロップで以下のファイルをアップロードする.

  • ISOファイル( ubuntu-2004-auto-2022-0105.iso )
  • user-data(先の手順で紹介)
  • meta-data(空ファイルを作成)

アップロード先は,user-dataとmeta-dataがos-auto-install/ubuntu2004フォルダの直下,ISOファイルはos-auto-installドライブの直下とする.

image.png (75.6 kB)

(5) ESXiにNFSを追加

NFSのマウントパスは,NASのコントロールパネルの「共有フォルダ」からドライブ名を選び,「編集」→「NFS権限」へアクセスすることで確認できる.以下ではマウントパスが「/volume1/os-auto-install」だとわかる.

image.png (100.7 kB)

ESXiにログインし,「ストレージ」→「データストア」→「新しいデータストア」→「NFSデータストアのマウント」→「次へ」を選ぶ.

以下の情報を入力し,「次へ」→「完了」を選ぶ.

  • 名前: koyama-auto-install
  • NFSサーバ: 192.168.110.3
  • NFSシェア: /volume1/os-auto-install
  • NFSバージョン: NFS3

image.png (102.1 kB)

(6) 仮想マシンを作成

VMにISOファイルを設定し起動する.

インストール時のISOファイルを koyama-auto-install/ubuntu-2004-auto-2022-0105.iso に設定する.

仮想マシンに以下のログイン情報でログインする.

  • User: cdsl
  • Password: tutcdsl2021

参考資料

VMの作成とOSインストール,遠隔ログイン設定を自動化 | クラウド・分散システム研究室

Ubuntu 20.04をAutoInstallで自動インストールしてみた - Qiita

Automated server install reference | Ubuntu

cdsl-research/auto-install-ubuntu-2004: Ubuntu 20.04の自動インストールISO用

How-To: Make Ubuntu Autoinstall ISO with Cloud-init