community.general.sl_vm – create or cancel a virtual instance in SoftLayer

Note

This plugin is part of the community.general collection (version 3.8.1).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.sl_vm.

Synopsis

  • Creates or cancels SoftLayer instances.
  • When created, optionally waits for it to be ‘running’.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.6
  • softlayer >= 4.1.1

Parameters

Parameter Choices/Defaults Comments
cpus
integer
    Choices:
  • 1
  • 2
  • 4
  • 8
  • 16
  • 32
  • 56
Count of cpus to be assigned to new virtual instance.
datacenter
string
    Choices:
  • ams01
  • ams03
  • che01
  • dal01
  • dal05
  • dal06
  • dal09
  • dal10
  • dal12
  • dal13
  • fra02
  • fra04
  • fra05
  • hkg02
  • hou02
  • lon02
  • lon04
  • lon06
  • mel01
  • mex01
  • mil01
  • mon01
  • osl01
  • par01
  • sao01
  • sea01
  • seo01
  • sjc01
  • sjc03
  • sjc04
  • sng01
  • syd01
  • syd04
  • tok02
  • tor01
  • wdc01
  • wdc04
  • wdc06
  • wdc07
Datacenter for the virtual instance to be deployed.
dedicated
boolean
    Choices:
  • no
  • yes
Flag to determine if the instance should be deployed in dedicated space.
disks
list / elements=integer
Default:
[25]
List of disk sizes to be assigned to new virtual instance.
domain
string
Domain name to be provided to a virtual instance.
flavor
string
added in 0.2.0 of community.general
Specify which SoftLayer flavor template to use instead of cpus and memory.
hostname
string
Hostname to be provided to a virtual instance.
hourly
boolean
    Choices:
  • no
  • yes
Flag to determine if the instance should be hourly billed.
image_id
string
Image Template to be used for new virtual instance.
instance_id
string
Instance Id of the virtual instance to perform action option.
local_disk
boolean
    Choices:
  • no
  • yes
Flag to determine if local disk should be used for the new instance.
memory
integer
    Choices:
  • 1024
  • 2048
  • 4096
  • 6144
  • 8192
  • 12288
  • 16384
  • 32768
  • 49152
  • 65536
  • 131072
  • 247808
Amount of memory to be assigned to new virtual instance.
nic_speed
integer
    Choices:
  • 10
  • 100
  • 1000
NIC Speed to be assigned to new virtual instance.
os_code
string
OS Code to be used for new virtual instance.
post_uri
string
URL of a post provisioning script to be loaded and executed on virtual instance.
private
boolean
    Choices:
  • no
  • yes
Flag to determine if the instance should be private only.
private_vlan
string
VLAN by its Id to be assigned to the private NIC.
public_vlan
string
VLAN by its Id to be assigned to the public NIC.
ssh_keys
list / elements=string
List of ssh keys by their Id to be assigned to a virtual instance.
state
string
    Choices:
  • absent
  • present
Create, or cancel a virtual instance.
Specify present for create, absent to cancel.
tags
string
Tag or list of tags to be provided to a virtual instance.
wait
boolean
    Choices:
  • no
  • yes
Flag used to wait for active status before returning.
wait_time
integer
Default:
600
Time in seconds before wait returns.

Examples

- name: Build instance
  hosts: localhost
  gather_facts: no
  tasks:
  - name: Build instance request
    community.general.sl_vm:
      hostname: instance-1
      domain: anydomain.com
      datacenter: dal09
      tags: ansible-module-test
      hourly: yes
      private: no
      dedicated: no
      local_disk: yes
      cpus: 1
      memory: 1024
      disks: [25]
      os_code: UBUNTU_LATEST
      wait: no

- name: Build additional instances
  hosts: localhost
  gather_facts: no
  tasks:
  - name: Build instances request
    community.general.sl_vm:
      hostname: "{{ item.hostname }}"
      domain: "{{ item.domain }}"
      datacenter: "{{ item.datacenter }}"
      tags: "{{ item.tags }}"
      hourly: "{{ item.hourly }}"
      private: "{{ item.private }}"
      dedicated: "{{ item.dedicated }}"
      local_disk: "{{ item.local_disk }}"
      cpus: "{{ item.cpus }}"
      memory: "{{ item.memory }}"
      disks: "{{ item.disks }}"
      os_code: "{{ item.os_code }}"
      ssh_keys: "{{ item.ssh_keys }}"
      wait: "{{ item.wait }}"
    with_items:
      - hostname: instance-2
        domain: anydomain.com
        datacenter: dal09
        tags:
          - ansible-module-test
          - ansible-module-test-replicas
        hourly: yes
        private: no
        dedicated: no
        local_disk: yes
        cpus: 1
        memory: 1024
        disks:
          - 25
          - 100
        os_code: UBUNTU_LATEST
        ssh_keys: []
        wait: True
      - hostname: instance-3
        domain: anydomain.com
        datacenter: dal09
        tags:
          - ansible-module-test
          - ansible-module-test-replicas
        hourly: yes
        private: no
        dedicated: no
        local_disk: yes
        cpus: 1
        memory: 1024
        disks:
          - 25
          - 100
        os_code: UBUNTU_LATEST
        ssh_keys: []
        wait: yes

- name: Cancel instances
  hosts: localhost
  gather_facts: no
  tasks:
  - name: Cancel by tag
    community.general.sl_vm:
      state: absent
      tags: ansible-module-test

Authors

  • Matt Colton (@mcltn)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/sl_vm_module.html