Documentation

sl_vm - create or cancel a virtual instance in SoftLayer

New in version 2.1.

Synopsis

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

Requirements (on host that executes module)

  • python >= 2.6
  • softlayer >= 4.1.1

Options

parameter required default choices comments
cpus
yes
Count of cpus to be assigned to new virtual instance
datacenter
no
Datacenter for the virtual instance to be deployed
dedicated
no
Flag to determine if the instance should be deployed in dedicated space
disks
yes [25]
List of disk sizes to be assigned to new virtual instance
domain
no
Domain name to be provided to a virtual instance
hostname
no
Hostname to be provided to a virtual instance
hourly
no True
Flag to determine if the instance should be hourly billed
image_id
no
Image Template to be used for new virtual instance
instance_id
no
Instance Id of the virtual instance to perform action option
local_disk
no True
Flag to determine if local disk should be used for the new instance
memory
yes
Amount of memory to be assigned to new virtual instance
nic_speed
no 10
NIC Speed to be assigned to new virtual instance
os_code
no
OS Code to be used for new virtual instance
post_uri
no
URL of a post provisioning script to be loaded and executed on virtual instance
private
no
Flag to determine if the instance should be private only
private_vlan
no
VLAN by its Id to be assigned to the private NIC
public_vlan
no
VLAN by its Id to be assigned to the public NIC
ssh_keys
no
List of ssh keys by their Id to be assigned to a virtual instance
state
no present
Create, or cancel a virtual instance. Specify "present" for create, "absent" to cancel.
tags
no
Tag or list of tags to be provided to a virtual instance
wait
no True
Flag used to wait for active status before returning
wait_timeout
no 600
time in seconds before wait returns

Examples

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

- name: Build additional instances
  hosts: localhost
  gather_facts: False
  tasks:
  - name: Build instances request
    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-slaves
        hourly: True
        private: False
        dedicated: False
        local_disk: True
        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-slaves
        hourly: True
        private: False
        dedicated: False
        local_disk: True
        cpus: 1
        memory: 1024
        disks:
          - 25
          - 100
        os_code: UBUNTU_LATEST
        ssh_keys: []
        wait: True

- name: Cancel instances
  hosts: localhost
  gather_facts: False
  tasks:
  - name: Cancel by tag
    sl_vm:
      state: absent
      tags: ansible-module-test

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Support

This module is community maintained without core committer oversight.

For more information on what this means please read Module Support

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.