web-dev-qa-db-ja.com

preseed / late_command ubuntuサーバー15.04

Ubuntu 15.04 AMD64サーバーインストール(cmdラインインストール)でpreseed/late_commandに問題があります

d-i preseed/late_command string in-target wget http://url

終了コード1で戻り、ファイルはファイルシステムに存在しません。次のコマンドも失敗します(このファイルを後でダウンロードするスクリプトを作成します):

d-i preseed/late_command string echo "wget http://url"> /target/home/username/getscript.sh

そして、これもテストとして失敗しました:

d-i preseed/late_command string apt-get install -y htop

何か案は?

前もって感謝します!

ティム

1
Tim

私の推測では、取得しようとしているURLはhttps://にリダイレクトされており、チェーン内の少なくとも1つの証明書はインストール環境で信頼されていません。インストール環境はターゲット環境とは異なります。インストール環境は、ブート中にポイントする一時的なカーネルとinitrdであり、ターゲット環境は、実際にインストールされるカーネルとファイルシステムです。

Preseed/late_commandが実行された時点で、ターゲット環境が/ mnt/targetにマウントされ、そこでコマンドを実行するには、chroot /mnt/targetを介してchrootする必要があります。これを実行すると、実行するすべてのコマンドは、インストール環境ではなく、ターゲット環境に影響を与えます。ここで重要なのは、debconfがin-targetコマンドを提供して、ターゲットにchrootし、指定されたコマンドを実行してから、インストール環境に戻ることです。副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example:

d-i preseed/late_command string apt-get install -y htop

インストール環境(「Finished」ターゲット環境ではない)にhtopをインストールしようとします。

d-i preseed/late_command string in-target apt-get install -y htop

完成したターゲット環境にhtopをインストールしようとします。

正しい場所にインストールしているので、証明書がまだ信頼されていない可能性もあります。その場合、いくつかのin-targetコマンドを使用して信頼の問題を修正し、wgetまたは最後に注意を払い、次のようなものでwgetの信頼チェックを無効にします。

d-i preseed/late_command string in-target wget -O /tmp/post-install.sh "https://foo.bar/postinstall.sh" --no-check-certificate; in-target chmod +x /tmp/post-install.sh; in-target /bin/bash /tmp/post-install.sh;
1
ZachP

Ubuntu 16.04でも同様の問題があり、調査の結果、wgetがインストールされていないことがわかったため、preseedテンプレートに追加しました。

d-i pkgsel/include string ... wget
1
LutzB