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.3).

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

Comments

cpus

integer

Count of cpus to be assigned to new virtual instance.

Choices:

  • 1

  • 2

  • 4

  • 8

  • 16

  • 32

  • 56

datacenter

string

Datacenter for the virtual instance to be deployed.

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

dedicated

boolean

Flag to determine if the instance should be deployed in dedicated space.

Choices:

  • no ← (default)

  • yes

disks

list / elements=integer

List of disk sizes to be assigned to new virtual instance.

Default: [25]

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

Flag to determine if the instance should be hourly billed.

Choices:

  • no

  • yes ← (default)

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

Flag to determine if local disk should be used for the new instance.

Choices:

  • no

  • yes ← (default)

memory

integer

Amount of memory to be assigned to new virtual instance.

Choices:

  • 1024

  • 2048

  • 4096

  • 6144

  • 8192

  • 12288

  • 16384

  • 32768

  • 49152

  • 65536

  • 131072

  • 247808

nic_speed

integer

NIC Speed to be assigned to new virtual instance.

Choices:

  • 10

  • 100

  • 1000

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

Flag to determine if the instance should be private only.

Choices:

  • no ← (default)

  • yes

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

Create, or cancel a virtual instance.

Specify present for create, absent to cancel.

Choices:

  • absent

  • present ← (default)

tags

string

Tag or list of tags to be provided to a virtual instance.

wait

boolean

Flag used to wait for active status before returning.

Choices:

  • no

  • yes ← (default)

wait_time

integer

Time in seconds before wait returns.

Default: 600

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)