如何构建一台网络引导服务器(二)

我们将向你展示如何在第一部分的基础上,重新配置网络引导镜像,以便 活动目录 中的用户帐户可以进行登录,然后从一个 NFS 服务器上自动挂载他们的家目录。

-- Gregory Bartholomew

致谢

编译自 |

https://fedoramagazine.org/how-to-build-a-netboot-server-part-2/

作者 | Gregory Bartholomew

译者 | qhwdw 共计翻译:174.5篇 贡献时间:421 天

在如何构建一台网络引导服务器(一)

[1]

的文章中,我们展示了如何创建一个网络引导镜像,在那个镜像中使用了一个名为 帐户,它的家目录位于内存中,重启后家目录中的内容将全部消失。然而很多用户都希望机器重启后保存他们的文件和设置。因此,在本系列的第二部分,我们将向你展示如何在第一部分的基础上,重新配置网络引导镜像,以便活动目录

[2]

中的用户帐户可以进行登录,然后从一个 NFS 服务器上自动挂载他们的家目录。

本系列的第三部分,我们将向你展示网络引导客户端如何与中心化配置的 iPXE 引导菜单进行交互。

设置使用 KRB5 认证的 NFS4 Home 目录

按以前的文章 “使用 Kerberos 强化共享的 NFS Home 目录安全性

[3]

” 的指导来做这个设置。

删除 Liveuser 帐户

删除本系列文章第一部分中创建的 帐户:

配置 NTP、KRB5 和 SSSD

接下来,我们需要将 NTP、KRB5 和 SSSD 的配置文件复制进客户端使用的镜像中,以便于它们能够使用同一个帐户:

在已配置的识别服务的基础上,重新配置 sssd 提供认证服务:

另外,配置成确保客户端不能更改这个帐户密码:

另外,复制 nfsnobody 的定义:

加入活动目录

接下来,你将执行一个 将客户端镜像加入到活动目录。从删除预置在网络引导镜像中同名的计算机帐户开始:

在网络引导镜像中如果有 文件,也删除它:

到网络引导镜像中:

执行一个加入操作:

现在登出 chroot,并清除 root 用户的命令历史:

安装和配置 PAM 挂载

我们希望客户端登入后自动挂载用户家目录。为实现这个目的,我们将要使用 模块。安装和配置 :

重新配置 PAM 去使用 :

另外,要确保从客户端上总是可解析 NFS 服务器的主机名:

可选,允许所有用户可以使用 :

转换 NFS 根目录到一个 iSCSI 后备存储器

在一个 nfsroot 连接建立之后,目前版本的 nfs-utils 可能很难为家目录建立一个从客户端到 NFS 服务器的第二个连接。当尝试去访问家目录时,客户端将被挂起。因此,为了共享网络引导镜像,我们将使用一个不同的协议(iSCSI)来规避这个问题。

首先 到镜像中,重新配置它的 ,让它从一个 iSCSI 根目录中去引导:

在测试时,qedi 驱动会破坏 iSCSI,因此我们将它禁用。

接着,创建一个稀疏文件

[4]

。这个稀疏文件代表 iSCSI 目标的后备存储器:

(如果你有一个可使用的独立分区或磁盘驱动器,也可以用它,而不用再去创建这个稀疏文件了。)

接着,使用一个文件系统去格式化镜像、挂载它、然后将网络引导镜像复制进去:

在使用 SquashFS 测试时,客户端偶尔会出现小状况。似乎是因为 SquashFS 在多处理器客户端上没法执行随机 I/O。(更多内容见squashfs 读取卡顿的奇怪案例

[5]

)。如果你希望使用文件系统压缩来提升吞吐性能,ZFS

[6]

或许是个很好的选择。

如果你对 iSCSI 服务器的吞吐性能要求非常高(比如,成百上千的客户端要连接它),可能需要使用带负载均衡

[7]

的Ceph

[8]

集群了。更多相关内容,请查看使用 HAProxy 和 Keepalived 负载均衡的 Ceph 对象网关

[9]

安装和配置 iSCSI

为了给我们的客户端提供网络引导镜像,安装 包:

配置 iSCSI 守护程序去提供 文件:

开头的 是 所需要的。

添加一个防火墙例外,并启用和启动这个服务:

你现在应该能够使用 命令看到这个镜像共享了:

上述命令的输出应该类似如下的内容:

现在,我们可以去删除本系列文章的第一部分中创建的 NFS 共享了:

你也可以删除 文件系统,但为了以后进一步更新,你可能需要保留它。

更新 ESP 去使用 iSCSI 内核

更新 ESP 去包含启用了 iSCSI 的 :

更新 文件去传递新的 和 参数:

现在,你只需要从 目录中复制更新后的文件到所有客户端系统的 ESP 中。你应该会看到类似下面屏幕截图的结果:

更新镜像

首先,复制出一个当前镜像的副本:

进入到镜像的新副本:

允许更新内核:

执行升级:

阻止更新过的内核被再次更新:

上述命令是可选的,但是在以后,如果在镜像中添加和更新了几个包,在你的客户端之外保存有一个最新内核的副本,会在关键时刻对你非常有帮助。

清理 dnf 的包缓存:

退出 chroot 并清理 root 的命令历史:

创建 iSCSI 镜像:

定义一个新的 iSCSI 目标,指向到新的镜像并导出它:

添加新内核和 到 ESP:

更新 ESP 的 :

最后,从我的 目录中复制文件到所有客户端系统的 ESP 中去使用它吧!

via:https://fedoramagazine.org/how-to-build-a-netboot-server-part-2/

作者:Gregory Bartholomew

[11]

选题:lujun9972译者:qhwdw校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181230B0KLTJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券