私はbashスクリプトを介していくつかのパッケージのインストールを自動化しようとしています。それらは既存のchrootされたファイルシステムにインストールされます。ただし、一部のパッケージにはインタラクティブなユーザー入力が含まれています(つまり、ddclientがダイナミックDNSサービスプロバイダーの選択を要求します)。これは、私が簡単に自動化することはできませんでした。
debconf preseedingは、インタラクティブなパッケージインストールを自動化する最も一般的な方法のようですが、私が読んだすべての例は、個々のパッケージだけでなく、Debianインストール全体を対象としていることを示しています。
私はこれをフォローしています インタラクティブなDebianパッケージのインストールを自動化する方法 しかし、それは実際には詳細を説明していません。
前もって感謝します!
AnsibleやSaltなどの「適切な」デプロイメントおよび構成管理ツールを使用する以外に、Debianパッケージを事前構成するにはdebconf
プレシードで十分です。本格的なインストールに限定されるものではありません。任意の数のパッケージに適用できます。
それを始める最も簡単な方法は、パッケージをインストールして質問に答えることによって、インストールしたいパッケージを手動で構成することです。次に、debconf-get-selections
を実行します(debconf-utils
パッケージから)。これにより、インストールしたばかりのパッケージの設定を含む、保存されているすべての設定がコメント内の質問テキストとともに一覧表示されるため、事前に設定する質問を簡単に見つけることができます。フォーマットは
<package> <debconf key> <type> <value>
例えば
# System's default paper size:
# Choices: letter, a4, note, legal, executive, halfletter, halfexecutive, 11x17, statement, folio, quarto, 10x14, ledger, tabloid, a0, a1, a2, a3, a5, a6, a7, a8, a9, a10, b0, b1, b2, b3, b4, b5, c5, DL, Comm10, Monarch, archE, archD, archC, archB, archA, flsa, flse, csheet, dsheet, esheet
libpaper1 libpaper/defaultpaper select a4
プレシードする設定をファイルに保存してから、ターゲットシステムでdebconf-set-selections
(debconf
パッケージ内)を実行します。ファイルはローカルで利用可能で、最初の引数として名前が付けられているか、その内容です。パイプ:
cat preseed-file | ssh remotehost debconf-set-selections
これを行う前ターゲットシステムにパッケージをインストールします。