2016-11-04 3 views
0

Je me demandais comment ajouter des clés ssh qui se trouvent dans softlayer pour être ajoutées à une commande JSON bare metal. Grâce à l'interface graphique, il sera ajouté à la fin de l'ordre avant de cliquer sur soumettreAjout de clés SSH à Softlayer Commande JSON pour Bare metal

se demander si elle est juste avec:

productOrder = { "quantity": 1, "location": 1234, "packageId": 1234, "sshKeyIds": 1234, "hardware": [ ...

J'ai fait un verifyOrder(), mais pas sûr si elle est correcte

Répondre

1

Si vous utilisez: méthode SoftLayer_Product_Order::placeOrder, regardez l'exemple suivant:

""" 
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) 

J'espère que cela aide, laissez-moi savoir tout doute ou des commentaires

+0

Merci, j'ai essayé cela avant et je l'ai eu dans le reçu: '" sshKeys ": [{'sshKeyIds': []}],' Dans la section sshKeys, cela ne montre rien, c'est pourquoi j'étais concerné – Patrick

+0

Je sais que mes clés/identifiants ssh sont corrects en vérifiant depuis la fonction getSshKeys – Patrick

+0

J'ai réussi à définir et voir les clés ssh dans le reçu, pourriez-vous fournir le code complet que vous avez essayé? si vous continuez d'avoir ce problème –

0

Vous pouvez essayer ceci:

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 } 
     ] 
     } 
    ] 
} 

liens supplémentaires pour examiner: 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

0
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) 
0

Essayez le script suivant:

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) 
+0

Merci beaucoup Ruber, vous êtes le meilleur! – Patrick

+0

Je vois que j'ai l'option RAID dans les prix mais j'ai 2 configurations de raid dans les 'storageGroups', ça va? – Patrick

+0

Vous devez utiliser ce prix: ** 141945 - DISK_CONTROLLER_RAID ** au lieu de: ** 141965 - DISK_CONTROLLER_RAID_10 **, en révisant votre modèle. En révisant votre modèle, vous configurez des partitions pour le premier raid (RAID 10). Il n'est pas possible de définir des partitions personnalisées pour le premier RAID. Pour obtenir plus d'informations sur la configuration RAID, voir: [Commande RAID via API] (http://sldn.softlayer.com/blog/hansKristian/Ordering-RAID-through-API) –