你不能通过 terraform 获取 vm 数据,因为 terraform 只允许我们创建、更新和删除。
您可以查看以下文档:
https://github.com/softlayer/terraform-provider-softlayer/blob/master/docs/resources/softlayer_virtual_guest.md
- 您可以在“os_reference_code”terraform中使用“operatingSystemReferenceCode”的数据,但必须将变量“os_reference_code”更改为“image”。
这是一个通过 terraform 创建 VM 的模板示例。
provider "softlayer" {
username = "set me"
api_key = "set me"
}
# Create a new virtual guest
resource "softlayer_virtual_guest" "twc_terraform_sample" {
name = "my_server_1"
domain = "bar.example.com"
image = "UBUNTU_LATEST"
region = "ams01"
public_network_speed = 10
hourly_billing = true
private_network_only = false
cpu = 1
ram = 1024
disks = [25, 10, 20]
dedicated_acct_host_only = true
local_disk = false
}
- 要获取操作系统列表,您必须使用以下 python 代码:
"""
Get Item Prices
Retrieve a collection of SoftLayer_Product_Item_Prices that are valid for this package.
Important manual pages:
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemPrices
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Product_Item_Price
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Product_Item
License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
"""
import SoftLayer
import json
USERNAME = set me'
API_KEY = 'set me'
object_mask = 'mask[item[id,softwareDescription]]'
client = SoftLayer.Client(username=USERNAME, api_key=API_KEY)
result = client['SoftLayer_Product_Package'].getItemPrices(id=835, mask = object_mask)
print(json.dumps(result))
您从方法 getCreateObjectOptions() 获得的“operatingSystemReferenceCode”
服务“'Virtual_Guest”的名称与您将在此代码示例中找到的“referenceCode”相同,您将获得操作系统价格。
例如"operatingSystemReferenceCode" = ‘WIN_2012-STD_64’
您必须根据所需的“recurringFee”选择操作系统。
操作系统 priceId 将为“id”:175797。
{
"id": 175797,
"recurringFee": "17",
"item": {
"id": 4233,
"softwareDescription": {
"controlPanel": 0,
"id": 1076,
"licenseTermValue": null,
"longDescription": "Microsoft Windows 2012 FULL STD 64 bit 2012 FULL STD x64",
"manufacturer": "Microsoft",
"name": "Windows 2012 FULL STD 64 bit",
"operatingSystem": 1,
"referenceCode": "WIN_2012-STD_64",
"upgradeSoftwareDescriptionId": null,
"upgradeSwDescId": null,
"version": "2012 FULL STD x64",
"virtualLicense": 0,
"virtualizationPlatform": 0,
"requiredUser": "Administrator"
}
}
},
在商品价格中没有最新版本的操作系统,因为当您发送请求时,服务器将采用该操作系统的最新版本。
例如
UBUNTU_ LATEST、WIN_ LATEST 等
操作系统价格取决于您将选择的 Flavor,而 Flavor 将根据将要选择的数据中心而变化。
是的,操作系统价格与 vm 内核不同,要获得价格,您必须在示例代码的结果中看到以下属性:
"capacityRestrictionMaximum": "32",
"capacityRestrictionMinimum": "17",
“容量限制类型”:“核心”,
在这种情况下,操作系统价格将取决于 CORE 的“capacityRestrictionMinimum”和“capacityRestrictionMaximum”:
例如对于此示例,容量为 17 到 32 个 CORE,操作系统价格将为 "recurringFee": "68" 用于 "referenceCode": "WIN_2012-STD_64" 操作系统。
{
"currentPriceFlag": null,
"hourlyRecurringFee": ".098",
"id": 175801,
"itemId": 4233,
"laborFee": "0",
"locationGroupId": null,
"onSaleFlag": null,
"oneTimeFee": "0",
"quantity": null,
"recurringFee": "68",
"setupFee": "0",
"sort": 16,
"tierMinimumThreshold": null,
"capacityRestrictionMaximum": "32",
"capacityRestrictionMinimum": "17",
"capacityRestrictionType": "CORE",
"item": {
"id": 4233,
"softwareDescription": {
"controlPanel": 0,
"id": 1076,
"licenseTermValue": null,
"longDescription": "Microsoft Windows 2012 FULL STD 64 bit 2012 FULL STD x64",
"manufacturer": "Microsoft",
"name": "Windows 2012 FULL STD 64 bit",
"operatingSystem": 1,
"referenceCode": "WIN_2012-STD_64",
"upgradeSoftwareDescriptionId": null,
"upgradeSwDescId": null,
"version": "2012 FULL STD x64",
"virtualLicense": 0,
"virtualizationPlatform": 0,
"requiredUser": "Administrator"
}
}