Creating a BMS (Native OpenStack API)

Function

This interface is used to create a BMS.

Constraints

  • This interface cannot be used to create BMSs in batches.

  • When you create a BMS using an image that supports Cloud-Init or Cloudbase-Init, only parameter key_name can be configured. (Parameter adminPass is invalid.) The password of a Linux BMS can be injected only using parameter user_data. The password of a Windows BMS can be injected only using metadata admin_pass.

  • When you create a BMS using an image that does not support Cloud-Init or Cloudbase-Init, both parameters adminPass and key_name are invalid. You need to use the password or certificate of the image to log in to the BMS.

  • File injection is not supported.

  • BMS creation from a system volume is not supported.

  • Parameter port in the three network parameters (port, uuid, and fixed_ip) has the highest priority. If parameter fixed_ip is set, you must specify the UUID.

  • After a BMS is created, it is recommended that you attach the __type_baremetal tag to the BMS. This tag specifies that the created server is a BMS. Otherwise, the BMS may not be displayed in the BMS list on the management console.

  • A BMS can have a maximum of two VPCs, in which case the first VPC will be used by the primary NIC.

URI

POST /v2.1/{project_id}/servers

Table 1 lists the parameters.

Table 1 Parameter description

Parameter

Mandatory

Description

project_id

Yes

Specifies the project ID.

For how to obtain the project ID, see Obtaining Required Information.

Request

  • Request parameters

    Parameter

    Mandatory

    Type

    Description

    server

    Yes

    Object

    Specifies the BMS information, see Table 2.

    Table 2 server field data structure description

    Parameter

    Mandatory

    Type

    Description

    imageRef

    Yes

    String

    Specifies the ID of the image used by the BMS or the image resource uniform resource locator (URL).

    Note

    • BMSs using certain flavors do not support all public images provided by the cloud service platform. To obtain the images supported by a BMS flavor, log in to the management console, view the images displayed on the Create ECS page, and obtain the image IDs on the Image Management Service page.

    • If the creation fails, modify the parameter settings.

    flavorRef

    Yes

    String

    Specifies the ID or URL of the flavor used by the BMS.

    name

    Yes

    String

    Specifies the BMS name. It contains a maximum of 255 characters and cannot be left blank.

    metadata

    No

    Object

    Specifies the BMS metadata. The maximum size for both the metadata key and value is 255 characters. For details, see Table 3.

    user_data

    No

    String

    Specifies the user data to be injected during the BMS creation.

    Text, text files, and .gzip files can be injected. The content to be injected cannot be greater than 32 KB in size. The content to be injected must be encoded with base64.

    adminPass

    No

    String

    Specifies the initial login password of the BMS administrator account. This parameter is invalid for a Linux BMS. The administrator account of a Windows BMS is Administrator.

    Password complexity requirements:

    • The password contains 8 to 26 characters.

    • The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters (!@$%^-_=+[{}]:,./?).

    • The password cannot contain the username or the username in reverse.

    • The Windows BMS password cannot contain the username, the username in reverse order, or more than two consecutive characters in the username.

    Note: If this parameter is not specified, a random password will be generated.

    Special characters: !@$%^-_=+[{}]:,./?

    security_groups

    No

    Array of objects

    Specifies the security group of a BMS. The default value is default. This parameter is valid when you specify parameter network. You are not allowed to specify multiple security groups. For details, see Table 4.

    networks

    Yes

    Array of objects

    Specifies the BMS NICs. For details, see Table 5.

    You can specify a maximum of four networks for a BMS, including two VXLAN networks and two GENEVE networks. The first network in the parameter must be a VXLAN network. The network is used as by the primary NIC of the BMS. If multiple groups of network parameters are specified, ensure that the parameters of each group belong to the same VPC.

    key_name

    No

    String

    Specifies the name of a key pair. This is an extended attribute.

    availability_zone

    Yes

    String

    Specifies information about the AZ to which the BMS belongs. You are not allowed to specify host information.

    Table 3 metadata field data structure description

    Parameter

    Mandatory

    Type

    Description

    User-defined field key and value pair

    No

    String

    Specifies the key and value pair of the metadata.

    Each key or value contains a maximum of 255 characters.

    Table 4 security_groups field data structure description

    Parameter

    Mandatory

    Type

    Description

    name

    Yes

    String

    Specifies the name of the security group to which the BMS belongs.

    Table 5 networks field data structure description

    Parameter

    Mandatory

    Type

    Description

    port

    No

    String

    Specifies the UUID of the network port.

    uuid

    No

    String

    Specifies the network UUID.

    fixed_ip

    No

    String

    Specifies the fixed IP address.

  • Example request

    POST https://{ECS Endpoint}/v2.1/bbf1946d374b44a0a2a95533562ba954/servers
    
    {
        "server": {
            "imageRef": "1a6635d8-afea-4f2b-abb6-27a202bad319",
            "flavorRef": "physical.o2.medium",
            "name": "bms_name01",
            "availability_zone": "az-dc-1",
            "networks": [
                {
                    "uuid": "8470310b-bfa2-4edf-8f64-d15196b2b2c9"
                }
            ]
        }
    }
    

Response

  • Response parameters

    Parameter

    Type

    Description

    server

    Object

    Specifies the BMS information. For details, see Table 6.

    Table 6 server field data structure description

    Parameter

    Type

    Description

    security_groups

    Array of objects

    Specifies information about the BMS security group. For details, see Table 7.

    OS-DCF:diskConfig

    String

    Specifies the disk configuration. The value can be:

    • MANUAL: The API uses the partitioning scheme in the image and the file system to create a BMS. If the target flavor has a large disk, the API does not partition the remaining disk space.

    • AUTO: The API uses a single partition with the same size as the disk of the target flavor to create a BMS. The API automatically adjusts the file system to adapt to the entire partition.

    id

    String

    Specifies the BMS ID.

    links

    Array of objects

    Specifies the shortcut links of the BMS. For details, see Table 8.

    adminPass

    String

    Specifies the initial login password of the BMS administrator account.

    Table 7 security_groups field data structure description

    Parameter

    Type

    Description

    name

    String

    Specifies the name of the security group to which the BMS belongs.

    Table 8 links field data structure description

    Parameter

    Type

    Description

    rel

    String

    Specifies the shortcut link marker name. The value can be:

    • self: resource link that contains the version number. It is used when immediate tracing is required.

    • bookmark: resource link that can be stored for a long time.

    href

    String

    Specifies the corresponding shortcut link.

  • Example response

    {
        "server": {
            "security_groups": [
                {
                    "name": "default"
                }
            ],
            "OS-DCF:diskConfig": "MANUAL",
            "links": [
                {
                    "rel": "self",
                    "href": "https://openstack.example.com/v2/c685484a8cc2416b97260938705deb65/servers/9ab74d89-61e7-4259-8546-465fdebe4944"
                },
                {
                    "rel": "bookmark",
                    "href": "https://openstack.example.com/c685484a8cc2416b97260938705deb65/servers/9ab74d89-61e7-4259-8546-465fdebe4944"
                }
            ],
            "id": "9ab74d89-61e7-4259-8546-465fdebe4944",
            "adminPass": "RjdD3h8U2DBe"
        }
    }
    

Returned Values

Normal values

Returned Values

Description

200

The request has been successfully processed.

For details about other returned values, see Status Codes.

Error Codes

See Error Codes.