In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-19 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)05/31 Report--
Editor to share with you how to create a cloud server through API, I believe most people do not know much about it, so share this article for your reference, I hope you can learn a lot after reading this article, let's learn about it!
Nine steps to create a CVM through API (for example, create a CVM with a specified image) step 1: determine the availability zone where the CVM is to be created.
1. Query the availability zone.
(1) Information related to API
URI format: GET / v2.1 / {project_id} / os-availability-zone
(2) request example
GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-availability-zone
(3) response example
{"availabilityZoneInfo": [{"hosts": null, "zoneState": {"available": true}, "zoneName": "zone_01"}, {"hosts": null, "zoneState": {"available": true}, "zoneName": "zone_01"}]}
2. Select the availability zone according to the actual needs, and record the zoneName of the availability zone.
Step 2: determine the specification of the CVM to be created.
1. Query the specification information of CVM.
(1) Information related to API
URI format: GET/v2.1/ {project_id} / flavors/detail {? minDisk,minRam,is_public,sort_key,sort_dir}
Among them, "?" The latter field is the optional query retrieval parameter when querying the specification.
(2) request example
GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/detail
(3) response example
{"flavors": [{"name": "c1.2xlarge", "links": [{"href": "https://xxx/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge"," rel ":" self "}, {" href ":" https://xxx/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge", " "rel": "bookmark"}], "ram": 8192, "OS-FLV-DISABLED:disabled": false, "vcpus": 8, "swap": "", "os-flavor-access:is_public": true, "rxtx_factor": 1, "OS-FLV-EXT-DATA:ephemeral": 0, "disk": 0 "id": "c1.2xlarge"}]}
2. Select the specification according to the actual need, and record the ID of the specification.
Step 3: determine the image to be used by the CVM to be created.
1. Query the image.
(1) Information related to API
URI format: GET / v2.1 / {project_id} / images/detail
(2) request example
GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/images/detail
(3) response example
{"images": [{"OS-EXT-IMG-SIZE:size": 0, "metadata": {"_ os_type": "Linux", "hw_vif_multiqueue_enabled": "true", "_ _ imagetype": "gold", "_ _ quick_start": "true", "virtual_env_type": "FusionCompute" "_ _ support_xen": "true", "_ _ support_kvm": "true", "_ _ image_source_type": "uds", "_ _ platform": "EulerOS", "_ _ os_version": "EulerOS 2.264bit", "_ _ os_bit": "64", "_ _ isregistered": "false"} "created": "2018-05-14T06:13:50Z", "minRam": 0, "name": "DBS-MySQL-Image_2.1.3.3", "progress": 100,100, "links": [{"rel": "self", "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"}" {"rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"}, {" rel ":" alternate "," href ":" https://None/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4", " "type": "application/vnd.openstack.image"}], "id": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "updated": "2018-05-14T06:13:52Z", "minDisk": 40, "status": "ACTIVE"}]}
2. Select the image as needed, and record the image ID.
Step 4: determine the network information of the CVM.
1. Query the network.
(1) Information related to API
URI format: GET / v2.1 / {project_id} / os-networks
(2) request example
GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-networks
(3) response example
{"networks": [{"id": "07a9557d-4256-48ae-847c-415a9c8f7ff6", "label": "b_tt3_td1b", "broadcast": null, "cidr": null, "dns1": null, "dns2": null, "gateway": null, "netmask": null, "cidr_v6": null, "gateway_v6": null "netmask_v6": null}]}
2. Select the network according to the need, and record the network ID.
Step 5: set the login mode of the key pair.
If you need to set it to password login, please jump directly to step 7.
1. Create a key pair.
(1) Information related to API
URI format: POST / v2.1 / {project_id} / os-keypairs
(2) request example
POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs
Body:
{"keypair": {"type": "ssh", "name": "demo1", "user_id": "fake"}}
(3) response example
{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrR5Gcwlh6ih7JOvzIUuQxS5qzWWPMYHeDXkDKSQ9W5pumOV05SiO3WCswnaQ5xMdOl31mNiHtwlwq9dJi7X6jJBB2shTD+00G5WuwkBbFU4CLvt1B44u0NUiaTJ35NAvW2/4XvpXm9OwiQ3B5ge6ZY7Esi38Unh+pkbhPkYxNBCK8yoOlojQhWs75abdxZBi811/8RwLcNiFiocA2RGxtRjBdpEScj+1TU+OcfZdQnr0AFbO11z7yxfIygwwzVTgUuJNbMbKHStQqRbklfMlHY4RBPQgb7RN/YaXKTQSXT84k+D9xlDNo7Wj4fwOJTOz/s/PvbIOqjRHt9D6Y4IKd Generated-by-Nova\ n" "private_key": "- BEGIN RSA PRIVATE KEY-\ nMIIEogIBAAKCAQEAq0eRnMJYeYoeyTr8yFLkMUuas1ljzGB3g15AykkPVuabpjld\ nOUojt1grMJ2kOcTHTpd9ZjYh7cJcKvXSYu1+oyQQdrIUw/tNBuVrsJAWxVOAi77d\ nQeOLtDVImkyd+TQL1tv+F76V5vTsIkNweYHumWOxLIt/FJ4fqZG4T5GMTQQivMqD\ npaI0IVrO+Wm3cWQYvNdf/EcC3DYhYqHANkRsbUYwXaREnI/tU1PjnH2XUJ69ABWz\ ntdc+8sXyMoMMM1U4FLiTWzGyh0rUKkW5JXzJR2OEQT0IG+0Tf2Glyk0El0/OJPg/\ ncZQzaO1o+H8DiUzs/7Pz72yDqo0R7fQ+mOCCnQIDAQABAoIBAA6/c9dGmK2mae4z\ nyQ5KrOFdvC1TNhej+sZx+CwyzEJUSvSuHcvQCXFBAz8FY92hhvPKcX66jINXZ+4/\ nCmWAQ5YyhcRiow0Y91HvsS0bywoknX3q6kxBFodmyyCWFkgd5iMTADb1Lx0a27Y7\ njlS4Dl5gyiGmxUN2Ng24wWEAjE8ZNuI0lrtr5IZKp+s5IAi/rb5AG/mL7EzicE8c\ nmGP+QAa+nzwhAwNhFwVID230xen/ZcoL1d77hxeARNqJUxoR25gwJd6Ebg2y9pDW\ nVu6cbbzgdGUCfQYlMEoAamAkCswOsDpVDBXwQnt2A537n6Wq2bgYIKusHr9thtxP\ n/5ubQLUCgYEA4zYuBG2vtLHnvce26P8o2j1xcJS9K0ozkah9JFl3hqFN0sAqLlz7\ n/Fm1jA4kzHJS3d0UqP3AMDxY3HkIqCn4Be7lqeAAe2AfqkOZpt9MDNv4VwKe9sPb\ nViW1qjL3FxziLC/YWTRNSlpwRjqJJGhA+UQt8rOia1k/zXmrEs7bXLcCgYEAwPsu\ nK3j5QoAiziYVMYf5iCzWwAM9Ljpf9gw23lefTdIzhhfFtJplVRSyxRGU0UZ84GMI\ nTd5zmcIF/1KUfhqmeiQzz6NIPEYEReahjpQ/sOH/Gk5Rwr3QwYPrwAu5x+kk/SRi\ nKPkqw7APTR0sMQBcUq+ZYwGYLGPMdd1zUdLfb0sCgYBkuz11iydtxb3G/obSD2WO\ nM9VaIycmzRPFzNwGRH/gOR0mhTluKp0wyJjbSd34oeqpH/2r2ivddrOysxoqa8jg\ n4IQDZyLvj7MaKjQxrieqP89+y9Or9TMFo1xB46x2G8EN8/xHuA9YGnZSPFtWv72m\ nhRqV0hv82amWsA0vHnRUSwKBgDsKHXvrTMbNkNhkykMXCH5iyWiBFSyZa1ZJMlgf\ nknsqfdzeVPwF6E55QKAN2uuTlwzG/3ljPxahR1hvmUJjQN9JSBiUKbtW6GPCRVbr\ nf/jLi1Iu99COZdluVKeybqn8Z/aSNP24DR9FM8kxzZ1IMPaTBmhFypp6BclhcLBt \ nxTG1AoGAfcrkVbV1SOy7fECUtMpUECcw0yU4GWj3sR2RbII63C500RVYQlUpUaRR\ naANbASHTVR4myOKtGSxEUhAQHlxFDwsDL7W3gzAqTFbEDp1xAAUyT/nkOAhQjEm4\ nORFdDETeXLQG1KMUj+8AdnhfYp3JTdft6rmPpZEBUFiCAUMAvb0=\ n-END RSA PRIVATE KEY-\ n " "user_id": "f79791beca3c48159ac2553fff22e166", "name": "demo1", "fingerprint": "57:a7:a2:ed:5f:aa:e7:54:62:2e:bb:e7:92:22:cb:40"}}
2. Import the key.
(1) Information related to API
URI format: POST / v2.1 / {project_id} / os-keypairs
(2) request example
POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs
Body:
{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh4lxL8MM61gyfpKzeKkwkEpSFj27Rgh7zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\ n", "type": "ssh", "name": "demo2", "user_id": "fake"}}
(3) response example
{"keypair": {"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh4lxL8MM61gyfpKzeKkwkEpSFj27Rgh7zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\ n", "user_id": "f79791beca3c48159ac2553fff22e166", "name": "demo2", "fingerprint": "dd:44:45:49:d9:f6:4f:c0:24:2d:81:aa:c4:4b:83:c2"}}
2. Record the name information in the response message body. As in this example, "demo2".
Step 6: create a key pair login authentication CVM.
(1) Information related to API
URI format: POST / v2.1 / {project_id} / servers
Description:
In this example, image is specified to create a CVM, so:
In ● block_device_mapping_v2.1, "source_type" needs to be set to "image", "uuid" to the selected mirror ID, "destination_type" to "volume", and "boot_index" to "0".
The ● "volume_size" should be greater than or equal to the minimum value specified in the mirror metadata.
(2) request example
POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers
Body:
{server: {"flavorRef": "c1.large", "name": "zttestvm1", "block_device_mapping_v2.1": [{"source_type": "image", "destination_type": "volume", "volume_type": "SATA", "volume_size": "40" "delete_on_termination": "true", "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index": "0"}], "networks": [{"uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def"}], "key_name": "demo2" "availability_zone": "az_test_01"}}
(3) response example
{"server": {"security_groups": [{"name": "default"}], "OS-DCF:diskConfig": "MANUAL", "links": [{"rel": "self", "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077"}" {"rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077"}]," id ":" 6d311127-bce1-48db-bf0f-cac9f8f7f077 "," adminPass ":" WcC4QoVZPXpV "} step 7: set the password login method.
(1) when creating a CVM using a non-cloud-init image, both Windows and Linux systems use the "adminPass" parameter to implement password injection.
(2) when using cloud-init image to create a CVM:
For Linux systems, only "user_data" can be used for password injection. The length of the "user_data" string is less than 65535 and must be base64 encrypted.
For Windows systems, password injection can only be done through metadata "admin_pass".
Step 8: create an elastic CVM that logs in to authentication with a password.
Description:
This example specifies image to create an elastic CVM, so:
(1) in block_device_mapping_v2.1, "source_type" needs to be set to "image", "uuid" to the selected mirror ID, "destination_type" to "volume", and "boot_index" to "0".
(2) "volume_size" should be greater than or equal to the minimum value specified in the mirror metadata.
1. Create an elastic CVM with non-cloud-init image and password login authentication.
(1) Information related to API
URI format: POST / v2.1 / {project_id} / servers
(2) request example
POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers
Body:
{"server": {"flavorRef": "c1.large", "name": "zttestvm1", "adminPass": "NOVAGLANCEI@123", "block_device_mapping_v2.1": [{"source_type": "image", "destination_type": "volume", "volume_type": "SATA" "volume_size": "40", "delete_on_termination": "true", "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index": "0"}], "networks": [{"uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def"}] "availability_zone": "az_test_01"}}
(3) response example
{"server": {"security_groups": [{"name": "default"}], "OS-DCF:diskConfig": "MANUAL", "links": [{"rel": "self", "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce"}" {"rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce"}]," id ":" 73991cff-37c6-491a-9a8a-377397729fce "," adminPass ":" NOVAGLANCEI@123 "}}
2. Create an cloud-init image (take Linux as an example) and log in to the authenticated elastic CVM with password.
(1) Information related to API
URI format: POST / v2.1 / {project_id} / servers
(2) request example
POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers
Body:
{"server": {"flavorRef": "c1.large", "name": "zttestvm2", "user_data": "IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiRuaERlcUIkajBkelVMbkFrbWo4bWlFREFzT0VONkVPdGg1RmdqWnQybUVWZVRocC5OVDJXelZVdzFuNzhnL3dNdDE0dVpSQ1V3LzhHS3VGdEViQ0lPQS5vN1BZQzEnIHwgY2hwYXNzd2QgLWU7", "block_device_mapping_v2.1": [{"source_type": "image", "destination_type": "volume", "volume_type": "SATA" "volume_size": "40", "delete_on_termination": "true", "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index": "0"}], "networks": [{"uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def"}] "availability_zone": "az_test_01"}}
(3) response example
{"server": {"security_groups": [{"name": "default"}], "OS-DCF:diskConfig": "MANUAL", "links": [{"rel": "self", "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e"}" {"rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e"}]," id ":" 7c11f362-cc96-4306-85b6-b432a639ca5e "," admin_pass ":" J3xMSivHCuq5 "} step 9: confirm that the CVM has been created successfully.
(1) Information related to API
URI format: GET / v2.1 / {project_id} / servers/ {server_id}
(2) request example
GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6
Where:
0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6 is the UUID of the CVM created.
(3) response example
{"server": {"tenant_id": "74610f3a5ad941998e91f076297ecf27", "addresses": {"2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68": [{"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:88:01:1b", "OS-EXT-IPS:type": "fixed", "addr": "192.168.2.192" "version": 4}]}, "metadata": {}, "OS-EXT-STS:task_state": null, "OS-DCF:diskConfig": "MANUAL", "OS-EXT-AZ:availability_zone": "az_test_01", "links": [{"rel": "self" "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6"}, {" rel ":" bookmark "," href ":" https://None/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6"}], "OS-EXT-STS:power_state": 1, "id": "0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6" "os-extended-volumes:volumes_attached": [{"id": "b551445a-e749-4d53-932a-638a455cb6c3"}], "OS-EXT-SRV-ATTR:host": "pod1_test_01", "image": {"links": [{"rel": "bookmark" "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"}]," id ":" 11e8f727-d439-4ed1-b3b8-33f46c0379c4 "}," OS-SRV-USG:terminated_at ": null," accessIPv4 ":"," accessIPv6 ":"," created ":" 2018-05-25T01:47:11Z "," hostId ":" b2792bef989888d2df1f51bff81de5ac58a4117f4e9ec3059c1a0410 " "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova001@36", "key_name": null, "flavor": {"links": [{"rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/flavors/c1.large"}]," id ":" c1.large "} "security_groups": [{"name": "default"}], "config_drive": "," OS-EXT-STS:vm_state ":" active "," OS-EXT-SRV-ATTR:instance_name ":" instance-001883cd "," user_id ":" f79791beca3c48159ac2553fff22e166 "," name ":" zttestvm1 "," progress ": 0 "OS-SRV-USG:launched_at": "2018-05-25T01:47:55.755922", "updated": "2018-05-25T01:47:55Z", "status": "ACTIVE"}} these are all the contents of the article "how to create a CVM through API" Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.