次のことができるOpenBSD用のソリューションはありますか?
カスタムインストーラCDを挿入してEnterキーを押すと(例:「確信していますか?」 - メッセージ)、インストーラは自動的にディスクを分割し、OpenBSDをインストールしてからいくつかのカスタマイズを実行します(たとえば、ポートアプリからの一部のインストール)。
これはRHELのKickstarterを使って行うことができます。しかし、OpenBSDはこれを行うことができますか?私はそれを検索しましたが、まだ良い答えが見つかりませんでした(ただ、より良いプログラミングスキルが必要です...)。
答え1
現在、OpenBSDのインストールはほとんどの作業を行いますが、「Enter」キーをたくさん押すだけです。 pkg_installsやその他のカスタマイズを実行する場合は、これを行うメカニズムがあります(長い間使用されてきました)。しかし、必要なものがわからない場合は、文書を見つけるのは難しいです。インストーラは、sitexx.tgzまたはsitexx-hostname.tgzインストールセット(インストールプログラムソースにある場合)を抽出します。
FAQには次のような多くの詳細があります。 http://www.openbsd.org/faq/faq4.html#site
私があなたにしたいもう一つの重要なヒントはrc.firsttime(8)スクリプトメカニズムです。 /etc/rc.firsttimeからファイルを削除すると、次の起動時にこのコマンドが実行され、ファイルが削除されます。インストーラでこれを行うと追加インストーラがこのファイルを使用するためです。
開発者がインストーラのためのより自動化されたメカニズムを開発しているというメッセージをメーリングリストで見ました。
更新 2014-05-01 -autoinstall(8)
サイレントインストール機能は5.5に含まれています:http://www.openbsd.org/55.html
答え2
autoinstall(8)
OpenBSD 5.5以降、これはこの作業のためのツールです。 httpサーバーを使用すると、dhcp+pxe
自動化されたインストールインフラストラクチャを展開するのに十分です。このトピックには良い説明がありますこのbsdnow.tvしかし、この方法についていくつか説明します。
dhcp pxe エントリを作成します。次の例では、代わりにauto_install
ファイルを検索します。pxeboot
option domain-name-servers 192.168.1.1;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
filename "auto_install";
next-server 192.168.1.1;
range 192.168.1.8 192.168.1.254;
[..other stuff..]
}
tftp
pxeを使用して必要なファイルを実行するには、サーバーホスティングを使用してください。また、クライアントサイトのBIOSでpxe-bootを有効にする必要があります。
# ls -l /tftp
total 12896
lrwxr-xr-x 1 root wheel 7 Feb 22 21:37 auto_install -> pxeboot
-rw-r--r-- 1 root wheel 6501415 Feb 22 12:49 bsd
-rw-r--r-- 1 root wheel 80524 Feb 22 12:50 pxeboot
すべてのインストールパッケージをhtdocs
ルートディレクトリにホストし、httpd.conf
したがって:
# ls /var/www/htdocs/pub/OpenBSD/5.5/i386/
SHA256 bsd comp55.tgz index.txt xetc55.tgz xshare55.tgz
SHA256.sig bsd.mp etc55.tgz man55.tgz xfont55.tgz
base55.tgz bsd.rd game55.tgz xbase55.tgz xserv55.tgz
httpd
ルートディレクトリに、インストーラinstall.conf
が尋ねる質問に対するすべての回答を含むファイルを作成します。
# cat /var/www/htdocs/install.conf
System hostname = bsdnow.tv
Password for root = ThePlaceToBe...SD
Network interfaces = em0
IPv4 address for em0 = dhcp
Setup a user = puffy
Password for user = whywasibornasafish
What timezone are you in = US/Eastern
Location of sets = http
Server = 192.168.1.1
nginx
ここでも使えますので参考にしてください。ここで重要なのは、名前とともにサーバーのルートに配置する必要があることですinstall.conf
。また、利用可能なパラメータの完全なリストがないので、検索してautoinstall
良い例を見つけてください。ここ。マニュアルautoinstall
ページを引用すると、次のようになります。
応答ファイルは行ベースのASCIIテキストファイルです。各行の形式は次のとおりです。
question = answer
質問は、インストーラの質問(疑問符を除く)、またはスペースで区切られた単語で構成される明示的な部分です。答えは質問に対する答えです。パスワードはプレーンテキストであるか、暗号化(1)を使用して暗号化するか、「****************」(13 "*")に設定してパスワードログインを無効にし、代替パスワードのみを許可します。できます。アクセス方法(例:ssh(1)キー)。
MAC_address-install.conf
またはhostname-install.conf
(ホスト名がで定義されている場合)を使用して、1つのホストのみをターゲットとするdhcpd.conf
インストールルーチンを作成することもできます。
マシンを起動し、インストール作業が完了するまで待ちます。
しかもここでは空が限界です。確認してみてください複雑な例~からコラボレーションのバグこれにより、仮想マシンが動的に作成され、それを構成するためのデータベースとhttpdファイルが提供され、インストールが開始されます。単一のコマンドですべての操作を実行できます。 ;)