我正在尝试使用Rest API在SoftLayer环境上部署Vyatta,并希望获得一些实现方法的线索。我确实看到了python客户端可以执行此操作,但是我们不能使用任何一个选项(即Python / PHP / JAVA),而必须仅使用Rest API将网络设备部署到Softlayer基础结构。
我尝试使用CLI,但是它不查询操作系统代码。
slcli virtual create
Hostname: test
Domain: test.com
Datacenter: dal09
Operating System Code:
是否有人知道如何使用RestAPI / CLI部署vyatta。或者我如何查询OS代码和网络VLAN来部署vyatta
谢谢你, 阿尼什(Anish)
答案 0 :(得分:2)
https://softlayer-python.readthedocs.io/en/latest/cli/ordering.html
要使用slcli
客户下订单,可以参考上面的文档。
但是,以下是专门订购Vyatta网关设备的示例:
$ slcli order package-list | grep -i gateway
Network Gateway Appliance NETWORK_GATEWAY_APPLIANCE BARE_METAL_GATEWAY
Network Gateway Appliance Cluster NETWORK_GATEWAY_APPLIANCE_CLUSTER GATEWAY_RESOURCE_GROUP
Network Gateway Appliance (10 Gbps) 2U_NETWORK_GATEWAY_APPLIANCE_1O_GBPS BARE_METAL_GATEWAY
Virtual Router Appliance VIRTUAL_ROUTER_APPLIANCE_1_GPBS BARE_METAL_GATEWAY
Virtual Router Appliance (10 Gpbs) VIRTUAL_ROUTER_APPLIANCE_10_GPBS BARE_METAL_GATEWAY
$ slcli order package-locations NETWORK_GATEWAY_APPLIANCE
:.........:.......:........................:...............:
: id : dc : description : keyName :
:.........:.......:........................:...............:
: 265592 : ams01 : AMS01 - Amsterdam : AMSTERDAM :
...
...
: 814994 : ams03 : AMS03 - Amsterdam : AMSTERDAM03 :
$ slcli order item-list NETWORK_GATEWAY_APPLIANCE | grep -i vyatta
os OS_VYATTA_6_X_SUBSCRIPTION_EDITION_64_BIT Vyatta 6.x Subscription Edition (64 bit)
os OS_VYATTA_5600_5_X_UP_TO_1GBPS_SUBSCRIPTION_EDITION_64_BIT Virtual Router Appliance 5.x (up to 2 Gbps) Subscription Edition (64 Bit)
$ slcli order place --verify NETWORK_GATEWAY_APPLIANCE WASHINGTON07 OS_VYATTA_5600_5_X_UP_TO_1GBPS_SUBSCRIPTION_EDITION_64_BIT ...
以上命令是有关如何验证Vyatta顺序的示例。根据您要订购的口味,命令可能会有所不同。
您将需要在命令中指定每个必需的类别,如下表所示。
对订单满意后,可以删除--verify
,它将下达实际订单。
$ slcli order category-list NETWORK_GATEWAY_APPLIANCE
:........................................:.......................:............:
: name : categoryCode : isRequired :
:........................................:.......................:............:
: Server : server : Y :
: Surcharges : premium : N :
: Operating System : os : Y :
: RAM : ram : Y :
: Disk Controller : disk_controller : Y :
: First Hard Drive : disk0 : Y :
: Second Hard Drive : disk1 : N :
: Third Hard Drive : disk2 : N :
: SRIOV Enabled : sriov_enabled : Y :
: Fourth Hard Drive : disk3 : N :
: Public Bandwidth : bandwidth : Y :
: Uplink Port Speeds : port_speed : Y :
: Remote Management : remote_management : Y :
: Primary IP Addresses : pri_ip_addresses : Y :
: Primary IPv6 Addresses : pri_ipv6_addresses : Y :
: Monitoring : monitoring : Y :
: Notification : notification : Y :
: Response : response : Y :
: VPN Management - Private Network : vpn_management : Y :
: Vulnerability Assessments & Management : vulnerability_scanner : Y :
:........................................:.......................:............:
答案 1 :(得分:1)
正如@Xiang Wang
所评论的那样,应该可以使用slcli order
命令进行订购。
在python中也有一些示例,可以尝试:
https://softlayer.github.io/python/orderVyatta/
https://softlayer.github.io/python/order_vyatta.py/
https://softlayer.github.io/go/order_vyatta_gateway.go/
REST
以下是可用于构建订单的JSON结构示例,并考虑到价格可能会因包裹和位置而异,其中有些可能会发生冲突。
要检索价格列表,可以使用getItems或getItemPrices
准备订购时,使用 placeOrder 代替 verifyOrder 。
POST:
https://api.softlayer.com/rest/v3/SoftLayer_Product_Order/verifyOrder
PAYLOAD:
{
"parameters": [{
"orderContainers": [{
"complexType": "SoftLayer_Container_Product_Order_Hardware_Server_Gateway_Appliance",
"hardware": [
{
"hostname": "gateway",
"domain": "softlayer.com"
}
],
"quantity": 1,
"location": "AMSTERDAM",
"packageId": 1055,
"prices": [
{
"id": 206251,
"item": { "description": "Single Intel Xeon E3-1270 v6 (4 Cores, 3.80 GHz)" }
},
{
"id": 209453,
"item": { "description": "16 GB RAM" }
},
{
"id": 201199,
"item": { "description": "Virtual Router Appliance 5.x (up to 2 Gbps) Subscription Edition (64 Bit)" }
},
{
"id": 32927,
"item": { "description": "Non-RAID" }
},
{
"id": 83483,
"item": { "description": "2.00 TB SATA" }
},
{
"id": 33867,
"item": { "description": "20000 GB Bandwidth Allotment" }
},
{
"id": 96817,
"item": { "description": "1 Gbps Public & Private Network Uplinks" }
},
{
"id": 80263,
"item": { "description": "Host Ping and TCP Service Monitoring" }
},
{
"id": 32627,
"item": { "description": "Automated Notification" }
},
{
"id": 35310,
"item": { "description": "Nessus Vulnerability Assessment & Reporting" }
},
{
"id": 32500,
"item": { "description": "Email and Ticket" }
},
{
"id": 25014,
"item": { "description": "Reboot / KVM over IP" }
},
{
"id": 212715,
"item": { "description": "SRIOV Enabled" }
},
{
"id": 34807,
"item": { "description": "1 IP Address" }
},
{
"id": 33483,
"item": { "description": "Unlimited SSL VPN Users & 1 PPTP VPN User per account" }
}
]
}]
}]
}
如果要使用高可用性设备(HA),则需要在hardware
参数中指定两个硬件对象,数量必须为2。