Raspberry Pi 教程:Raspberry Pi PXE 网络启动搭建网络控制器

正如 Simon 在他最近关于 Raspbian Stretch 的博客中提到的那样,我们开发了一个名为 PiServer 的新软件。使用此工具,可以轻松建立通过以太网连接到单个基于 x86 的服务器的客户端 Raspberry Pi 网络。使用 PiServer,您不需要 SD 卡,您可以通过服务器控制所有客户端,并且可以添加和配置用户帐户 - 其对于教室、家庭或工业设置是理想的选择。

PiServer

客户端?服务端?

在讨论细节之前,让我先快速解释一些术语。

  • 服务器,服务器是向客户端提供文件系统、启动文件和密码认证的计算机,
  • 客户端,客户端是通过网络从服务器检索引导文件的计算机,然后使用服务器共享的文件系统。多个客户端可以连接到一个服务器,但所有客户端使用相同的文件系统。
  • 用户,用户是一个用户名/密码组合,允许某人登录到客户端访问服务器上的文件系统。任何用户都可以使用他们的凭据登录到任何客户端,并且将始终看到相同的服务器并共享相同的文件系统。用户在客户端上没有 sudo 功能,这意味着他们不能对文件系统和软件进行重大更改。

没有 SD 卡

去年,我们描述了如何从另一台计算机(服务器)通过以太网网络引导,而没有 SD 卡的 Raspberry Pi 3 型号 B。其被称为网络引导或 PXE(发音为 'pixie')引导。

为什么你想要这么做?

  • 客户端计算机(Raspberry Pi)不需要任何永久存储(SD 卡)来启动。
  • 您可以将大量客户端连接到一台服务器,并且所有客户端都完全相同。如果您登录到其中一个客户端,您将看到相同的文件系统,就像您登录到其他任何客户端一样。
  • 服务器可以在 x86 系统上运行,这意味着您可以利用服务器上的性能,网络和磁盘速度。

听起来不错,对吧?当然,对于技术较差的人来说,创建这样一个网络是非常困难的。 例如,需要设置所有必需的 DHCP 和 TFTP 服务器,并确保它们与网络的其他部分运行良好。如果你弄错了,你会破坏你的整个网络。

PiServer

为了方便网络启动,我认为开发一个为您做的一切的应用程序将是很好的。让我来介绍一下:PiServer!

PiServer 具有以下功能:

  • 它会自动检测树莓派试图网络启动,所以你不必解决他们的以太网地址。
  • 它建立了一个 DHCP 服务器 - 在路由器内为所有的网络设备提供一个 IP 地址 - 在代理模式或全IP模式下。不管模式如何,DHCP 服务器只会响应您指定的树莓派,这对网络安全非常重要。
  • 它为服务器创建用户名和密码。对于一个充满 Raspberry Pi 的教室来说,这是一个很好的选择:预先设置好所有的用户,每个人都可以用自己的密码登录,并将所有的工作放在一个中心位置。而且,用户不能更改软件,所以教育者可以控制学习者可以使用哪些程序。
  • 它使用稍微修改的 Raspbian 版本,允许分隔临时空间,没有默认的 “pi” 用户,并且已经启用了 LDAP 登录。

PiServer 可以做些什么?

为整个课堂的 Raspberry Pi 提供服务

在教室里,PiServer 允许将课程或项目的所有文件存储在基于 x86 的中央计算机上。每个用户可以拥有自己的帐户,并且他们创建的任何文件也存储在服务器上。而且,联网的 Raspberry Pi 不需要连接到互联网。教师对所有 Raspberry Pi 进行集中控制,所有 Raspberry Pi 都是用户不可知的,这意味着不需要将个人与电脑或 SD 卡相匹配。

建立一个家庭服务器

PiServer 可以在家中使用,为所有的 Raspberry Pi 提供文件系统 - 为所有 Raspberry Pi 提供一个通用的 Raspbian 文件系统,或者为每个 Raspberry Pi 提供不同的操作系统。希望我们广泛的操作系统供应商将在未来提供合适的构建文件。

使用它作为联网 Raspberry Pi 的控制器

