SoftLayer是公共云主机和裸机硬件托管服务商,于2013年被IBM收购并作为其云产品对外服务。
Salt Cloud的SoftLayer驱动程序需要softlayer软件包,该软件包可从PyPI获得:
https://pypi.python.org/pypi/SoftLayer
可以使用 pip
或 easy_install
安装以上软件:
# pip install softlayer
# easy_install softlayer
在 /etc/salt/cloud.providers
中设置驱动程序的配置信息:
# Note: These examples are for /etc/salt/cloud.providers
my-softlayer:
# Set up the location of the salt master
minion:
master: saltmaster.example.com
# Set the SoftLayer access credentials (see below)
user: MYUSER1138
apikey: 'e3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9'
driver: softlayer
my-softlayer-hw:
# Set up the location of the salt master
minion:
master: saltmaster.example.com
# Set the SoftLayer access credentials (see below)
user: MYUSER1138
apikey: 'e3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9'
driver: softlayer_hw
注意
Changed in version 2015.8.0.
云平台provider定义中的
provider
参数已重命名为driver
。 进行此更改是为了避免与云平台profile配置文件定义中使用的provider
参数混淆。 现在,云平台provider定义中使用driver
来引用提供连接至云主机的基础功能的Salt云模块,而云主机profile配置文件则继续使用provider
来引用您定义的provider配置。
user
设置使用与用于登录"SoftLayer Administration area"的相同用户。 登录后,可以在管理区域内找到apikey
设置:
- 将鼠标悬停在
Account
菜单项上。 - 单击
Users
链接。 - 找到
API Key
列,然后单击View
。
在 /etc/salt/cloud.profiles
中设置云主机初始化配置信息:
base_softlayer_ubuntu:
provider: my-softlayer
image: UBUNTU_LATEST
cpu_number: 1
ram: 1024
disk_size: 100
local_disk: True
hourly_billing: True
domain: example.com
location: sjc01
# Optional
max_net_speed: 1000
private_vlan: 396
private_network: True
private_ssh: True
# Use a dedicated host instead of cloud
dedicated_host_id: 1234
# May be used _instead_of_ image
global_identifier: 320d8be5-46c0-dead-cafe-13e3c51
以上大部分都是必填项; 可选的项目在下面做了说明。
可以使用--list-images选项找到用于构建实例的镜像:
# salt-cloud --list-images my-softlayer
这里使用的镜像设置将被标记为template
。
这是将用于此实例的CPU内核数。 此数字可能取决于所使用的镜像。 例如:
Red Hat Enterprise Linux 6 - Minimal Install (64 bit) (1 - 4 Core):
----------
name:
Red Hat Enterprise Linux 6 - Minimal Install (64 bit) (1 - 4 Core)
template:
REDHAT_6_64
Red Hat Enterprise Linux 6 - Minimal Install (64 bit) (5 - 100 Core):
----------
name:
Red Hat Enterprise Linux 6 - Minimal Install (64 bit) (5 - 100 Core)
template:
REDHAT_6_64
请注意,这两个模板的template(意思是image选项)是相同的,但是名称表明了支持的CPU核心数量。
这是将分配给该实例的内存量(以兆字节为单位)。
将分配给该镜像的磁盘空间量(以GB为单位)。
base_softlayer_ubuntu:
disk_size: 100
New in version 2015.8.1.
SoftLayer最多可以为虚拟机指定5个磁盘。 可以将多个磁盘指定为列表或逗号分隔的字符串。 字符串或列表中指定的第一个disk_size
将是分配给VM的第一个磁盘的大小。
List Example: .. code-block:: yaml
base_softlayer_ubuntu:
disk_size: ['100', '20', '20']
String Example: .. code-block:: yaml
base_softlayer_ubuntu:
disk_size: '100, 20, 20'
如果为true,则将在运行该实例的主机上配置该计算实例的本地磁盘,否则将配置SAN磁盘。
如果为true,则将按小时使用量计费计算实例,否则将按月计费。
此实例的FQDN(完全合格域名)中将使用的域名。 域设置将与实例名称结合使用以形成FQDN。
如果设置为True,则Minion将由FQDN(完全合格的域名)标识,这是将域配置值和通过CLI或映射文件指定的Minion名称结合在一起的结果,而不是仅使用短主机名或Minion ID。 默认值为False。
New in version 2016.3.0.
例如,如果domain的值是example.com,并且通过CLI使用Salt-cloud -p base_softlayer_ubuntu my-vm
创建了新的VM,则得到的Minion ID将是my-vm.example.com。
注意
启用
use_fqdn
设置时,Minion ID将为FQDN,并将与使用FQDN而不是简称主机名的salt命令进行交互。 但是,由于SoftLayer API的构造方式,某些salt-cloud功能(例如列出节点或销毁VM)将仅列出VM的简短主机名,而不列出FQDN。
例如,显示上面注释中提到的SoftLayer简短形式主机名的示例输出(请注意,Minion ID为my-vm.example.com
,但要销毁的VM以简短主机名为my-vm
被列出):
# salt-key -L
Accepted Keys:
my-vm.example.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:
#
#
# salt my-vm.example.com test.version
my-vm.example.com:
2018.3.4
#
#
# salt-cloud -d my-vm.example.com
[INFO ] salt-cloud starting
[INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Account
The following virtual machines are set to be destroyed:
softlayer-config:
softlayer:
my-vm
Proceed? [N/y] y
... proceeding
[INFO ] Destroying in non-parallel mode.
[INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Account
[INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Virtual_Guest
softlayer-config:
----------
softlayer:
----------
my-vm:
True
可以使用--list-locations选项找到用于构建实例的镜像:
# salt-cloud --list-location my-softlayer
指定实例的网络组件的连接速度。 此设置是可选的。 默认情况下,它设置为10。
指定配置实例后要下载并运行的脚本的uri位置。
New in version 2015.8.1.
Example: .. code-block:: yaml
base_softlayer_ubuntu:
post_uri: 'https://SOMESERVERIP:8000/myscript.sh'
如果有必要在特定的前端VLAN中创建实例,则可以在驱动程序配置或云主机配置文件配置中指定该VLAN的ID。
可以使用list_vlans函数查询此ID,如下所述。 此设置是可选的。
如果此配置设置为"None",则salt-cloud将连接到云主机的private ip。
注意
如果未提供此设置,并且服务器未构建有 public VLAN,则需要设置private_ssh或private_wds以确保Salt-cloud可以尝试连接到private ip。
如果必须在特定的后端VLAN内创建实例,则可以在云提供商provider配置或profile配置文件中指定该VLAN的ID。
可以使用list_vlans函数查询此ID,如下所述。 此设置是可选的。
如果仅在内部使用服务器,这意味着它没有与之关联的public VLAN,则此值将设置为True。 此设置是可选的。 默认值为False。
使用public IP地址还是private IP地址在服务器上运行部署脚本。 如果设置为True,Salt Cloud将尝试使用private IP地址通过SSH或WinRM进入新服务器。 默认值为False。 此设置是可选的。
使用自定义模板创建实例时,此选项设置为使用list_custom_images函数获得的相应值。 如果设置了镜像,则不使用此选项;如果未设置镜像,则必须使用此选项。
现在可以使用salt命令创建配置文件中定义的云主机了:
# salt-cloud -p base_softlayer_ubuntu myserver
使用以上配置,这将创建myserver.example.com。
创建实例并安装Salt-minion之后,即可使用Salt验证到该实例的连接性:
# salt 'myserver.example.com' test.version
Soflayer允许在指定的专用主机中创建新的VM。 这意味着您可以订购固定数量的专属裸机主机并为其支付一定的费用,使用它来配置尽可能多或高性能的VMs。 如果要在专用主机(而不是Sofltayer的云)中启动VMs,请在配置文件中设置 dedicated_host_id
参数。
应该在其中创建VMs的专用主机的ID。 如果未设置,则将在Softlayer的云中创建VMs。
在 /etc/salt/cloud.profiles
文件中设置云主机初始化配置:
base_softlayer_hw_centos:
provider: my-softlayer-hw
# CentOS 6.0 - Minimal Install (64 bit)
image: 13963
# 2 x 2.0 GHz Core Bare Metal Instance - 2 GB Ram
size: 1921
# 500GB SATA II
hdd: 1267
# San Jose 01
location: 168642
domain: example.com
# Optional
vlan: 396
port_speed: 273
banwidth: 248
以上大部分配置参数都是必填项; 可选的配置项目在下面指定。
可以使用--list-images选项找到用于构建实例的镜像:
# salt-cloud --list-images my-softlayer-hw
输出一个可提供的ids和names的列表。 name
描述操作系统和体系结构。 id
是在云主机配置文件中将要使用的设置。
可以使用--list-sizes选项找到构建实例的配置规格sizes:
# salt-cloud --list-sizes my-softlayer-hw
输出一个可提供的ids和names的列表。name
描述CPU内核的速度和数量,以及硬件将包含的内存量。 id
是在配置文件中将要引用的设置。
当前,只有一个大小规格的硬盘驱动器(HDD)可用于创建SoftLayer上的硬件实例:
1267: 500GB SATA II
配置文件中的hdd设置应为1267。将来可能会添加其他更多的配置规格支持。
可以使用--list-images选项找到构建实例的位置信息:
# salt-cloud --list-locations my-softlayer-hw
输出一个可提供的ids和names的列表。该位置将以适合人阅读的方式描述。 id
是在配置文件中将要使用的设置。
此实例的FQDN(完全合格域名)中将使用的域名。 域设置将与实例名称结合使用以形成FQDN。
如果有必要在特定VLAN中创建实例,则可以在云提供商provider配置或云主机profile配置文件中指定该VLAN的ID。
可以使用list_vlans函数查询此ID,如下所述。
指定实例的网络端口的速度。 此设置引用SoftLayer API中的ID,该ID用于设置网络端口速度。 此设置是可选的。 默认值为273或100 Mbps Public&Private网络。 下面均是可用的设置:
- 273: 100 Mbps Public & Private Networks
- 274: 1 Gbps Public & Private Networks
- 21509: 10 Mbps Dual Public & Private Networks (up to 20 Mbps)
- 21513: 100 Mbps Dual Public & Private Networks (up to 200 Mbps)
- 2314: 1 Gbps Dual Public & Private Networks (up to 2 Gbps)
- 272: 10 Mbps Public & Private Networks
指定实例可用的网络宽带流量。 此设置引用SoftLayer API中的ID,该ID用于设置带宽。 此设置是可选的。 默认值为248,即5000GB宽带流量。 可以使用以下设置:
- 248: 5000 GB Bandwidth
- 129: 6000 GB Bandwidth
- 130: 8000 GB Bandwidth
- 131: 10000 GB Bandwidth
- 36: Unlimited Bandwidth (10 Mbps Uplink)
- 125: Unlimited Bandwidth (100 Mbps Uplink)
SoftLayer Salt Cloud驱动程序当前支持以下操作。
此操作是--full-query的一个瘦包装,仅显示单个实例的详细信息。 在具有多台计算机的环境中,这将使用户不必为了检查单个实例而对所有实例数据进行排序。
$ salt-cloud -a show_instance myinstance
SoftLayer Salt Cloud驱动程序当前支持以下功能。
此功能列出了与该帐户关联的所有VLAN,以及来自SoftLayer API的与这些VLAN相关的所有已知数据。
$ salt-cloud -f list_vlans my-softlayer
$ salt-cloud -f list_vlans my-softlayer-hw
创建实例时,对于vlan选项,此列表中返回的ID是必需的。
此功能列出了与帐户关联的所有自定义模板(镜像),可用于创建新实例。
$ salt-cloud -f list_custom_images my-softlayer
使用自定义模板创建镜像时,此列表中返回的globalIdentifier对于global_identifier配置项是必需的。
softlayer_hw驱动程序支持添加可选产品的功能,这些功能由SoftLayer的API提供支持。 这些产品都有各自的ID,可以使用optional_products
选项将其传递到Salt Cloud中:
softlayer_hw_test:
provider: my-softlayer-hw
# CentOS 6.0 - Minimal Install (64 bit)
image: 13963
# 2 x 2.0 GHz Core Bare Metal Instance - 2 GB Ram
size: 1921
# 500GB SATA II
hdd: 1267
# San Jose 01
location: 168642
domain: example.com
optional_products:
# MySQL for Linux
- id: 28
# Business Continuance Insurance
- id: 104
通过在SoftLayer Web界面上查看订单页面,可以手动获取这些值。 为了方便起见,在下面列出了其中的一些值。
- 22: 4 Public IP Addresses
- 23: 8 Public IP Addresses
- 17129: 1 IPv6 Address
- 1481: /64 Block Static Public IPv6 Addresses
- 17139: XenServer Advanced for XenServer 6.x
- 17141: XenServer Enterprise for XenServer 6.x
- 2334: XenServer Advanced for XenServer 5.6
- 2335: XenServer Enterprise for XenServer 5.6
- 13915: Microsoft WebMatrix
- 21276: VMware vCenter 5.1 Standard
- 121: cPanel/WHM with Fantastico and RVskin
- 20778: Parallels Plesk Panel 11 (Linux) 100 Domain w/ Power Pack
- 20786: Parallels Plesk Panel 11 (Windows) 100 Domain w/ Power Pack
- 20787: Parallels Plesk Panel 11 (Linux) Unlimited Domain w/ Power Pack
- 20792: Parallels Plesk Panel 11 (Windows) Unlimited Domain w/ Power Pack
- 2340: Parallels Plesk Panel 10 (Linux) 100 Domain w/ Power Pack
- 2339: Parallels Plesk Panel 10 (Linux) Unlimited Domain w/ Power Pack
- 13704: Parallels Plesk Panel 10 (Windows) Unlimited Domain w/ Power Pack
- 29: MySQL 5.0 for Windows
- 28: MySQL for Linux
- 21501: Riak 1.x
- 20893: MongoDB
- 30: Microsoft SQL Server 2005 Express
- 92: Microsoft SQL Server 2005 Workgroup
- 90: Microsoft SQL Server 2005 Standard
- 94: Microsoft SQL Server 2005 Enterprise
- 1330: Microsoft SQL Server 2008 Express
- 1340: Microsoft SQL Server 2008 Web
- 1337: Microsoft SQL Server 2008 Workgroup
- 1334: Microsoft SQL Server 2008 Standard
- 1331: Microsoft SQL Server 2008 Enterprise
- 2179: Microsoft SQL Server 2008 Express R2
- 2173: Microsoft SQL Server 2008 Web R2
- 2183: Microsoft SQL Server 2008 Workgroup R2
- 2180: Microsoft SQL Server 2008 Standard R2
- 2176: Microsoft SQL Server 2008 Enterprise R2
- 594: McAfee VirusScan Anti-Virus - Windows
- 414: McAfee Total Protection - Windows
- 104: Business Continuance Insurance
- 55: Host Ping
- 56: Host Ping and TCP Service Monitoring
- 57: Email and Ticket
- 2302: Monitoring Package - Basic
- 2303: Monitoring Package - Advanced
- 2304: Monitoring Package - Premium Application
- 58: Automated Notification
- 59: Automated Reboot from Monitoring
- 60: 24x7x365 NOC Monitoring, Notification, and Response
- 413: McAfee Host Intrusion Protection w/Reporting
- 411: APF Software Firewall for Linux
- 894: Microsoft Windows Firewall
- 410: 10Mbps Hardware Firewall
- 409: 100Mbps Hardware Firewall
- 408: 1000Mbps Hardware Firewall