まず、ネットワークにDHCP / TFTPサーバーが必要です。 そうでない場合は、最初にDebianマシンの1つに手動でインストールし、DHCPとTFTPを上げることができます。 これを行うには、dhcp3-serverおよびtftpd-hpaパッケージをインストールします。 DHCPの場合、目的のサブネット(以降の例では192.168.2.0/24)のアドレスの配布と、TFTPを介してロードするイメージに関する情報を構成します。
単純なdhcp3-server構成ファイルの例:
cat /etc/dhcp/dhcpd.conf | grep -v '#'
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.2.0 netmask 255.255.255.0
{
range 192.168.2.10 192.168.2.120;
option routers 192.168.2.1;
option domain-name "debianfarm.org";
filename "pxelinux.0";
host firstserver
{
option host-name "firstserver";
hardware ethernet 08:00:27:91:DA:57;
fixed-address 192.168.2.21;
}
}
PSこの例では、Google Public DNSはDNSとして配布されています。 すべてのサーバーはドメインdebianfarm.orgにあります。それぞれに対して、MACを介して静的にIPとホスト名をバインドすることが望ましいですが、これは必須ではありません。 例では、これは1つのホストに対してのみ行われます。 また、TFTPサーバーは別のホストに配置することもできます。 アドレスを指定するには、オプションnext-server <server>;を追加します。
構成を編集したら、DHCPデーモンを再起動する必要があります。
# /etc/init.d/isc-dhcp-server restart
ここで、必要なファイルをダウンロードして、TFTPのルートに配置する必要があります(デフォルトでは/ srv / tftp、tftpd-hpaパッケージのインストール中に別のパスを選択するよう求められます)。
# cd /srv/tftp
# wget mirror.yandex.ru/debian/dists/squeeze/main/installer-i386/current/images/netboot/netboot.tar.gz
# tar -xvf netboot.tar.gz
TFTPルートの./pxelinux.cfg/defaultファイルを編集して、syslinuxブートローダーが読み込み後にユーザーの反応を待たずに、1秒後にインストールを開始するようにします。 これを行うには、タイムアウトオプションを1に設定します。
次に、カーネルパラメータにdebian-installerの変数を追加して、preseedファイルをロードする必要があります。 このファイルには、インストール中にユーザーが通常尋ねる変数の値が含まれています。 つまり、Debianインストーラーからの「質問への回答」を含むファイルを事前に作成します(その内容については後で)。 ただし、wikiには記載されていないニュアンスが1つあります.preseedファイルは、インストーラーの起動直後には読み込まれませんが、ユーザーにいくつかの質問をした後にのみ読み込まれます。つまり、preseedファイルのみを使用すると、完全に自動インストールすることはできません。 したがって、preseedの前のインストーラーの質問への回答は、カーネルブートパラメーターで渡される必要があり、Debianインストーラーはそれを取得します。 ただし、インストーラーの必要なすべての「質問への回答」をカーネルに渡すことは可能ですが、これによりカーネル起動ラインの最大長に制限を設けることはできません。
これらの変数の値をカーネルに渡すと、変数名の最初の部分(スラッシュとともにスラッシュの前にある部分)を省略できます。 しかし、名前の2番目の部分が別の変数と競合するような変数に対しては、これを行うことはできません。例:
console-keymaps-usb / keymap変数もあるため、console-keymaps-at / keymapは完全に指定する必要があります。
syslinux configは次のようになります。
cat ./debian-installer/i386/boot-screens/txt.cfg
default install
label install
menu label ^Install
menu default
kernel debian-installer/i386/linux
append vga=788 initrd=debian-installer/i386/initrd.gz locale=en_US country=BY language=en console-keymaps-at/keymap=en url=http://192.168.2.1/preseed.cfg hostname=debian domain=debianfarm.org -- quiet
PSホスト名はここで指定する必要がありますが、後でDHCPを介して取得した値が最も高い優先度を持つことに注意してください。 ドメインにも同じことが当てはまります。
ホスト192.168.2.1で、httpサーバーを上げる必要があります。 存在しない場合は、nginxをインストールできます。httpセクションの構成ファイルに次のように追加します。
server
{
listen 80;
server_name localhost;
location /
{
root /path/to/dir/with/preseed/;
}
}
ただし、preseedファイルはどこにでも配置できます(ドロップボックスなど)
次に、preseedファイルの内容について少し説明します。 このようなファイルの例は、 www.debian.org / releases / squeeze / example- preseed.txtにあります。 ファイルの作業バージョンは次のとおりです。
di netcfg/choose_interface select auto
di netcfg/wireless_wep string
di mirror/country string manual
di mirror/http/hostname string mirror.yandex.ru
di mirror/http/directory string /debian
di mirror/http/proxy string
di passwd/make-user boolean false
di passwd/root-password password juststrongpassword
di passwd/root-password-again password juststrongpassword
di clock-setup/utc boolean true
di time/zone string US/Eastern
di clock-setup/ntp boolean true
di partman-auto/method string lvm
di partman-lvm/device_remove_lvm boolean true
di partman-md/device_remove_md boolean true
di partman-lvm/confirm boolean true
di partman-auto/choose_recipe select atomic
di partman-partitioning/confirm_write_new_label boolean true
di partman/choose_partition select finish
di partman/confirm boolean true
di partman/confirm_nooverwrite boolean true
di partman-md/confirm boolean true
di partman-partitioning/confirm_write_new_label boolean true
di partman/choose_partition select finish
di partman/confirm boolean true
di partman/confirm_nooverwrite boolean true
tasksel tasksel/first multiselect standard
di pkgsel/include string openssh-server
popularity-contest popularity-contest/participate boolean false
di finish-install/reboot_in_progress note
各変数はインストーラーの非常に明確なダイアログを複製するため、ここでコメントする意味はありません。それぞれについて、例のコメントを見ることができます。
ディスクのレイアウト方法は、ハードディスクの数、サイズ、およびサーバーのニーズに依存するため、例から単純にコピーされました。
さて、これですべてです。Debianをインストールする必要があるマシンの電源を入れるだけで、他のすべては「単独で」行われます。