在工业场景中,可以使用 PiServer 开发 Raspberry Pi 网络(甚至可以使用以太网供电(PoE)),使得每个 Raspberry Pi 的控制软件远程存储在服务器上。这样可以从中央存储库轻松远程控制和配置 Raspberry Pi 。

如何使用 PiServer

客户端机器

现在,您可以使用 Raspberry Pi 作为客户端,您需要启用网络启动。使用具有 Raspbian Lite 镜像的 SD 卡开机,并打开一个终端窗口。 输入:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

并按回车键。 这会将行 program_usb_boot_mode = 1 添加到 /boot中的 config.txt 文件的末尾。现在打开 Raspberry Pi 电源并取出 SD 卡。下次您将 Pi 连接到电源时,您将可以通过网络启动它。

服务端机器

作为服务器,您将需要一台可以安装 x86 Debian Stretch 的 x86计算机。 有关这方面的更多信息,请参阅 Simon 的博客文章。 也可以使用树莓派服务于客户端 Raspberry Pi,但是文件系统会比较慢,特别是在启动时。

确保您的服务器有足够的磁盘空间可用于文件系统 - 一般来说,我们推荐至少 16GB SD 卡的树莓派。整个客户端文件系统本地存储在服务器上,所以磁盘空间要求相当重要。

接下来,点击开始图标,然后点击首选项(Preferences) -> PiServer,启动 PiServer。它将打开一个图形用户界面 - 向导 - 并将引导您设置您的网络。 跳过介绍屏幕,你会看到一个如下所示的屏幕:

PiServer Discover

如果您已在客户端 Raspberry Pi 上启用网络引导,并且它们已连接到电源,则其 MAC 地址将自动显示在上面显示的表中。 添加完所有Raspberry Pi 后,单击下一步(NEXT)。

PiServer 添加用户

添加用户(Add users)屏幕上,您可以在您的服务器上设置用户。这些是用于登录到客户端 Raspberry Pi 的有效用户名和密码对。别担心,您可以随时添加更多的用户。完成后再次点击下一步(NEXT)。

PiServer 服务器

添加软件(Add software) 屏幕允许您选择要在所连接的 Raspberry Pi 上运行的操作系统。(在向导完成作业后,您可以选择在设置中单独为每个客户端分配一个操作系统。)有一些自动填充的操作系统,如 Raspbian 和 Raspbian Lite。希望我们会在适当的时候增加更多。 您也可以从本地文件提供您自己的操作系统,或者从URL安装它。有关如何创建这些操作系统映像的更多信息,请查看 /var/lib/piserver/scripts 中的脚本。

完成后,再次单击下一步(NEXT)。 然后,向导将安装必要的组件和您选择的操作系统。这需要一点时间,所以要喝一杯咖啡(或者选择不含咖啡因的饮料)。

安装过程完成后,PiServer 启动并运行 - 您只需重新启动 Raspberry Pi 即可从服务器运行。

疑难排除

如果在将客户端连接到网络时遇到困难,则可以执行以下几项操作来进行调试:

  • 如果某些客户端正在连接,但是其他客户端却没有连接,请检查您是否在 Raspberry Pi 上启用了网络引导模式,以解决问题。要做到这一点,将以太网电缆插入 Pi(取出SD卡) - Pi 和连接器上的 LED 应亮起。如果没有发生,您需要按照上面的说明启动 Pi,并编辑其 /boot/config.txt 文件。
  • 如果您无法连接到任何客户端,请检查您的网络是否合适:格式化 SD 卡,并将 bootcode.bin 从标准 Raspbian 映像上的 / boot 复制到其上。将卡插入客户端 Raspberry Pi,并检查它是否在 PiServer GUI 中显示为新的 MA C 地址。如果是这样,那么这个问题是一个已知的问题,你可以前往我们的论坛寻求建议(网络启动代码有一些我们已经知道的问题)。 对于临时修复,您可以克隆为您的所有客户端存储 bootcode.bin 的 SD 卡。

如果这些东西都不能解决你的问题,我们的论坛就是寻求帮助的地方 - 那里有很多 PiServer 工作的人。如果你确定你已经发现了一个在论坛上没有解决的问题,或者你有一个功能的请求,那么请把它添加到 GitHub 的 issues 里。

英语原文链接:https://www.raspberrypi.org/blog/piserver/

尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.