我想使用 Kickstart 制作一个通用的自动安装脚本,该脚本将放在 CD 上并与标准 DVD 安装程序结合使用,即,此脚本的用户需要附加inst.ks=cdrom
到启动选项,然后它会在仅要求输入密码的机器上安装 Fedora。
似乎标准做法是生成带有密码(或密码哈希)的 Kickstart 脚本,如果您打算将脚本分发给第三方,这似乎并不理想。我还想在 Kickstart 脚本中启用 sshd 服务,这将使 LAN 上任何知道默认密码的人都可以登录到机器。当然,我可以在 sshd 中禁用密码验证,但现在它变得很混乱,即我正在尝试解决公众对默认密码的了解(我很可能忘记了一些东西)。
我是 Kickstart 的新手,我想制作安装脚本来询问/提示/输入站点特定的密码,到目前为止我已经找到了两个选项:
- 在部分中询问密码
%pre
,然后生成例如accounts.ks
将从主命令部分包含的命令rootpw
。user
- 使用静态默认密码并在首次启动时运行交互式脚本,强制用户更改默认密码。(或者可能使用
chage
。%post
)
我担心的是,根据我的 Google 搜索,没有人这样做,甚至没有人要求这样做。:-) 每个人似乎都将最终密码/哈希直接放入 Kickstart 脚本中。因此,我不得不为这两个选项制作自己的交互式脚本,我担心这最终会很糟糕。或者,我对使用 Kickstart 进行(半)自动化安装的整个概念理解错误。
对于这种情况,创建通用 Kickstart 脚本的标准做法是什么?您需要分发脚本而不是强迫用户编辑它?
答案1
答案2
(这可能有点晚,也可能有点长,但这正是我所做的,我花了数月/数年的时间来完善)。
所有安装信息(例如,启动媒体/安装树、软件包、脚本)都在主服务器上。kickstart 文件也在那里。顺便说一句:我使用的是 Fedora,但我认为这对这种方法没有任何实际影响。有关更多信息,请参阅此链接如何使用 pxe 启动并安装了解 Fedora 如何做到这一点;它还包含每个步骤非常有用的链接。
无需过多赘述,以下是我的流程:
1) 通过 pxe 设置从服务器启动安装。默认 pxe 文件包含您要执行的不同安装的菜单列表。它们可以通过 NFS、FTP 或 HTTP 完成。我是通过 nfs 进行的,因此 kickstart 参数定义了从哪里获取文件:
inst.ks=nfs:[服务器 ip]:/[服务器上 kickstart 文件的路径]。
使用 ip=[网络设置] 指定从服务器到客户端使用的网络参数;留空则使用 DHCP。
2) 创建 kickstart 文件(参见格式和命令)。
3) 在本
%pre
节中,使用您最喜欢的脚本语言编写针对每种类型的机器安装的 kickstart 安装说明。您可以创建要包含的软件包的特定列表,以及要包含的各种安装行。4)在该
%post
部分中编写代码来执行已安装系统的配置(注意:这些部分可以在或chroot
环境中运行non-chroot
,也可以有多个%post
部分)。5)最后,启动每台机器从网络 pxe 启动,在即将出现的菜单中,选择要安装的机器类型(或名称),按回车键,然后在安装自动运行时喝点咖啡(除非脚本出现错误,或者可能缺少某些东西)。
6)完成后,点击重新启动,然后
注意:您可以通过文件访问启动命令行/proc/cmdline
,因此您可以为其添加额外信息%pre
(例如主机名)。安装程序将忽略这些信息。
注意:尽管可以访问网络,但解析器却不能,因此您只能使用 IP 地址。
我希望这可以帮助某些人使这个过程变得非常简单并且有用。