preseed.cfg
ファイルを使用して、packerを使用して自動ubuntuイメージを作成しました。複数のテンプレートを使用しており、それぞれに同じpreseedが必要ですが、特定のパラメーターにはいくつかの異なる値が必要です。
Preseedに変数を作成して、環境変数から値を取得することはできますか?
そうでない場合、私の回避策は次のとおりです。
preseed.cfg
のように$CUSTOM_VALUE
に置き換え可能な値を作成し、preseedの名前をpreseed.cfg.tpl
に変更しますpreseed.cfg.tpl
に対してsed
を実行して$CUSTOM_VALUE
を環境変数値に置き換え、ファイルをpreseed.cfg
として出力します別の回避策は、 racker
のようなプレプロビジョニングツールを使用して、テンプレートプレシードを読み取り、値を置き換えてファイルに保存し、ラッカー出力をパッカーにパイプすることです。 racker ubuntu.rb - | packer build -
はい。 bootparam にはこの重要な部分があります:
上記のようにセットアップ関数として受け入れられない「foo = bar」の形式のものは、設定される環境変数として解釈されます。
そして「preseedを使用したインストールの自動化」の付録B.2.2:
B.2.2。ブートパラメータを使用した質問のプレシード事前構成ファイルを使用して一部の手順をプレシードできない場合でも、インストーラの起動時にコマンドラインでプレシード値を渡すことができるため、インストールを完全に自動化できます。
事前シードを実際に使用したくないが、特定の質問に対する回答を提供したいだけの場合にも、ブートパラメーターを使用できます。これが役立ついくつかの例は、このマニュアルの他の場所に記載されています。
Debian-installer内で使用される値を設定するには、この付録の例にリストされている任意のpreseed変数にpath/to/variable = valueを渡すだけです。値を使用してターゲットシステムのパッケージを構成する場合は、所有者を付加する必要があります(通常、debconf変数(またはテンプレート)の所有者は、対応するdebconfテンプレートを含むパッケージの名前です。使用される変数の場合インストーラー自体では所有者は「di」です。テンプレートと変数は複数の所有者を持つことができ、パッケージがパージされた場合にテンプレートをdebconfデータベースから削除できるかどうかを判断するのに役立ちます。)owner:path/toのような変数の/ variable = value。所有者を指定しない場合、変数の値はターゲットシステムのdebconfデータベースにコピーされないため、関連するパッケージの構成中は未使用のままになります。
通常、この方法で質問をプレシードすると、質問は行われません。質問に特定のデフォルト値を設定し、それでも質問を尋ねるには、演算子として「=」の代わりに「?=」を使用します。セクションB.5.2「preseedを使用してデフォルト値を変更する」も参照してください。
ブートプロンプトで頻繁に設定される一部の変数は、エイリアスが短いことに注意してください。エイリアスが使用可能な場合、この付録の例では、完全な変数の代わりにエイリアスが使用されます。たとえば、preseed/url変数はurlとしてエイリアスされています。別の例は、タスクエイリアスです。これは、tasksel:tasksel/firstに変換されます。
注:現在のLinuxカーネル(2.6.9以降)は、デフォルトで追加されたオプションを含め、最大32のコマンドラインオプションと32の環境オプションを受け入れますインストーラ。これらの数を超えると、カーネルがパニック(クラッシュ)します。 (以前のカーネルでは、これらの数は少なかった。)
注:ubuntu.parmfileは11行に制限されており、それぞれの長さは80文字です。 (正確な制限は、11行で、各* 80文字+追加の10文字です。)したがって、1行に複数のパラメーターを指定し、パラメーターを単一のスペースで区切り、できるだけ多くの(短縮された)エイリアスを使用することをお勧めします。ただし、複数の行にわたって単一のパラメーター(その値を含む)を指定しないでください。パラメータの大文字小文字やシーケンスは関係ありません。
また、B.2.4にはエイリアスのリストがあります。
B.2.4。事前シードで役立つエイリアス次のエイリアスは、(自動モード)事前シードを使用するときに役立ちます。これらは質問名の単なる短いエイリアスであり、常に値も指定する必要があることに注意してください(例:auto = trueまたはinterface = eth0)。
priority debconf/priority
fb debian-installer/framebuffer
language debian-installer/language
country debian-installer/country
locale debian-installer/locale
theme debian-installer/theme
auto auto-install/enable
classes auto-install/classes
file preseed/file
url preseed/url
domain netcfg/get_domain
hostname netcfg/get_hostname
interface netcfg/choose_interface
protocol mirror/protocol
suite mirror/suite
modules anna/choose_modules
recommends base-installer/install-recommends
tasks tasksel:tasksel/first
desktop tasksel:tasksel/desktop
dmraid disk-detect/dmraid/enable
keymap keyboard-configuration/xkb-keymap
preseed-md5 preseed/file/checksum