linode - create / delete / stop / restart an instance in Linode Public Cloud

New in version 1.3.

Synopsis

  • creates / deletes a Linode Public Cloud instance and optionally waits for it to be ‘running’.

Requirements (on host that executes module)

  • python >= 2.6
  • linode-python
  • pycurl

Options

parameter required default choices comments
additional_disks
(added in 2.3)
no
List of dictionaries for creating additional disks that are added to the Linode configuration settings. Dictionary takes Size, Label, Type. Size is in MB.
alert_bwin_enabled
(added in 2.3)
no
  • True
  • False
Set status of bandwidth in alerts.
alert_bwin_threshold
(added in 2.3)
no
Set threshold in MB of bandwidth in alerts.
alert_bwout_enabled
(added in 2.3)
no
  • True
  • False
Set status of bandwidth out alerts.
alert_bwout_threshold
(added in 2.3)
no
Set threshold in MB of bandwidth out alerts.
alert_bwquota_enabled
(added in 2.3)
no
  • True
  • False
Set status of bandwidth quota alerts as percentage of network transfer quota.
alert_bwquota_threshold
(added in 2.3)
no
Set threshold in MB of bandwidth quota alerts.
alert_cpu_enabled
(added in 2.3)
no
  • True
  • False
Set status of receiving CPU usage alerts.
alert_cpu_threshold
(added in 2.3)
no
Set percentage threshold for receiving CPU usage alerts. Each CPU core adds 100% to total.
alert_diskio_enabled
(added in 2.3)
no
  • True
  • False
Set status of receiving disk IO alerts.
alert_diskio_threshold
(added in 2.3)
no
Set threshold for average IO ops/sec over 2 hour period.
api_key
no
Linode API key
backupweeklyday
(added in 2.3)
no
Integer value for what day of the week to store weekly backups.
datacenter
no
datacenter to create an instance in (Linode Datacenter)
displaygroup
(added in 2.3)
no
Add the instance to a Display Group in Linode Manager
distribution
no
distribution to use for the instance (Linode Distribution)
kernel_id
(added in 2.4)
no
kernel to use for the instance (Linode Kernel)
linode_id
no
Unique ID of a linode server
aliases: lid
name
no
Name to give the instance (alphanumeric, dashes, underscore)
To keep sanity on the Linode Web Console, name is prepended with LinodeID_
password
no
root password to apply to a new server (auto generated if missing)
payment_term
no 1
  • 1
  • 12
  • 24
payment term to use for the instance (payment term in months)
plan
no
plan to use for the instance (Linode plan)
private_ip
(added in 2.3)
no no
  • yes
  • no
Add private IPv4 address when Linode is created.
ssh_pub_key
no
SSH public key applied to root user
state
no present
  • present
  • active
  • started
  • absent
  • deleted
  • stopped
  • restarted
Indicate desired state of the resource
swap
no 512
swap size in MB
wait
no no
  • yes
  • no
wait for the instance to be in state 'running' before returning
wait_timeout
no 300
how long before wait gives up, in seconds
watchdog
(added in 2.2)
no True
  • True
  • False
Set status of Lassie watchdog.

Examples

# Create a server with a private IP Address
- local_action:
     module: linode
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     plan: 1
     datacenter: 2
     distribution: 99
     password: 'superSecureRootPassword'
     private_ip: yes
     ssh_pub_key: 'ssh-rsa qwerty'
     swap: 768
     wait: yes
     wait_timeout: 600
     state: present

# Fully configure new server
- local_action:
     module: linode
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     plan: 4
     datacenter: 2
     distribution: 99
     kernel_id: 138
     password: 'superSecureRootPassword'
     private_ip: yes
     ssh_pub_key: 'ssh-rsa qwerty'
     swap: 768
     wait: yes
     wait_timeout: 600
     state: present
     alert_bwquota_enabled: True
     alert_bwquota_threshold: 80
     alert_bwin_enabled: True
     alert_bwin_threshold: 10
     alert_cpu_enabled: True
     alert_cpu_threshold: 210
     alert_diskio_enabled: True
     alert_bwout_enabled: True
     alert_bwout_threshold: 10
     alert_diskio_enabled: True
     alert_diskio_threshold: 10000
     backupweeklyday: 1
     backupwindow: 2
     displaygroup: 'test'
     additional_disks:
      - {Label: 'disk1', Size: 2500, Type: 'raw'}
      - {Label: 'newdisk', Size: 2000}
     watchdog: True

# Ensure a running server (create if missing)
- local_action:
     module: linode
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: 12345678
     plan: 1
     datacenter: 2
     distribution: 99
     password: 'superSecureRootPassword'
     ssh_pub_key: 'ssh-rsa qwerty'
     swap: 768
     wait: yes
     wait_timeout: 600
     state: present

# Delete a server
- local_action:
     module: linode
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: 12345678
     state: absent

# Stop a server
- local_action:
     module: linode
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: 12345678
     state: stopped

# Reboot a server
- local_action:
     module: linode
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: 12345678
     state: restarted

Notes

Note

  • LINODE_API_KEY env variable can be used instead

Status

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

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

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/linode_module.html