Rabbit Slide Show

Tokyo Debian ConoHa v3 + Debian bookworm + preceed.cfg

2024-01-20

Description

Text

Page: 1

ConoHa v3に
Debianを
インストールしてみた
ConoHa v3 + custom preseed.cfg = bookworm VPS!
Kentaro Hayashi
ClearCode Inc.
2024年01月 東京エリア・関西合同Debian勉強会

Page: 2

スライドは
Rabbit Slide Showにて公開済み
ConoHa v3にDebianをインストールしてみた
https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-conoha-v3-debian-202401

Page: 3

元記事公開済み
ConoHa VPS (v3)にDebianをインストールする方法(2024年1月時点)
https://kenhys.hatenablog.jp/entry/2024/01/14/171628

Page: 4

本日の内容
ConoHa VPS (v3)でDebianをインストールしてみた話
ConoHaのインフラが刷新されv3が利用可能になった
ConoHa v3は標準ではDebianをサポートしていない
ConoHa v3では各種APIがサポートされている
カスタムイメージを使って再インストールを試みる

Page: 5

ConoHaとは
https://www.conoha.jp
GMOグループ傘下のホスティングサービス
今日の話題はVPS。 VPSの時間課金での利用もできる
👍

Page: 6

ConoHa v2とv3
❌ い?(と勘違い)
管理画面で切り替えられるので、単なるコンパネのバージョンの違
✅ サーバーインフラがv2とv3で別物
v2のインスタンスとv3のインスタンスは完全に別管理

Page: 7

ConoHa v3の残念なところ
❌ Ubuntuは20.04と22.04が選べるが、Debianは選べない
v2のときはDebianも選択肢にあったのに。。。
(OpenBSDやNetBSDも消えた) 2024/01/10 提供再開のお知らせ
FreeBSDやArchはv3でもイメージがサポートされている
(2024/01/14現在)

Page: 8

ConoHa v3の残念なところ
標準でサポートされていないなら
自分でインストールすればいいじゃない

Page: 9

ConoHa v2のときの
カスタムインストール方法
CLIツールで簡単にISOイメージをマウントする
https://support.conoha.jp/v/clitools/
v3はインフラが別なのでこの方法は使えない

Page: 10

ConoHa v3のAPIでできないか?
https://doc.conoha.jp/api-vps3/
「APIでVPSにISOイメージを挿入する」ためのドキュメント
https://doc.conoha.jp/api-vps3/api-mount_iso_image-v3/

Page: 11

v3 APIでVPSに
ISOイメージを挿入する(1)
インスタンスを作成後停止しておく
トークンを作成 (APIアクセスに必要)
イメージIDを作成 (あとでISOをアップロードするときに使う)
ISOイメージ(bookworm netinst .iso)をアップロード

Page: 12

v3 APIでVPSに
ISOイメージを挿入する(2)
停止済みインスタンスにISOをマウント
レスキューモードでISOイメージからインストーラーを起動
コンソールURIを発行して操作

Page: 13

Debian公式ISOイメージを
利用した場合の課題
❌ セキュアなインスタンスの初期構築が手間
❌ ConoHa標準のVNCコンソールがちょっと不便
標準イメージのように、あらかじめ.ssh/authorized_keysを仕込めない
テキスト送信や特殊キー送信経由では|や_などの記号が打てず欠落する
vimで直接いじるにも操作感が通常と異なる (要検証)

Page: 14

カスタム ISO イメージによる
再インストールで解決
✅ メリット
あらかじめ必要な設定を仕込んだ状態でインストールできる
自動化はpreseed.cfgを使えばよさそう
あるいはFAI(Fully Automatic Installer) or Simple-CDD?
❌ デメリット
カスタムイメージ作成のノウハウが必要

Page: 15

今回は preseed.cfg を使ってみた
参考: 2016年10月のDebian勉強会資料
https://tokyodebian-team.pages.debian.net/pdf2016/debianmeetingresume201610-
presentation-sugimoto.pdf

Page: 16

preseed.cfgの仕込み方
initrd.gzに仕込む (CDイメージ再生成必要)
起動時パラメーターでpreseed.cfgを参照させる
file=…でCDイメージに含めたpreseed.cfgを参照する (CDイメージ再生成必要)
url=でネットワーク上のpreseed.cfgを参照させる
VNCコンソールへの切り替え中に誤爆しないようにpreseed.cfgをCDイメージに含める

Page: 17

カスタム ISO への道
isolinux/menu.cfg
搭載メモリが少ないインスタンスではGUIインストールできない
Graphical Installを削除を推奨 (gtk.cfgをコメントアウト)
isolinux/txt.cfg
テキストモードをデフォルトにする
file=/cdrom/preseed/preseed.cfgを参照させる
言語やロケール、キーマップを指定する

Page: 18

isolinux/menu.cfg
menu title Debian GNU/Linux installer menu (BIOS mode)
include stdmenu.cfg
#include gtk.cfg
include txt.cfg
menu begin advanced
...
グラフィカルインストールの選択肢をコメントアウトして殺す

Page: 19

isolinux/txt.cfg
label install
menu label ^Install
menu default
kernel /install.amd/vmlinuz
append language=en country=US keymap=us \
file=/cdrom/preseed/preseed.cfg vga=788 initrd=/install.amd/initrd.gz --- quiet
file=でpreceed.cfgを指定、テキストモードを既定(menu default)にして
おく

Page: 20

preseed.cfgで公開鍵を仕込む
# Setup public key
d-i preseed/late_command string \
cp /cdrom/preseed/sshd_config.d.local /target/etc/ssh/sshd_config.d/local.conf ; \
mkdir -p /target/home/debian/.ssh ; \
cp /cdrom/preseed/authorized_keys /target/home/debian/.ssh/ ; \
in-target chown debian:debian -R /home/debian/.ssh ; \
in-target chmod 400 /home/debian/.ssh/authorized_keys
preseed/late_commandでファイルを配置する
in-targetかどうかを意識しないとハマる

Page: 21

リマスタリング ISO
(cd custom-iso; \
find -follow -type f ! -name md5sum.txt -print0 | xargs -0 md5sum > md5sum.txt)
sudo genisoimage -quiet -r -J -b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \
-o netinst.iso custom-iso
CDに追加でファイルを仕込むので、チェックサムを更新して再作成する

Page: 22

再インストール実演
前提
1 core/512MBメモリの最小構成
ConoHa VPSではUbuntu 20.04でインスタンス作成時に最小構成を選択できる
Debian bookworm 12.4.0を採用
.ssh/authorized_keyを仕込み公開鍵認証のみ
デモなのでネットワーク設定まではがんばらない

Page: 23

さいごに
ConoHa VPS (v3)でDebianが標準イメージとして提供されるようになるま
でのつなぎの技術を紹介しました。
カスタムISOイメージを使ってインストールする手段あればなんとかなる
ConoHa VPS (v3)でDebianの標準イメージが提供されるのも
そう遠くない未来だろうから試すなら今

Other slides

DebConf20 DebConf20
2020-08-25