linode – Manage instances on the Linode Public Cloud

From Get docs
Ansible/docs/2.8/modules/linode module


linode – Manage instances on the Linode Public Cloud

Synopsis

  • Manage Linode Public Cloud instances and optionally wait for it to be ‘running’.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.6
  • linode-python

Parameters

Parameter Choices/Defaults Comments

additional_disks

-

added in 2.3

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

boolean

added in 2.3

  • no
  • yes

Set status of bandwidth in alerts.

alert_bwin_threshold

-

added in 2.3

Set threshold in MB of bandwidth in alerts.

alert_bwout_enabled

boolean

added in 2.3

  • no
  • yes

Set status of bandwidth out alerts.

alert_bwout_threshold

-

added in 2.3

Set threshold in MB of bandwidth out alerts.

alert_bwquota_enabled

boolean

added in 2.3

  • no
  • yes

Set status of bandwidth quota alerts as percentage of network transfer quota.

alert_bwquota_threshold

-

added in 2.3

Set threshold in MB of bandwidth quota alerts.

alert_cpu_enabled

boolean

added in 2.3

  • no
  • yes

Set status of receiving CPU usage alerts.

alert_cpu_threshold

-

added in 2.3

Set percentage threshold for receiving CPU usage alerts. Each CPU core adds 100% to total.

alert_diskio_enabled

boolean

added in 2.3

  • no
  • yes

Set status of receiving disk IO alerts.

alert_diskio_threshold

-

added in 2.3

Set threshold for average IO ops/sec over 2 hour period.

api_key

-

Linode API key

backupweeklyday

-

added in 2.3

Integer value for what day of the week to store weekly backups.

datacenter

-

datacenter to create an instance in (Linode Datacenter)

displaygroup

-

added in 2.3

Add the instance to a Display Group in Linode Manager.

distribution

-

distribution to use for the instance (Linode Distribution)

kernel_id

-

added in 2.4

kernel to use for the instance (Linode Kernel)

linode_id

-

Unique ID of a linode server. This value is read-only in the sense that if you specify it on creation of a Linode it will not be used. The Linode API generates these IDs and we can those generated value here to reference a Linode more specifically. This is useful for idempotence.


aliases: lid

name

- / required

Name to give the instance (alphanumeric, dashes, underscore).

To keep sanity on the Linode Web Console, name is prepended with LinodeID-.

password

-

root password to apply to a new server (auto generated if missing)

payment_term

-

  • 1

  • 12
  • 24

payment term to use for the instance (payment term in months)

plan

-

plan to use for the instance (Linode plan)

private_ip

boolean

added in 2.3

  • no

  • yes

Add private IPv4 address when Linode is created.

ssh_pub_key

-

SSH public key applied to root user

state

-

  • absent
  • active
  • deleted
  • present

  • restarted
  • started
  • stopped

Indicate desired state of the resource

swap

-

Default:

512

swap size in MB

wait

boolean

  • no

  • yes

wait for the instance to be in state running before returning

wait_timeout

-

Default:

300

how long before wait gives up, in seconds

watchdog

boolean

added in 2.2

  • no
  • yes

Set status of Lassie watchdog.



Notes

Note

  • Please note, linode-python does not have python 3 support.
  • This module uses the now deprecated v3 of the Linode API.
  • LINODE_API_KEY env variable can be used instead.
  • Please review https://www.linode.com/api/linode for determining the required parameters.


Examples

- name: Create a new Linode
  linode:
    name: linode-test1
    plan: 1
    datacenter: 7
    distribution: 129
    state: present
  register: linode_creation

- name: Create a server with a private IP Address
  linode:
     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
  delegate_to: localhost
  register: linode_creation

- name: Fully configure new server
  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_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
  delegate_to: localhost
  register: linode_creation

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

- name: Delete a server
  linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: "{{ linode_creation.instance.id }}"
     state: absent
  delegate_to: localhost

- name: Stop a server
  linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: "{{ linode_creation.instance.id }}"
     state: stopped
  delegate_to: localhost

- name: Reboot a server
  linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: "{{ linode_creation.instance.id }}"
     state: restarted
  delegate_to: localhost

Status

Authors

  • Vincent Viallet (@zbal)

Hint

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


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