Skip to content

Latest commit

 

History

History
488 lines (375 loc) · 16.3 KB

15-27.Salt-Cloud-Getting-Started-With-SoftLayer.md

File metadata and controls

488 lines (375 loc) · 16.3 KB

Getting Started With SoftLayer

SoftLayer是公共云主机和裸机硬件托管服务商,于2013年被IBM收购并作为其云产品对外服务。

Dependencies - 依赖关系

Salt Cloud的SoftLayer驱动程序需要softlayer软件包,该软件包可从PyPI获得:

https://pypi.python.org/pypi/SoftLayer

可以使用 pipeasy_install 安装以上软件:

# pip install softlayer
# easy_install softlayer

Configuration - 配置说明

/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配置。

Access Credentials - 访问凭据

user设置使用与用于登录"SoftLayer Administration area"的相同用户。 登录后,可以在管理区域内找到apikey设置:

  • 将鼠标悬停在Account菜单项上。
  • 单击Users链接。
  • 找到API Key列,然后单击View

Profiles

Cloud Profiles - 云主机配置

/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

以上大部分都是必填项; 可选的项目在下面做了说明。

image

可以使用--list-images选项找到用于构建实例的镜像:

# salt-cloud --list-images my-softlayer

这里使用的镜像设置将被标记为template

cpu_number

这是将用于此实例的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核心数量。

ram

这是将分配给该实例的内存量(以兆字节为单位)。

disk_size

将分配给该镜像的磁盘空间量(以GB为单位)。

base_softlayer_ubuntu:
  disk_size: 100

Using Multiple Disks - 使用多个磁盘

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'

local_disk

如果为true,则将在运行该实例的主机上配置该计算实例的本地磁盘,否则将配置SAN磁盘。

hourly_billing

如果为true,则将按小时使用量计费计算实例,否则将按月计费。

domain

此实例的FQDN(完全合格域名)中将使用的域名。 域设置将与实例名称结合使用以形成FQDN。

use_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

location

可以使用--list-locations选项找到用于构建实例的镜像:

# salt-cloud --list-location my-softlayer

max_net_speed

指定实例的网络组件的连接速度。 此设置是可选的。 默认情况下,它设置为10。

post_uri

指定配置实例后要下载并运行的脚本的uri位置。

New in version 2015.8.1.

Example: .. code-block:: yaml

    base_softlayer_ubuntu:

        post_uri: 'https://SOMESERVERIP:8000/myscript.sh'

public_vlan

如果有必要在特定的前端VLAN中创建实例,则可以在驱动程序配置或云主机配置文件配置中指定该VLAN的ID。

可以使用list_vlans函数查询此ID,如下所述。 此设置是可选的。

如果此配置设置为"None",则salt-cloud将连接到云主机的private ip。

注意

如果未提供此设置,并且服务器未构建有 public VLAN,则需要设置private_ssh或private_wds以确保Salt-cloud可以尝试连接到private ip。

private_vlan

如果必须在特定的后端VLAN内创建实例,则可以在云提供商provider配置或profile配置文件中指定该VLAN的ID。

可以使用list_vlans函数查询此ID,如下所述。 此设置是可选的。

private_network

如果仅在内部使用服务器,这意味着它没有与之关联的public VLAN,则此值将设置为True。 此设置是可选的。 默认值为False。

private_ssh或private_wds

使用public IP地址还是private IP地址在服务器上运行部署脚本。 如果设置为True,Salt Cloud将尝试使用private IP地址通过SSH或WinRM进入新服务器。 默认值为False。 此设置是可选的。

global_identifier

使用自定义模板创建实例时,此选项设置为使用list_custom_images函数获得的相应值。 如果设置了镜像,则不使用此选项;如果未设置镜像,则必须使用此选项。

现在可以使用salt命令创建配置文件中定义的云主机了:

# salt-cloud -p base_softlayer_ubuntu myserver

使用以上配置,这将创建myserver.example.com。

创建实例并安装Salt-minion之后,即可使用Salt验证到该实例的连接性:

# salt 'myserver.example.com' test.version

Dedicated Host - 专用主机设备

Soflayer允许在指定的专用主机中创建新的VM。 这意味着您可以订购固定数量的专属裸机主机并为其支付一定的费用,使用它来配置尽可能多或高性能的VMs。 如果要在专用主机(而不是Sofltayer的云)中启动VMs,请在配置文件中设置 dedicated_host_id 参数。

dedicated_host_id

