当你使用 MAAS 部署一台机器时,它的网络接口(例如 eno1)设置为“自动”,MAAS 会在部署过程中分配一个 IP。
在 MAAS UI 中,您可以选择机器的接口并将其配置为自动、静态、dhcp 或未配置。如果是静态的,您可以指定 IP 地址。
如何使用 MAAS CLI 指定静态 IP?
答案1
确定您用于静态 IP 的 MAAS 子网。
maas maasadmin subnets read | jq '.[] | {id:.id,name:.name}' --compact-output
找到您要分配静态 IP 地址的服务器的系统 ID。
maas maasadmin nodes read | jq '.[] | {hostname:.hostname,system_id: .system_id, status:.status}' --compact-output
识别将接收静态分配的机器的 NIC。
maas maasadmin interfaces read ${SYSTEM_ID} | jq '.[] | {iface_id:.id, name:.name, mac:.mac_address, vid:.vlan.vid, fabric:.vlan.fabric}' --compact-output
如果 NIC 已具有“自动”链接,请识别此链接并将其删除。(在进入下一步之前,NIC 应处于未配置状态。)
maas maasadmin interfaces read ${SYSTEM_ID} | jq '.[] | .links[] | {link_id:.id, mode:.mode, ipaddr:.ip_address}' --compact-output
maas maasadmin interface unlink-subnet ${SYSTEM_ID} ${NIC_ID} id=${OLD_LINK_ID}
分配静态 IP 地址:
maas maasadmin interface link-subnet ${SYSTEM_ID} ${NIC_ID} mode=STATIC subnet=${SUBNET_ID} ip_address=${STATIC_IP}
一些额外的说明:
- 在运行该流程之前,机器应该处于“就绪”状态(调试之后,部署之前)。
- 您的 MAAS DHCP 设置可能会影响您可用于静态的 IP 地址。具体来说,您不能使用 DHCP 拥有的地址进行静态分配。
- 对于具有多个 NIC 的主机,您可以使用步骤 3 中的 MAC 地址来识别正确的 NIC。
- 注意命令的引号和'管道。引号内的管道是故意的。 |
jq
感谢 Canonical 技术支持部门对此解决方案提供的帮助。