読者です 読者をやめる 読者になる 読者になる

それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

preseed.cfg を使ってインストールを自動化する。

preseed linux

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 が実行されるタイミング

通常であればこの通り。

  1. debian のインストール起動
  2. preseed を 読み込み
  3. preseed 通りにインストールを実行

まぁだれでも考えるイメージ通りです。

順序で注意するべきネットワークの設定

initrd や file でインストールはネットワークを気にしなくていいが、http で取得する際は当然ネットワークの設定が重要になる。

以下の順番にインスト手順が変更される。

  1. debian のインストール起動
  2. ネットワークの設定
  3. preseed を HTTP で取得
  4. preseed にしたがってネットワークを再構成
  5. preseed 通りにインストールを実行

見て分かる通り、preseed前にネットワークに接続する必要がある。

したがって、locale ➝ ネットワークの設定は省略が不可の王になる。 つまりinitrd/fileと同じpreseed設定では自動化出来ない

絶対に自動化出来ないかというと・・・そうでもない

preseed 取得前のネットワーク設定は手動で?

別にそんなことはない。

起動パラメタで設定してあげればイイ。

こんなところで、preseed まとめおわり。

次回は initrd で preseed を使ってみたいと思います。

広告を非表示にする