OpenBSD 类似 Kickstarter 的解决方案?

OpenBSD 类似 Kickstarter 的解决方案?

OpenBSD 是否有任何解决方案可以:

插入自定义安装程序 CD,按 Enter 键(例如:“您确定吗?”- 消息),然后安装程序会自动对磁盘进行分区/安装 OpenBSD,然后对其进行一些自定义(例如:从 ports 安装一些应用程序)?

这可以使用 RHEL 的 Kickstarter 来完成。但是 OpenBSD 可以这样做吗?我用谷歌搜索它,但还没有找到任何好的答案(只是需要更大的编程技能......)。

答案1

目前,OpenBSD 安装可以完成大部分工作,但您只需经常按“Enter”键即可。至于进行 pkg_installs 和其他自定义,有(并且已经存在很长一段时间)一种机制可以做到这一点,尽管如果您不知道自己在寻找什么,则很难找到文档。安装程序将提取 sitexx.tgz 或 sitexx-hostname.tgz 安装集(如果它位于安装程序源中)。

常见问题解答在这里有很多详细信息: 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 开始,这是您执行此任务的工具。使用dhcp+pxehttp 服务器,您就足以部署自动安装基础架构。这个话题有很好的解释这个 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

Question 是安装程序问题(不包括问号)或其明确部分,由空格分隔的单词组成。答案就是问题的答案。密码可以是明文形式,使用 encrypt(1) 加密,或设置为“****************”(13 个“*”)以禁用密码登录,仅允许替代访问方法(例如例如,ssh(1) 键)。

您还可以使用MAC_address-install.confhostname-install.conf(如果主机名在 处定义dhcpd.conf)来创建仅针对一个主机的安装例程。

只需启动机器,然后等待安装作业完成即可。

此外,天空是这里的极限。看看这个复杂的例子协同BUG这将动态创建一个虚拟机,提供数据库和 httpd 文件来配置它并开始安装。只需一个命令即可完成所有操作;)

相关内容