我想知道如何添加softlayer中的ssh密钥以添加到json裸机订单。通过GUI,它将在顺序的末尾添加您点击提交为Softlayer JSON订单添加SSH密钥裸金属
想知道,如果它只是与前:
productOrder = { "quantity": 1, "location": 1234, "packageId": 1234, "sshKeyIds": 1234, "hardware": [ ...
我做了verifyOrder(),但不知道这是否是正确的
我想知道如何添加softlayer中的ssh密钥以添加到json裸机订单。通过GUI,它将在顺序的末尾添加您点击提交为Softlayer JSON订单添加SSH密钥裸金属
想知道,如果它只是与前:
productOrder = { "quantity": 1, "location": 1234, "packageId": 1234, "sshKeyIds": 1234, "hardware": [ ...
我做了verifyOrder(),但不知道这是否是正确的
如果您正在使用:SoftLayer_Product_Order::placeOrder方法,一起来看看下面的例子:
"""
Order a new server with SSH Keys
Important manual pages:
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Container_Product_Order
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Hardware_Server
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Product_Item_Price
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Order/verifyOrder
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Order/placeOrder
License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <[email protected]>
"""
import SoftLayer
# Your SoftLayer API username and key.
USERNAME = 'set me'
API_KEY = 'set me'
productOrder = {
'quantity': 1,
'location': "DALLAS09",
'packageId': 255,
'hardware': [
{
'hostname': 'rcvtest-11', # The hostname of the server you wish to order.
'domain': 'example.org' # The domain name of the server you wish to order.
}
],
'prices': [
{'id': 50357},
{'id': 50041},
{'id': 876},
{'id': 55},
{'id': 57},
{'id': 44988},
{'id': 273},
{'id': 21},
{'id': 50387},
{'id': 906},
{'id': 58},
{'id': 50397},
{'id': 420},
{'id': 418}
],
'sshKeys': [{'sshKeyIds': [214147, 94206]}]
}
# Create a SoftLayer API client object
client = SoftLayer.Client(username=USERNAME, api_key=API_KEY)
try:
"""
verifyOrder() will check your order for errors. Replace this with a call
to placeOrder() when you're ready to order. Both calls return a receipt
object that you can use for your records.
Once your order is placed it'll go through SoftLayer's approval and
provisioning process. When it's done you'll have a new
SoftLayer_Hardware_Server object and server ready to use.
"""
receipt = client['Product_Order'].verifyOrder(productOrder)
print(receipt)
except SoftLayer.SoftLayerAPIError as e:
print("Unable to place a server order faultCode=%s, faultString=%s"
% (e.faultCode, e.faultString))
exit(1)
我希望它能帮助,让我知道有任何疑问或评论
你可以试试这个:
http://$username:[email protected]/rest/v3/SoftLayer_Hardware_Server/createObject.json
Method: POST
Request body:
{
"parameters":[
{
"hostname":"test",
"domain":"softlayer.com",
"processorCoreAmount":2,
"memoryCapacity":2,
"hourlyBillingFlag":true,
"datacenter":{
"name":"dal05"
},
"operatingSystemReferenceCode":"UBUNTU_LATEST",
"sshKeys":[
{ "id":21414 },
{ "id":9420 }
]
}
]
}
其他链接查看: http://sldn.softlayer.com/reference/services/SoftLayer_Hardware_Server/createObject http://sldn.softlayer.com/reference/services/SoftLayer_Account/getSshKeys http://sldn.softlayer.com/reference/services/SoftLayer_Hardware/getCreateObjectOptions
import SoftLayer
import json
from pprint import pprint as pp
productOrder = {
"quantity": 1,
"location": 1441195,
"packageId": 251,
"sshKeyIds": 248873,
"hardware": [
{
"hostname": "db2oncloud-tshirt-plan-customer-#-letter-datacenter",
"primaryNetworkComponent": {
"networkVlan": {
"id": 1351859
}
},
"domain": "bluemix.net",
"primaryBackendNetworkComponent": {
"networkVlan": {
"id": 1351879
}
}
}
],
"prices": [
{
"id": 50691,
"description": "Dual Intel Xeon E5-2620 v3 (12 Cores, 2.40 GHz)"
},
{
"id": 49437,
"description": "128 GB RAM"
},
{
"id": 49081,
"description": "Red Hat Enterprise Linux 7.x (64 bit) (per-processor licensing)"
},
{
"id": 35686,
"description": "10 Gbps Redundant Public & Private Network Uplinks"
},
{
"id": 34241,
"description": "Host Ping and TCP Service Monitoring"
},
{
"id": 34996,
"description": "Automated Reboot from Monitoring"
},
{
"id": 50359,
"description": "500 GB Bandwidth"
},
{
"id": 33483,
"description": "Unlimited SSL VPN Users & 1 PPTP VPN User per account"
},
{
"id": 141833, # Disk0
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk1
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk2
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk3
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk4
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk5
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 50143, # Disk6
"description": "800 GB SSD (10 DWPD)"
},
{
"id": 50143, # Disk7
"description": "800 GB SSD (10 DWPD)"
},
{
"id": 141965,
"description": "DISK_CONTROLLER_RAID_10"
},
{
"id": 32500,
"description": "Email and Ticket"
},
{
"id": 35310,
"description": "Nessus Vulnerability Assessment & Reporting"
},
{
"id": 34807,
"description": "1 IP Address"
},
{
"id": 25014,
"description": "Reboot/KVM over IP"
}
],
"sshKeys": [
{
"sshKeyIds":248873
}
],
"storageGroups": [
{
"arraySize": 100,
"arrayTypeId": 5, # Raid 10
"hardDrives": [
0,
1,
2,
3,
4,
5
],
"partitionTemplateId": 1, # Linux Basic
"partitions": [
{
"isGrow": True,
"name": "/ssd_disk1",
"size": 3501
}
]
},
{
"arraySize": 800,
"arrayTypeId": 2, # Raid 1
"hardDrives": [
6,
7
],
"partitions": [
{
"isGrow": True,
"name": "/ssd_disk2",
"side": 800
}
]
}
]
}
client = SoftLayer.Client(username=&apikey)
order = client['Product_Order'].verifyOrder(productOrder)
pp(order)
尝试以下脚本:
import SoftLayer
import json
from pprint import pprint as pp
productOrder = {
"quantity": 1,
"location": 1441195,
"packageId": 251,
#"sshKeyIds": 248873,
"hardware": [
{
"hostname": "db2oncloud-tshirt-plan-customer-#-letter-datacenter",
"primaryNetworkComponent": {
"networkVlan": {
"id": 1351859
}
},
"domain": "bluemix.net",
"primaryBackendNetworkComponent": {
"networkVlan": {
"id": 1351879
}
}
}
],
"prices": [
{
"id": 50691,
"description": "Dual Intel Xeon E5-2620 v3 (12 Cores, 2.40 GHz)"
},
{
"id": 49437,
"description": "128 GB RAM"
},
{
"id": 49081,
"description": "Red Hat Enterprise Linux 7.x (64 bit) (per-processor licensing)"
},
{
"id": 35686,
"description": "10 Gbps Redundant Public & Private Network Uplinks"
},
{
"id": 34241,
"description": "Host Ping and TCP Service Monitoring"
},
{
"id": 34996,
"description": "Automated Reboot from Monitoring"
},
{
"id": 50359,
"description": "500 GB Bandwidth"
},
{
"id": 33483,
"description": "Unlimited SSL VPN Users & 1 PPTP VPN User per account"
},
{
"id": 141833, # Disk0
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk1
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk2
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk3
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk4
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 141833, # Disk5
"description": "1.2 TB SSD (10 DWPD)"
},
{
"id": 50143, # Disk6
"description": "800 GB SSD (10 DWPD)"
},
{
"id": 50143, # Disk7
"description": "800 GB SSD (10 DWPD)"
},
{
"id": 141965,
"description": "DISK_CONTROLLER_RAID_10"
},
{
"id": 32500,
"description": "Email and Ticket"
},
{
"id": 35310,
"description": "Nessus Vulnerability Assessment & Reporting"
},
{
"id": 34807,
"description": "1 IP Address"
},
{
"id": 25014,
"description": "Reboot/KVM over IP"
}
],
"sshKeys": [
{
"sshKeyIds":[248873]
}
],
"storageGroups": [
{
"arraySize": 100,
"arrayTypeId": 5, # Raid 10
"hardDrives": [
0,
1,
2,
3,
4,
5
],
"partitionTemplateId": 1, # Linux Basic
"partitions": [
{
"isGrow": True,
"name": "/ssd_disk1",
"size": 3501
}
]
},
{
"arraySize": 800,
"arrayTypeId": 2, # Raid 1
"hardDrives": [
6,
7
],
"partitions": [
{
"isGrow": True,
"name": "/ssd_disk2",
"side": 800
}
]
}
]
}
#client = Client(username=USERNAME, api_key=API_KEY)
client = SoftLayer.Client(username=&apikey)
order = client['Product_Order'].verifyOrder(productOrder)
pp(order)
非常感谢Ruber,你是最棒的! – Patrick
我看到我在价格上有RAID选项,但在'storageGroups'中有2个raid设置可以吗? – Patrick
您应该使用此价格:** 141945 - DISK_CONTROLLER_RAID **而不是:** 141965 - DISK_CONTROLLER_RAID_10 **,查看您的模板。 检查您的模板,您正在为第一个raid(RAID 10)配置分区,无法为第一个RAID设置自定义分区。要获得有关RAID配置的更多信息,请参阅:[通过API订购RAID](http://sldn.softlayer.com/blog/hansKristian/Ordering-RAID-through-API) –
谢谢,我之前试过这个,我在收据中得到了这个: ''sshKeys“:[{'sshKeyIds':[]}],' 在sshKeys部分,它没有显示任何这就是为什么我关注 – Patrick
我知道我的ssh密钥/编号是正确的,通过验证getSshKeys函数 – Patrick
我已经成功定义并查看收据中的ssh密钥,您能否提供您尝试的完整代码?如果你继续从pprint进口pprint有这个问题 –