裸金属服务器的管理
引导式阅读
Java
裸金属服务器的管理
作者
C***
上架时间
2021-07-02 07:45:39

版本说明

本示例基于华为云SDK V1.0版本开发,高版本示例正在开发中。

功能介绍

裸金属服务器是一款兼具虚拟机弹性和物理机性能的计算类服务,为您和您的企业提供专属的云上物理服务器,为核心数据库、关键应用系统、高性能计算、大数据等业务提供卓越的计算性能以及数据安全。通过下面的介绍您可以了解到裸金属服务器的创建、查询以及重命名等操作。

准备工作

  • 1、华为云 Java SDK 支持两种认证方式:token认证和AK/SK认证
  • 2、华为云 Java SDK 支持 Java JDK 1.8 及其以上版本。

裸金属服务器的管理

初始化客户端

参数获取可参照准备工作中华为云SDK认证方式。

String user = "******"; String password = "******"; String projectId = "******"; String userDomainId = "******"; String authUrl = "******"; OSClientV3 osclient = OSFactory.builderV3().endpoint(authUrl) .credentials(user, password, Identifier.byId(userDomainId)).scopeToProject(Identifier.byId(projectId)) .authenticate();

创建裸金属服务器

创建所需部分参数

名称 类型 描述
availabilityZone string 裸金属服务器对应可用区信息,需要指定可用区(AZ)的名称。请参考地区和终端节点获取。
name string 裸金属服务器名称。取值范围:只能由中文字符、英文字母(a~z,A~Z)、数字(0~9)、下划线(_)、中划线(-)、点(.)组成,且长度为[1-63]个字符。创建的裸金属服务器数量大于1时,为区分不同裸金属服务器,创建过程中系统会自动在名称后加“-0000”的类似标记。故此时名称的长度为[1-58]个字符。
imageRef string 裸金属服务器使用的镜像ID或者镜像资源的URL。ID格式为通用唯一识别码(Universally Unique Identifier,简称UUID)。镜像ID可以从镜像服务控制台获取,或者参考《镜像服务API参考》的“查询镜像列表”章节查询。
flavorRef string 裸金属服务器使用的规格ID,格式为physical.x.x。规格ID可以从裸金属服务器控制台获取,也可以通过查询裸金属服务器规格信息列表(OpenStack原生) API查询。裸金属服务器规格与镜像间的约束关系请参见裸金属服务器类型与支持的操作系统版本。对于physical.x.x.hba类型的规格,申请的租户只能是DeC租户,且只能挂载DESS卷。
dataVolumes Array of objects 裸金属服务器对应数据盘相关配置。每一个数据结构代表一个待创建的数据盘。目前裸金属服务器最多可挂载60块云硬盘(包括系统盘和数据盘)。
vpcId string 裸金属服务器所属虚拟私有云(VPC),需要指定已有VPC的ID,UUID格式。VPC的ID可以从网络控制台或者参考《虚拟私有云API参考》的“查询VPC”章节获取。
networks Array of objects 指定裸金属服务器的网卡信息。一个裸金属服务器最多挂载2个网卡,参数中第一个网卡会作为裸金属服务器的主网卡。若用户指定了多组网卡参数,需保证各组参数都属于同一VPC。
count integer 创建裸金属服务器的数量。不传该字段时默认取值为1。租户的配额足够时,最大值为24。
schedulerHints object 裸金属服务器的调度信息。当需要在专属云中创建裸金属服务器时,该字段必选。
extendParam object 创建裸金属服务器的附加信息。
metadata object 裸金属服务器元数据,key和value的长度均不大于255字节。
keyName string 扩展属性,指定密钥的名称。如果需要使用SSH密钥方式登录裸金属服务器,请指定已有密钥的名称。密钥可以通过创建和导入SSH密钥(OpenStack原生) API创建,或者使用查询SSH密钥列表(OpenStack原生) API查询已有的密钥。当key_name和user_data同时指定时,user_data只能用做用户数据注入。当使用Windows镜像创建裸金属服务器时,该字段不能为空(即Windows镜像只支持密钥登录)。Windows裸金属服务器登录时,首先需要将密钥解析为密码,然后通过远程登录工具进行登录。具体请参见“MSTSC密码方式登录”。
securityGroups Array of objects 指定裸金属服务器的安全组。

代码展示

// create bms server String imageRef = "******"; String flavorRef = "******"; String vpcId = "******"; String subnetId = "******"; String serverName = "******"; String availabilityZone = "******"; String ipAddress = "******"; Map<String, Object> map = new HashMap<String, Object>(); map.put("op_svc_userid", "*****"); String securityGroupId = "******"; String keyName = "******"; List<IdResourceEntity> securityGroups = new ArrayList<IdResourceEntity>(); IdResourceEntity idResourceEntity = new IdResourceEntity(); idResourceEntity.setId(securityGroupId); securityGroups.add(idResourceEntity); ServerCreate creation = ServerCreate.builder().availabilityZone(availabilityZone).name(serverName).imageRef(imageRef).flavorRef(flavorRef) .dataVolumes(Arrays.asList(DataVolume.builder().type(VolumeType.SATA).shareable(false).size(10).build())) .vpcId(vpcId).networks(Arrays.asList(Network.builder().subnetId(subnetId).ipAddress(ipAddress).build())).count(1) .schedulerHints(SchedulerHints.builder().decBaremetal(DecBaremetal.share).build()).extendParam(ServerExtendParam.builder() .isAutoPay(true).periodType(PeriodType.month).periodNum(1).build()).metadata(map) .keyName(keyName).securityGroups(securityGroups).build(); AsyncRespEntity bareMetaServerCreate = osclient.bms().servers().create(creation); System.out.println(bareMetaServerCreate); System.out.println("create BMS Server success...");

说明

  • 1、不支持文件注入功能。
  • 2、目前仅支持创建包周期裸金属服务器。
  • 3、创建时的具体参数说明请参考API Explorer

查询裸金属服务器详情

根据ID获取裸金属服务器的详细信息

// query bms server details String serverId = "******"; BareMetaServer BareMetaServerDetail = osclient.bms().servers().get(serverId); System.out.println(BareMetaServerDetail); System.out.println("query BMS Server success...");

说明:更多信息请参考API Explorer

修改裸金属服务器名称

根据ID修改裸金属服务器名称

// rename bms server String serverId = "******"; String newServerName = "*******"; BareMetaServer bareMetaServer = osclient.bms().servers().rename(serverId, newServerName); System.out.println(bareMetaServer); System.out.println("rename BMS Server success...");

说明:只修改裸金属服务器的实例名称,但hostname不能同步修改。重启裸金属服务器后生效。更多信息请参考API Explorer

参考

更多信息请参考裸金属服务器 BMS