# sl_vm – create or cancel a virtual instance in SoftLayer

- Synopsis
- Requirements
- Parameters
- Examples
- Status

## 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 - / required |  | Count of cpus to be assigned to new virtual instance.
datacenter - |  | 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 - / required | Default: [25] | List of disk sizes to be assigned to new virtual instance.
domain - |  | Domain name to be provided to a virtual instance.
hostname - |  | 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 - |  | Image Template to be used for new virtual instance.
instance_id - |  | 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 - / required |  | Amount of memory to be assigned to new virtual instance.
nic_speed - | Default: 10 | NIC Speed to be assigned to new virtual instance.
os_code - |  | OS Code to be used for new virtual instance.
post_uri - |  | 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 - |  | VLAN by its Id to be assigned to the private NIC.
public_vlan - |  | VLAN by its Id to be assigned to the public NIC.
ssh_keys - |  | List of ssh keys by their Id to be assigned to a virtual instance.

state
-

Choices:
- absent
- present ←

Create, or cancel a virtual instance.
Specify `present` for create, `absent` to cancel.

tags - |  | 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 - | Default: 600 | Time in seconds before wait returns.

## Examples

    - name: Build instance
      hosts: localhost
      gather_facts: no
      tasks:
      - name: Build instance request
        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
        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: 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-slaves
            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
        sl_vm:
          state: absent
          tags: ansible-module-test

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Matt Colton (@mcltn)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.