Kickstart、通用安装脚本和默认密码

Kickstart、通用安装脚本和默认密码

我想使用 Kickstart 制作一个通用的自动安装脚本,该脚本将放在 CD 上并与标准 DVD 安装程序结合使用,即,此脚本的用户需要附加inst.ks=cdrom到启动选项,然后它会在仅要求输入密码的机器上安装 Fedora。

似乎标准做法是生成带有密码(或密码哈希)的 Kickstart 脚本,如果您打算将脚本分发给第三方,这似乎并不理想。我还想在 Kickstart 脚本中启用 sshd 服务,这将使 LAN 上任何知道默认密码的人都可以登录到机器。当然,我可以在 sshd 中禁用密码验证,但现在它变得很混乱,即我正在尝试解决公众对默认密码的了解(我很可能忘记了一些东西)。

我是 Kickstart 的新手,我想制作安装脚本来询问/提示/输入站点特定的密码,到目前为止我已经找到了两个选项:

  1. 在部分中询问密码%pre,然后生成例如accounts.ks将从主命令部分包含的命令rootpwuser
  2. 使用静态默认密码并在首次启动时运行交互式脚本,强制用户更改默认密码。(或者可能使用chage%post

我担心的是,根据我的 Google 搜索,没有人这样做,甚至没有人要求这样做。:-) 每个人似乎都将最终密码/哈希直接放入 Kickstart 脚本中。因此,我不得不为这两个选项制作自己的交互式脚本,我担心这最终会很糟糕。或者,我对使用 Kickstart 进行(半)自动化安装的整个概念理解错误。

对于这种情况,创建通用 Kickstart 脚本的标准做法是什么?您需要分发脚本而不是强迫用户编辑它?

答案1

如果您没有提供所需内容的答案,Anaconda 将提示用户输入。

我已经验证了这一点,在 Kickstart 文件中注释掉我的用户和 rootpw 行。安装时,其他所有内容都已预先填充,但我被要求创建 root 密码和用户。(用户是可选的)

文本模式下,安装将等待用户输入,然后继续。在图形模式安装将继续进行,同时允许您在软件包安装过程中提供密码。最后,命令模式不支持用户交互并且将会停止。

前任:

跳过了之前的 Anaconda 屏幕,安装直接进入软件包安装。在安装结束时,Anaconda 等待选择 root 密码,并可选择创建用户。

图形启动

答案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 地址。

我希望这可以帮助某些人使这个过程变得非常简单并且有用。

相关内容