OpenBSD Kickstarterのようなソリューション?

OpenBSD Kickstarterのようなソリューション?

次のことができる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..]
} 

tftppxeを使用して必要なファイルを実行するには、サーバーホスティングを使用してください。また、クライアントサイトの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ファイルが提供され、インストールが開始されます。単一のコマンドですべての操作を実行できます。 ;)

関連情報