PXE boot debian-installer preseed.cfg - 特定の問題(ホスト名など)のみを表示する方法

PXE boot debian-installer preseed.cfg - 特定の問題(ホスト名など)のみを表示する方法

私は現在自宅でPXEブートを介してdebian-installerを使用しています(Duan Linuxを使用)。インストーラはホスト名とドメインを要求し、ドメインに対してのみプリセットされたデフォルト値を要求したいのですが、これが可能かどうかはわかりませんか?目的は、プロビジョニングがどのように機能するかを理解できる場合は、その知識を職場に適用し、現在はほとんど手動であるため、サポートチームがUbuntuをより簡単に展開できるようにすることです。

私が理解したところ、netbootを実装するには(私が読んだほとんどのドキュメントは実際にDebian用なので、Devuan netbootがDebianとほぼ同じように動作することを期待しています)、netcfgは次のプロビジョニングファイルをインポートする前に完了する必要があります:TFTPこれは、インストーラがインストーラのnetcfg部分を強制的に再実行できるようにするには、次のことを行う必要があることを意味します。

d-i preseed/early_command string kill-all-dhcp; netcfg

...指定する前に...

d-i netcfg/hostname seen false
d-i netcfg/domain string network-name.int
d-i netcfg/domain seen false

...debian-installerで質問できるように、デフォルトも提供されています。

このページはこれが本当であることを示しています。https://www.debian.org/releases/stable/amd64/apbs05.html.en

...具体的に:B.5.2。プリセットを使用してデフォルト値を変更する

プリセットを使用して、質問に対するデフォルトの回答を変更できます。しかし、まだ人々はこの質問をします。。これを行うには、質問の値を設定した後、seeフラグを「false」にリセットする必要があります。

このRedditの投稿は、他の人が「seen」をfalseとtrueに設定しようとしましたが、何も効果がないことを示しています。 https://www.reddit.com/r/debian/comments/7ak9h0/debian_preseed_installation_no_dialog_for/

私はまた、debconfの優先順位がここでも役立つことを他の場所で読みました。 Devuan netbootファイルに含まれているnetboot vesamenu.c32はカーネルコマンドラインで "priority = ritic"を指定しますが、ホスト名とドメインダイアログは次のように認識されています。高いしかし、優先順位なので、debconfの優先順位が次に設定されていない場合は、とにかく発生しません。高い。これを行うと、インストーラが必要な場合はホスト名を要求されますが、残念ながらホスト名を入力した後に次の手順を求めるメニューも表示されます。カーネルコマンドラインで優先順位を高に設定し、プロビジョニングで上記のkill-all-dhcp;netcfg行を実行してネットワークを再初期化し、強制的にホスト名を要求するようにし、次を使用して優先順位を再重要に変更しました。

debconf debconf/priority critical 

...(上記のプロファイルの上部にあるreddit投稿に表示されます)しかし、残念ながら、これにより、インストーラはホスト名の問題やドメインの問題を尋ねることなく、質問なしで完全自動インストールを実行しました。

私が読んだブログ投稿(残念ながら開いているタブのリストには見つかりません)は、プロビジョニングファイルのコマンドの順序が重要ではないと述べており、ホスト名の質問に答えた後は変更できないと信じています。優先事項

現在、カーネルコマンドラインの優先順位は重要に設定されており、preseed.cfgで次の関連セクションを指定しています。

## Locale/Keymap configuration
d-i debian-installer/locale string en_GB
d-i keyboard-configuration/xkb-keymap select gb

## Network configuration (none, just use DHCP)
d-i netcfg/choose_interface select auto

## Hostname configuration
d-i preseed/early_command string kill-all-dhcp; netcfg

debconf debconf/priority high

d-i netcfg/hostname string CHANGETHIS
d-i netcfg/hostname seen false
d-i netcfg/domain string network-name.int
d-i netcfg/domain seen false

debconf debconf/priority string critical 

私はdebian-installerが最後にカスタムスクリプトを実行して/etc/hostnameのホスト名を変更し、再起動する前に/etc/hostsを更新することでこの問題を解決できることを知っていますが、インストールソースを同じままにしたいと思います。アップグレードを開始するには、できるだけ少ない手順が必要です(最新のOSバージョンを使用するためにスクリプトをカスタマイズして更新する必要なしにプリセットのみを変更するだけです)。そして、私が読んだ他の記事で提案した内容を指定できます。di preseed/late_commandそして/またはプレシード/early_commandしたがって、事前シードが必要なものを処理できない場合に備えて、将来に任せたいと思います。

ベストアンサー1

数時間のテストの最後に動作する答えを見つけました。他の人が答えを見つけに来たら、参考にしてください。

答えは、設定ファイルでnetcfg設定をまったく実行せずに、カーネルコマンドラインで優先順位を[高]と[重要]に設定することです。

私は次のmenu.c32/vesamenu.c32設定を使用しました。

label customauto
    menu label ^Automated install - Custom Auto
    kernel debian-installer/amd64/linux
    append auto=true priority=high netcfg/get_hostname?= netcfg/get_domain?=internal.domain preseed/url=tftp://<ip address to tftp server>/preseed.cfg vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet 

テストノート:カーネルコマンドラインで次のコマンドを使用すると、特定の動作が発生します。

netcfg/get_hostname=hostname優先順位が「high」に設定されていても、質問を提起せずにシステムのホスト名を指定されたもの(この場合は「hosname」)に設定します。

netcfg/get_hostname?=hostname(?とその場所を参照)はデフォルト値(この場合は「ホスト名」)を設定しますが、指定したデフォルト値についても質問します。

netcfg/get_hostname?=デフォルトはまったく渡されず、質問が発生します。最初はこれはうまくいかないと思いましたが、テストではうまくいくようです!

ラインにも同じですnetcfg/get_domain。他の問題があると仮定していますが、これは私が望む構成なので、他の問題はテストしていません。

プロビジョニングファイルからnetcfgのすべてのdi行を削除し、他のものを指定する前に、一番上の優先順位を重要に設定しました。

d-i debconf/priority string critical

インストールが完了した後、ホスト名が正しく設定されていること、/ etc / hostsが正しく設定されていること、およびプロビジョニングファイルの他のすべての設定が正しく適用されていることを確認して、この設定が良いと信じました。

これは私が望む答えではありません。プロビジョニングファイルでこれをすべてやりたいです。これは、要件が変わるにつれて、後で動作を変更するために2つの場所を確認する必要があるためです。ある程度妥協が必要だと思います。

おすすめ記事