ダミー向けDebianオンラインのダウンロードとインストール

Debianを複数のマシンにインストールする必要がある場合は、もちろん、ネットワーク経由でダウンロードしてインストールすることをお勧めします。 さて、インストールを完全自動モードで実行したいと思います。 これが記事になります。 記事の主な部分はWiki Debianの無料のリテールですが、ウィキには記載されていないいくつかのニュアンスもここに記載されていますが、それらがないとインストールは完全に自動化されません。



まず、ネットワークに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をインストールする必要があるマシンの電源を入れるだけで、他のすべては「単独で」行われます。



All Articles