如何远程启动 CentOS 7 的 netinstall?

如何远程启动 CentOS 7 的 netinstall?

我有 50 多台机器运行 CentOS 6.4 或 6.8。我希望使用配置脚本(例如使用“基本服务器”模板并根据硬件 ID 设置主机名/静态 IP)使用位于本地网络上的公共 NFS 和/或 CIFS 共享上的安装介质重新安装 CentOS 7。稍后,我打算使用 Ansible 远程控制这些机器,因此我也想运行安装后脚本。

我如何远程(通过 SSH)触发此重新安装?


根据 Iain 的回答和一些谷歌搜索,以下是如何从 CentOS 7 执行此类安装:

下载 vmlinuz 和 initrd.img 到启动中:

sudo curl -o /boot/vmlinuz http://mirror.zetup.net/CentOS/7/os/x86_64/isolinux/vmlinuz
sudo curl -o /boot/initrd.img http://mirror.zetup.net/CentOS/7/os/x86_64/isolinux/initrd.img

添加自定义菜单条目到/etc/grub.d/40_custom

menuentry "My custom boot entry" {
    set root=(hd0,1)
    linux /vmlinuz ks=http://my-server/ks.cfg
    initrd /initrd.img
}

在上面的行中添加任何其他选项linux

将自定义条目设为默认选择/etc/default/grub

GRUB_DEFAULT="My custom boot entry"

然后运行:

grub2-mkconfig --output=/boot/grub2/grub.cfg

喝杯咖啡然后重新启动:

reboot

答案1

您可以通过使用合适的命令行参数启动内核来从 grub 重新安装。我概述了以下过程:EL6 就在这里但 EL7 需要进行一些更改。这只是一个概述,但它应该能让您朝着正确的方向前进。

从您选择的 repo下载/centos/7/os/x86_64/isolinux/vmlinuz到 下载到/boot
/centos/7/os/x86_64/isolinux/initrd.img/boot

配置 grub 条目-把这个放在第一位。

title Install CentOS7
kernel /vmlinuz ro upgradeany biosdevname=0 net.ifnames=0 ip=192.168.254.44::192.168.254.220:255.255.255.0:somehost.tld:eth0:none ks=http://server.tld/ks/kickstart.ks  nameserver=8.8.8.8 headless vnc vncpassword=SomePassword
initrd /initrd.img

上述操作将启动安装内核并按照说明配置其 IPv4,然后拉下 kickstart 脚本并从那里安装系统。

注意:当我这样做时,要求系统使用旧式 ethN 接口名称。如果您想要新的一致命名,那么您可能必须弄清楚如何为 ip 节提供接口

ip=address::gateway:netmask:hostname:interface:method

你可能会逃脱

ip=dhcp

可以省略接口,例如

ip=address::gateway:metmask:hostname::none

一旦你让它工作起来,它就会运行良好。你可能想看看相关文件

我启动了一个 VNC 服务器,这样我就可以看到发生了什么,如果需要的话可以省略。

headless 参数会阻止系统查找和初始化视频硬件,您可能希望省略该参数并在 IPMI 控制台上观看。

相关内容