123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638 |
- ==============================
- Getting Started With SoftLayer
- ==============================
- SoftLayer is a public cloud host, and baremetal hardware hosting service.
- Dependencies
- ============
- The SoftLayer driver for Salt Cloud requires the softlayer package, which is
- available at PyPI:
- https://pypi.python.org/pypi/SoftLayer
- This package can be installed using ``pip`` or ``easy_install``:
- .. code-block:: bash
- # pip install softlayer
- # easy_install softlayer
- Configuration
- =============
- Set up the cloud config at ``/etc/salt/cloud.providers``:
- .. code-block:: yaml
- # 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
- .. note::
- .. versionchanged:: 2015.8.0
- The ``provider`` parameter in cloud provider definitions was renamed to ``driver``. This
- change was made to avoid confusion with the ``provider`` parameter that is used in cloud profile
- definitions. Cloud provider definitions now use ``driver`` to refer to the Salt cloud module that
- provides the underlying functionality to connect to a cloud host, while cloud profiles continue
- to use ``provider`` to refer to provider configurations that you define.
- Access Credentials
- ==================
- The ``user`` setting is the same user as is used to log into the SoftLayer
- Administration area. The ``apikey`` setting is found inside the Admin area after
- logging in:
- * Hover over the ``Account`` menu item.
- * Click the ``Users`` link.
- * Find the ``API Key`` column and click ``View``.
- Profiles
- ========
- Cloud Profiles
- ~~~~~~~~~~~~~~
- Set up an initial profile at ``/etc/salt/cloud.profiles``:
- .. code-block:: yaml
- 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
- Most of the above items are required; optional items are specified below.
- image
- -----
- Images to build an instance can be found using the ``--list-images`` option:
- .. code-block:: bash
- # salt-cloud --list-images my-softlayer
- The setting used will be labeled as ``template``.
- cpu_number
- ----------
- This is the number of CPU cores that will be used for this instance. This
- number may be dependent upon the image that is used. For instance:
- .. code-block:: yaml
- 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
- Note that the template (meaning, the `image` option) for both of these is the
- same, but the names suggests how many CPU cores are supported.
- ram
- ---
- This is the amount of memory, in megabytes, that will be allocated to this
- instance.
- disk_size
- ---------
- The amount of disk space that will be allocated to this image, in gigabytes.
- .. code-block:: yaml
- base_softlayer_ubuntu:
- disk_size: 100
- Using Multiple Disks
- ~~~~~~~~~~~~~~~~~~~~
- .. versionadded:: 2015.8.1
- SoftLayer allows up to 5 disks to be specified for a virtual machine upon
- creation. Multiple disks can be specified either as a list or a comma-delimited
- string. The first ``disk_size`` specified in the string or list will be the first
- disk size assigned to the 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
- ----------
- When true the disks for the computing instance will be provisioned on the host
- which it runs, otherwise SAN disks will be provisioned.
- hourly_billing
- --------------
- When true the computing instance will be billed on hourly usage, otherwise it
- will be billed on a monthly basis.
- domain
- ------
- The domain name that will be used in the FQDN (Fully Qualified Domain Name) for
- this instance. The `domain` setting will be used in conjunction with the
- instance name to form the FQDN.
- use_fqdn
- --------
- If set to True, the Minion will be identified by the FQDN (Fully Qualified Domain
- Name) which is a result of combining the ``domain`` configuration value and the
- Minion name specified either via the CLI or a map file rather than only using the
- short host name, or Minion ID. Default is False.
- .. versionadded:: 2016.3.0
- For example, if the value of ``domain`` is ``example.com`` and a new VM was created
- via the CLI with ``salt-cloud -p base_softlayer_ubuntu my-vm``, the resulting
- Minion ID would be ``my-vm.example.com``.
- .. note::
- When enabling the ``use_fqdn`` setting, the Minion ID will be the FQDN and will
- interact with salt commands with the FQDN instead of the short hostname. However,
- due to the way the SoftLayer API is constructed, some Salt Cloud functions such
- as listing nodes or destroying VMs will only list the short hostname of the VM
- instead of the FQDN.
- Example output displaying the SoftLayer hostname quirk mentioned in the note above
- (note the Minion ID is ``my-vm.example.com``, but the VM to be destroyed is listed
- with its short hostname, ``my-vm``):
- .. code-block:: bash
- # 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
- --------
- Images to build an instance can be found using the `--list-locations` option:
- .. code-block:: bash
- # salt-cloud --list-location my-softlayer
- max_net_speed
- -------------
- Specifies the connection speed for the instance's network components. This
- setting is optional. By default, this is set to 10.
- post_uri
- --------
- Specifies the uri location of the script to be downloaded and run after the instance
- is provisioned.
- .. versionadded:: 2015.8.1
- Example:
- .. code-block:: yaml
- base_softlayer_ubuntu:
- post_uri: 'https://SOMESERVERIP:8000/myscript.sh'
- public_vlan
- -----------
- If it is necessary for an instance to be created within a specific frontend
- VLAN, the ID for that VLAN can be specified in either the provider or profile
- configuration.
- This ID can be queried using the `list_vlans` function, as described below. This
- setting is optional.
- If this setting is set to `None`, salt-cloud will connect to the private ip of
- the server.
- .. note::
- If this setting is not provided and the server is not built with a public
- vlan, `private_ssh` or `private_wds` will need to be set to make sure that
- salt-cloud attempts to connect to the private ip.
- private_vlan
- ------------
- If it is necessary for an instance to be created within a specific backend VLAN,
- the ID for that VLAN can be specified in either the provider or profile
- configuration.
- This ID can be queried using the `list_vlans` function, as described below. This
- setting is optional.
- private_network
- ---------------
- If a server is to only be used internally, meaning it does not have a public
- VLAN associated with it, this value would be set to True. This setting is
- optional. The default is False.
- private_ssh or private_wds
- --------------------------
- Whether to run the deploy script on the server using the public IP address
- or the private IP address. If set to True, Salt Cloud will attempt to SSH or
- WinRM into the new server using the private IP address. The default is False.
- This settiong is optional.
- global_identifier
- -----------------
- When creating an instance using a custom template, this option is set to the
- corresponding value obtained using the `list_custom_images` function. This
- option will not be used if an `image` is set, and if an `image` is not set, it
- is required.
- The profile can be realized now with a salt command:
- .. code-block:: bash
- # salt-cloud -p base_softlayer_ubuntu myserver
- Using the above configuration, this will create `myserver.example.com`.
- Once the instance has been created with salt-minion installed, connectivity to
- it can be verified with Salt:
- .. code-block:: bash
- # salt 'myserver.example.com' test.version
- Dedicated Host
- ~~~~~~~~~~~~~~
- Soflayer allows the creation of new VMs in a dedicated host. This means that
- you can order and pay a fixed amount for a bare metal dedicated host and use
- it to provision as many VMs as you can fit in there. If you want your VMs to
- be launched in a dedicated host, instead of Sofltayer's cloud, set the
- ``dedicated_host_id`` parameter in your profile.
- dedicated_host_id
- -----------------
- The id of the dedicated host where the VMs should be created. If not set, VMs
- will be created in Softlayer's cloud instead.
- Bare metal Profiles
- ~~~~~~~~~~~~~~~~~~~
- Set up an initial profile at ``/etc/salt/cloud.profiles``:
- .. code-block:: yaml
- 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
- Most of the above items are required; optional items are specified below.
- image
- -----
- Images to build an instance can be found using the `--list-images` option:
- .. code-block:: bash
- # salt-cloud --list-images my-softlayer-hw
- A list of `id`s and names will be provided. The `name` will describe the
- operating system and architecture. The `id` will be the setting to be used in
- the profile.
- size
- ----
- Sizes to build an instance can be found using the `--list-sizes` option:
- .. code-block:: bash
- # salt-cloud --list-sizes my-softlayer-hw
- A list of `id`s and names will be provided. The `name` will describe the speed
- and quantity of CPU cores, and the amount of memory that the hardware will
- contain. The `id` will be the setting to be used in the profile.
- hdd
- ---
- There is currently only one size of hard disk drive (HDD) that is available for
- hardware instances on SoftLayer:
- .. code-block:: yaml
- 1267: 500GB SATA II
- The `hdd` setting in the profile should be 1267. Other sizes may be
- added in the future.
- location
- --------
- Locations to build an instance can be found using the `--list-images` option:
- .. code-block:: bash
- # salt-cloud --list-locations my-softlayer-hw
- A list of IDs and names will be provided. The `location` will describe the
- location in human terms. The `id` will be the setting to be used in the profile.
- domain
- ------
- The domain name that will be used in the FQDN (Fully Qualified Domain Name) for
- this instance. The `domain` setting will be used in conjunction with the
- instance name to form the FQDN.
- vlan
- ----
- If it is necessary for an instance to be created within a specific VLAN, the ID
- for that VLAN can be specified in either the provider or profile configuration.
- This ID can be queried using the `list_vlans` function, as described below.
- port_speed
- ----------
- Specifies the speed for the instance's network port. This setting refers to an
- ID within the SoftLayer API, which sets the port speed. This setting is
- optional. The default is 273, or, 100 Mbps Public & Private Networks. The
- following settings are available:
- * 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
- ---------
- Specifies the network bandwidth available for the instance. This setting refers
- to an ID within the SoftLayer API, which sets the bandwidth. This setting is
- optional. The default is 248, or, 5000 GB Bandwidth. The following settings are
- available:
- * 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
- =======
- The following actions are currently supported by the SoftLayer Salt Cloud
- driver.
- show_instance
- ~~~~~~~~~~~~~
- This action is a thin wrapper around `--full-query`, which displays details on a
- single instance only. In an environment with several machines, this will save a
- user from having to sort through all instance data, just to examine a single
- instance.
- .. code-block:: bash
- $ salt-cloud -a show_instance myinstance
- Functions
- =========
- The following functions are currently supported by the SoftLayer Salt Cloud
- driver.
- list_vlans
- ~~~~~~~~~~
- This function lists all VLANs associated with the account, and all known data
- from the SoftLayer API concerning those VLANs.
- .. code-block:: bash
- $ salt-cloud -f list_vlans my-softlayer
- $ salt-cloud -f list_vlans my-softlayer-hw
- The `id` returned in this list is necessary for the `vlan` option when creating
- an instance.
- list_custom_images
- ~~~~~~~~~~~~~~~~~~
- This function lists any custom templates associated with the account, that can
- be used to create a new instance.
- .. code-block:: bash
- $ salt-cloud -f list_custom_images my-softlayer
- The `globalIdentifier` returned in this list is necessary for the
- `global_identifier` option when creating an image using a custom template.
- Optional Products for SoftLayer HW
- ==================================
- The softlayer_hw driver supports the ability to add optional products, which
- are supported by SoftLayer's API. These products each have an ID associated with
- them, that can be passed into Salt Cloud with the `optional_products` option:
- .. code-block:: yaml
- 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
- These values can be manually obtained by looking at the source of an order page
- on the SoftLayer web interface. For convenience, many of these values are listed
- here:
- 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
|