裸金属实例管理操作与虚拟机一致,若使用UI界面操作可参考虚拟机实例发放流程。在controller节点执行以下操作。
1
|
openstack flavor create --ram $RAM_MB --vcpus $CPU --disk $DISK_GB ${flavor_name} |
其中flavor_name可自定义。
并根据需求设置flavor属性。
1 2 3 4 |
openstack flavor set --property resources:CUSTOM_${CLASS_NAME}=1 $flavorName openstack flavor set --property resources:VCPU=0 $flavorName openstack flavor set --property resources:MEMORY_MB=0 $flavorName openstack flavor set --property resources:DISK_GB=0 $flavorName |
flavor中custom resource class应与裸金属实例管理资源类型相关联,关联规则如下:
如资源类名为baremetal-small,则对应为CUSTOM_BAREMETAL_SMALL。
1
|
openstack baremetal node list --provision-state available --no-maintenance |
1
|
openstack compute service list --service nova-compute |
1
|
openstack --os-baremetal-api-version 1.21 baremetal node list --fields uuid name resource_class |
1
|
openstack baremetal node show $BM_NAME --fields properties |
应至少包含memory_mb、cpu_arch、local_gb、cpus等信息。
检查所创建的实例类型flavor属性。
应与裸金属实例管理节点相对应,显示格式上会存在差异。
vi /opt/cloud-init-user-data.txt
1 2 3 4 5 6 7 8 9 10 11 12 |
#cloud-config users: - name: root chpasswd: list: | root:PASSWORD expire: False ssh_pwauth: true disable_root: false runcmd: - [ systemctl, restart, network ] |
1
|
nova boot --config-drive true --flavor ${flavor_name} --image ${image_uuid} ${instance_name} --nic net-id=${network_uuid} --user-data /opt/cloud-init-user-data.txt |
其中instance_name可自定义。
此处所使用的用户镜像为1中所述镜像,用户镜像的体系架构应与实际物理服务器相匹配,可通过命令openstack image list获取镜像UUID。此处所使用的网络为创建Provisioning Network中所创建的网络,可通过命令openstack network list获取网络UUID。
1
|
watch -d -n 1 "openstack baremetal node list" |
所配置的管理节点Provisioning State变化为
。
1
|
nova show ${instance_name} |
其status应为ACTIVE。
1
|
openstack baremetal node list |
裸金属实例管理节点Provisioning State为active,Instance UUID为所创建实例的UUID。
若nova返回“No valid host was found”错误,则需进行2所述的检查,还可查看nova-scheduler服务日志检查是否被过滤器过滤,若无发现,则需查看ironic-conductor服务日志进一步定位。