物理机更改 IP

介绍如何更改平台里面物理机的 IPMI 、PXE 以及安装好操作系统的 IP 地址。

云平台里面的物理机会分配 2 个 IP 地址,一个分配给 BMC IPMI 的地址,还有一个是物理机 PXE 启动时候的地址。如果物理机安装操作系统,会在平台生成一条裸金属的记录,裸金属记录也会被分配一个 IP 地址。物理机安装操作系统的时候,在默认没有指定 IP 地址的情况下,裸金属分配的 IP 地址会优先复用对应物理机上的 PXE IP 地址。

通常情况下,这些 IP 地址都由云平台记录和管理,不需要手动去更改。但有时候遇到物理网络的变更,可能会手动更改 IPMI 或者操作系统里面的 IP 地址,手动更改相应的 IP 地址后,就需要更新云平台对应的 IP 地址。

物理机更改 IP

对于没有安装操作系统的物理机,可以更改 IPMI 和 PXE 的 IP 地址。

更改 IPMI IP

假设要把名称为 bm1 的物理机 IPMI 地址变为 10.0.2.2

# 先用 host-list 找到对应的物理机
# 能看到 bm1 的状态 status 字段为 running
$ climc host-list --search bm1
+--------------------------------------+------+-------------------+--------------+---------+---------+-------------+----------+-----------+------------+---------------+--------------+-----------+--------------+-----------+--------------+
|                  ID                  | Name |    Access_mac     |  Access_ip   | Status  | enabled | host_status | mem_size | cpu_count | node_count |      sn       | storage_type | host_type | storage_size | domain_id | public_scope |
+--------------------------------------+------+-------------------+--------------+---------+---------+-------------+----------+-----------+------------+---------------+--------------+-----------+--------------+-----------+--------------+
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 52:54:00:12:34:56 | 10.168.26.70 | running | true    | offline     | 4096     | 1         | 1          | Not Specified | hybrid       | baremetal | 215040       | default   | system       |
+--------------------------------------+------+-------------------+--------------+---------+---------+-------------+----------+-----------+------------+---------------+--------------+-----------+--------------+-----------+--------------+

# 查看 bm1 上网卡对应的 IP 地址
# 能够看到类型为 ipmi 的网卡 30:4e:05:26:22:43 分配的地址为 10.0.2.3
$ climc host-network-list --host bm1 --details
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+
|             Baremetal_ID             | Host |              Network_ID              |  Network   |   IP_addr    |     Mac_addr      | Nic_Type |
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 14f56d88-0a70-404f-872e-56949bf0e488 | pxe-net    | 10.168.26.72 | 52:54:00:12:34:56 | admin    |
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 14f56d88-0a70-404f-872e-56949bf0e488 | ipmi-net   | 10.0.2.3     | 30:4e:05:26:22:43 | ipmi     |
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+

# 更新 IPMI 地址为 10.0.2.2
$ climc host-update --ipmi-ip-addr 10.0.2.2 bm1

# 更新完 IPMI 地址后需要调用 IPMI 探测的接口重新刷新一遍信息
$ climc host-ipmi-probe bm1

# 执行 host-ipmi-probe 后,bm1 的状态 status 字段会变为 start_probe
# 探测完成后状态会变为 running ,期间可以用 host-list 命令查看

# 等到探测完毕后,再用 host-network-list 命令查看 ipmi 地址
# 发现已经更新为 10.0.2.2
$ climc host-network-list --host bm1 --details | grep ipmi
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 14f56d88-0a70-404f-872e-56949bf0e488 | ipmi-net   | 10.0.2.2     | 30:4e:05:26:22:43 | ipmi     |

更改 PXE IP

物理机在安装系统,或者重装系统的时候,会先 PXE 引导进入平台定制的精简 Linux 系统,可以通过以下命令更改 PXE 启动时分配的 IP 地址。

假设要把名称为 bm1 的 PXE 启动 IP 地址从 10.168.26.72 变为 10.168.26.70 。

# 先查看物理机 bm1 上网卡已经分配的 IP 地址
$ climc host-network-list --host bm1 --details
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+
|             Baremetal_ID             | Host |              Network_ID              |  Network   |   IP_addr    |     Mac_addr      | Nic_Type |
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 14f56d88-0a70-404f-872e-56949bf0e488 | pxe-net    | 10.168.26.72 | 52:54:00:12:34:56 | admin    |
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 14f56d88-0a70-404f-872e-56949bf0e488 | ipmi-net   | 10.0.2.2     | 30:4e:05:26:22:43 | ipmi     |
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+

# 其中类型为 admin 的网卡表示分配给 PXE 启动的 IP
# 对应网卡的 MAC 地址为 52:54:00:12:34:56
# 先把物理机网卡禁用
$ climc host-disable-netif bm1 52:54:00:12:34:56

# 然后重新启用对应网卡,分配指定的 IP 地址
$ climc host-enable-netif --ip 10.168.26.70 bm1 52:54:00:12:34:56

# 再查看 bm1 上的网卡 IP 地址分配情况,发现 admin 类型的网卡已经变为 10.168.26.70
$ climc host-network-list --host bm1 --details
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+
|             Baremetal_ID             | Host |              Network_ID              |  Network   |   IP_addr    |     Mac_addr      | Nic_Type |
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 14f56d88-0a70-404f-872e-56949bf0e488 | pxe-net    | 10.168.26.70 | 52:54:00:12:34:56 | admin    |
| 610a7133-a2f6-4e52-8b12-2067296863a4 | bm1  | 25056dcc-45dr-3wef-8734-9b5694f880e4 | ipmi-net   | 10.0.2.2     | 30:4e:05:26:22:43 | ipmi     |
+--------------------------------------+------+--------------------------------------+------------+--------------+-------------------+----------+

裸金属更改 IP 地址

物理机安装完操作系统后,在平台有一条对应的裸金属记录,裸金属分配的 IP 地址对应当前磁盘操作系统上的 IP 地址,如果手动修改了操作系统的 IP,需要使用以下的命令行更改对应裸金属的 IP 地址。

# 先找到物理机 bm1 上对应的裸金属记录
$ climc server-list --scope system --host bm1

# 查看裸金属 bms 上的网卡和 IP 地址对应关系
# 会发现 bms 上的网卡 MAC 地址其实和 bm1 物理机的网卡时一致的
# IP 地址也是优先复用的
$ climc server-network-list --server bms --details
+--------------------------------------+-------+--------------------------------------+---------+-------------------+---------------+
|               Guest_ID               | Guest |              Network_ID              | Network |     Mac_addr      |     IP_addr   |
+--------------------------------------+-------+--------------------------------------+---------+-------------------+---------------+
| 398df1ce-1675-42b9-87d0-87634e21f139 | bms   | 14f56d88-0a70-404f-872e-56949bf0e488 | pxe-net | 52:54:00:12:34:56 | 10.168.26.72  |
+--------------------------------------+-------+--------------------------------------+---------+-------------------+---------------+

# 然后更新裸金属 bms 的 IP 地址,改为 pxe-net 子网里面的 10.168.26.70 地址
$ climc server-change-ipaddr bms 52:54:00:12:34:56 pxe-net:10.168.26.70