应该在其中创建VMs的专用主机的ID。 如果未设置,则将在Softlayer的云中创建VMs。

Bare metal Profiles

/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

以上大部分配置参数都是必填项; 可选的配置项目在下面指定。

image

可以使用--list-images选项找到用于构建实例的镜像:

# salt-cloud --list-images my-softlayer-hw

输出一个可提供的ids和names的列表。 name描述操作系统和体系结构。 id是在云主机配置文件中将要使用的设置。

size

可以使用--list-sizes选项找到构建实例的配置规格sizes:

# salt-cloud --list-sizes my-softlayer-hw

输出一个可提供的ids和names的列表。name描述CPU内核的速度和数量,以及硬件将包含的内存量。 id是在配置文件中将要引用的设置。

hdd

当前,只有一个大小规格的硬盘驱动器(HDD)可用于创建SoftLayer上的硬件实例:

1267: 500GB SATA II

配置文件中的hdd设置应为1267。将来可能会添加其他更多的配置规格支持。

location

可以使用--list-images选项找到构建实例的位置信息:

# salt-cloud --list-locations my-softlayer-hw

输出一个可提供的ids和names的列表。该位置将以适合人阅读的方式描述。 id是在配置文件中将要使用的设置。

domain

此实例的FQDN(完全合格域名)中将使用的域名。 域设置将与实例名称结合使用以形成FQDN。

vlan

如果有必要在特定VLAN中创建实例,则可以在云提供商provider配置或云主机profile配置文件中指定该VLAN的ID。

可以使用list_vlans函数查询此ID,如下所述。

port_speed

指定实例的网络端口的速度。 此设置引用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

bandwidth

指定实例可用的网络宽带流量。 此设置引用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)

Actions

SoftLayer Salt Cloud驱动程序当前支持以下操作。

show_instance

此操作是--full-query的一个瘦包装,仅显示单个实例的详细信息。 在具有多台计算机的环境中,这将使用户不必为了检查单个实例而对所有实例数据进行排序。

$ salt-cloud -a show_instance myinstance

Functions

SoftLayer Salt Cloud驱动程序当前支持以下功能。

list_vlans

此功能列出了与该帐户关联的所有VLAN,以及来自SoftLayer API的与这些VLAN相关的所有已知数据。

$ salt-cloud -f list_vlans my-softlayer
$ salt-cloud -f list_vlans my-softlayer-hw

创建实例时,对于vlan选项,此列表中返回的ID是必需的。

list_custom_images

此功能列出了与帐户关联的所有自定义模板(镜像),可用于创建新实例。

$ salt-cloud -f list_custom_images my-softlayer

使用自定义模板创建镜像时,此列表中返回的globalIdentifier对于global_identifier配置项是必需的。

Optional Products for SoftLayer HW - SoftLayer HW提供的一些可选的产品服务

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界面上查看订单页面,可以手动获取这些值。 为了方便起见,在下面列出了其中的一些值。

Public Secondary IP Addresses

  • 22: 4 Public IP Addresses
  • 23: 8 Public IP Addresses

Primary IPv6 Addresses

  • 17129: 1 IPv6 Address

Public Static IPv6 Addresses

  • 1481: /64 Block Static Public IPv6 Addresses

OS-Specific Addon - 操作系统相关的安装附件

  • 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

Control Panel Software

  • 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

Database Software - 数据库软件

  • 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

Anti-Virus & Spyware Protection - 防病毒&防间谍软件

  • 594: McAfee VirusScan Anti-Virus - Windows
  • 414: McAfee Total Protection - Windows

Insurance

  • 104: Business Continuance Insurance

Monitoring - 监控

  • 55: Host Ping
  • 56: Host Ping and TCP Service Monitoring

Notification

  • 57: Email and Ticket

Advanced Monitoring - 高级监控

  • 2302: Monitoring Package - Basic
  • 2303: Monitoring Package - Advanced
  • 2304: Monitoring Package - Premium Application

Response

  • 58: Automated Notification
  • 59: Automated Reboot from Monitoring
  • 60: 24x7x365 NOC Monitoring, Notification, and Response

Intrusion Detection & Protection - 入侵检测&防护

  • 413: McAfee Host Intrusion Protection w/Reporting

Hardware & Software Firewalls - 硬件&软件防火墙

  • 411: APF Software Firewall for Linux
  • 894: Microsoft Windows Firewall
  • 410: 10Mbps Hardware Firewall
  • 409: 100Mbps Hardware Firewall
  • 408: 1000Mbps Hardware Firewall