MAAS 中的节点未在 LAN 上唤醒

MAAS 中的节点未在 LAN 上唤醒

我正在尝试在 MAAS 集群中添加节点。我使用 Ubuntu 14.04 LTS 在 VM 中设置了 MAAS 服务器。我完成了安装后任务,例如安装 MAAS、配置网络、DHCP-DNS、创建登录名、导入启动映像,如下所述:

在节点的 BIOS 中,我确实更改了启动顺序,以便它从 LAN 启动,并且节点成功从 PXE 启动,从 MAAS 集群控制器通过 atuo 检测节点功能启动,并且 MAAS DHCP 服务器从其 DHCP 范围向节点提供 IP 地址(在这个过程中,我第一次从节点的电源按钮而不是从 MAAS 打开节点)

完成上述过程后,机器现在在 MAAS 中显示“已声明”并且节点自动关闭。

节点上已经配置了网络唤醒详细信息,为了确保一切正常,我通过手机应用程序测试了网络唤醒功能,并且它运行正常。

现在我从菜单中检查了“调试”,但调试没有从节点中提取其他信息(节点已关闭,因为 MAAS 没有向节点的局域网唤醒发送魔术包),但如果我在显示大量行后再次通过我的移动应用程序自行打开节点,节点电源就会关闭,然后节点会在 MAAS 中向我显示“就绪”状态,但是当我检查节点 CPU 和 RAM 详细信息时,它显示 0MB 0CPU。

完成上述任务后,MAAS 显示节点状态已准备就绪,然后我尝试从 MAAS 启动节点,它显示“无法在 1 个节点上执行“委托选定节点”操作,因为其状态不允许该操作。”

主要问题:节点局域网唤醒功能在我的移动应用程序中 100% 有效,但 MAAS 并未从第一步向节点发送魔术包。MAAS、节点和移动设备之间没有防火墙。

重要的:我正在整个网络中使用 MAAS DHCP,这样我就可以使用 MAAS DNS 从我的手机浏览互联网。

答案1

我刚刚发现,如果使用电源类型,MAAS 会使用 Etherwake 或 Wakeonlan 来启动节点wake-on-lan

这些不是默认安装的,并且不是 MAAS 的依赖项。

只需从标准 Ubuntu 仓库安装 Etherwake 或 Wakeonlan

apt-get install etherwake

或者

apt-get install wakeonlan

然后,当您使用 MAAS 手动添加节点时,请使用您的 MAC 地址进行局域网唤醒,并且一旦您保存节点,派对就开始了!

我在以下文件中找到了相关信息,请看一下:

/etc/maas/templates/power/ether_wake.template

答案2

您可能不需要 wakeonlan 和 etherwake。/etc/maas/templates/power/ether_wake.template 中的 wakeonlan 模板首先检查 wakeonlan,如果未安装 wakeonlan,则检查 etherwake。

我发现,如果我使用 etherwake,我的服务器会唤醒,但使用 wakeonlan 则不会。etherwake 默认使用 eth0。我的 maas 服务器需要改用 em1,因此我在模板中的 etherwake 命令中添加了“-i em1”选项,但 maas 仍然无法唤醒我的服务器。

发现更多。etherwake 使用 udp,这要求它以 root 身份运行,而不是 maas 用户。解决方法是将以下行放在 /etc/sudoers.d 中的文件中

maas ALL=NOPASSWD:/usr/sbin/etherwake

并将 /etc/maas/templates/power/ether_wake.template 中的以下行从:/usr/sbin/etherwake $mac_address 调整为:sudo /usr/sbin/etherwake $mac_address

或者如果你需要使用 eth0 以外的东西:

sudo /usr/sbin/etherwake -i ethint $mac_address

答案3

这似乎在我的系统的 MAAS 2.2.2 版本中不起作用,所以我基于之前版本的修复编写了一个修复程序

https://github.com/yosefrow/MAAS-WoL-driver

按照 README.md 中的说明进行安装

基本上,只有 etherwake 可以在我的系统上运行(而不是 wakeonlan),所以我重写了插件以使用 etherwake。

相关内容