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の標準イメージが提供されるのも
そう遠くない未来だろうから試すなら今