community.general.sl_vm module – Create or cancel a virtual instance in SoftLayer
Note
This module is part of the community.general collection (version 11.4.0).
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.
You need further requirements to be able to use this module,
see Requirements for details.
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.
- softlayer >= 4.1.1 
Parameters
| Parameter | Comments | 
|---|---|
| Count of cpus to be assigned to new virtual instance. Choices: 
 | |
| Datacenter for the virtual instance to be deployed. Choices: 
 | |
| Flag to determine if the instance should be deployed in dedicated space. Choices: 
 | |
| List of disk sizes to be assigned to new virtual instance. Default:  | |
| Domain name to be provided to a virtual instance. | |
| Specify which SoftLayer flavor template to use instead of cpus and memory. | |
| Hostname to be provided to a virtual instance. | |
| Flag to determine if the instance should be hourly billed. Choices: 
 | |
| Image Template to be used for new virtual instance. | |
| Instance ID of the virtual instance to perform action option. | |
| Flag to determine if local disk should be used for the new instance. Choices: 
 | |
| Amount of memory to be assigned to new virtual instance. Choices: 
 | |
| NIC Speed to be assigned to new virtual instance. Choices: 
 | |
| OS Code to be used for new virtual instance. | |
| URL of a post provisioning script to be loaded and executed on virtual instance. | |
| Flag to determine if the instance should be private only. Choices: 
 | |
| VLAN by its ID to be assigned to the private NIC. | |
| VLAN by its ID to be assigned to the public NIC. | |
| List of ssh keys by their ID to be assigned to a virtual instance. Default:  | |
| Create, or cancel a virtual instance. Specify  Choices: 
 | |
| Tag or list of tags to be provided to a virtual instance. | |
| Flag used to wait for active status before returning. Choices: 
 | |
| Time in seconds before wait returns. Default:  | 
Attributes
| Attribute | Support | Description | 
|---|---|---|
| Support: none | Can run in  | |
| Support: none | Returns details on what has changed (or possibly needs changing in  | 
Notes
Note
- If using Python 2.7, you must install - softlayer-python<=5.7.2.
- If using Python 3.6, you must install - softlayer-python<=6.0.0.
- The - softlayer-pythonlibrary, at version 6.2.6 (from Jan 2025), only supports Python version 3.8, 3.9 and 3.10.
See Also
See also
- SoftLayer API Python Client
- The SoftLayer API Python Client is required for this module. 
Examples
- name: Build instance
  hosts: localhost
  gather_facts: false
  tasks:
    - name: Build instance request
      community.general.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
      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: 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-replicas
          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
      community.general.sl_vm:
        state: absent
        tags: ansible-module-test
