preseed.cfg で自動化出来る。
preseed.cfg を使えば debian/ubuntu のインストールは自動化出来る。
preseed.cfg はちょっと色々面倒なんですが、一度作ってしまえば結構楽できます。
なぜpreseed.cfg を使うのか
楽をしてカスタマイズしたい。
- よく使うパッケージは最初から入れておきたい。
- インストール面倒
- たくさんインストールする。
- 何度もインストールする。
こういうときに、仮想化でディスクイメージ作るのもいいのですが、コピーして管理するのがめんどうだしね。
preseed.cfg の使い方
- インストールのDVDイメージに突っ込む
- ネットワークから取得する
- 起動イメージに突っ込む
この2つが大別される使い方だと思います。
DVD/CDなどの起動イメージに突っ込む
これは file 呼ばれます。debian公式サイトでは file として紹介しています。
DVD/CD イメージが読み込まれてまたあとに、その後にマウントされたCD・DVDから読み込まれる
ネットワークから取得する
HTTP でアクセスできるところに設置する。
HTTPS はアクセス出来ない模様。(インストール途中でHTTPS/SSL が使えないのは仕方ないさ
起動イメージに突っ込む
initrd の起動イメージに突っ込むと、起動用イメージが展開されたタイミングで、preseed が利用される。
使いやすいのは initrd?
Debain の公式によるとinitrd が確実らしい。
initrd preseed は、いずれのインストール方法でも動作し、より多くの preseed をサポートしますが、多くの準備が必要です。file preseed や network preseed は、それぞれインストール方法が異なる場合に使用されます。
ただ、initrd を毎回作りなおすのも不便だし、気軽に設定を変えたいので、個人的にはネットワーク(HTTP)からの取得が便利じゃないかなと。
preseed.cfgの設定の書き方
スゴく長いので気持ちが折れそうになるが、基本的な文法を覚えてしまえば大丈夫。
たとえば、以下はDebianインストーラーのユーザー設定画面に相当する
## ユーザー設定画面 d-i passwd/root-login boolean false d-i passwd/make-user boolean true d-i passwd/root-password password ! d-i passwd/root-password-again password ! d-i passwd/user-fullname string takuya d-i passwd/username string takuya d-i passwd/user-password password takuya d-i passwd/user-password-again password takuya
preseed が実行されるタイミング
通常であればこの通り。
- debian のインストール起動
- preseed を 読み込み
- preseed 通りにインストールを実行
まぁだれでも考えるイメージ通りです。
順序で注意するべきネットワークの設定
initrd や file でインストールはネットワークを気にしなくていいが、http で取得する際は当然ネットワークの設定が重要になる。
以下の順番にインスト手順が変更される。
- debian のインストール起動
- ネットワークの設定
- preseed を HTTP で取得
- preseed にしたがってネットワークを再構成
- preseed 通りにインストールを実行
見て分かる通り、preseed前にネットワークに接続する必要がある。
したがって、locale ➝ ネットワークの設定は省略が不可の王になる。 つまりinitrd/fileと同じpreseed設定では自動化出来ない
絶対に自動化出来ないかというと・・・そうでもない
preseed 取得前のネットワーク設定は手動で?
別にそんなことはない。
起動パラメタで設定してあげればイイ。
こんなところで、preseed まとめおわり。
次回は initrd で preseed を使ってみたいと思います。