community.general.linode (8.5.0) — module

Manage instances on the Linode Public Cloud

Authors: Vincent Viallet (@zbal)

Install collection

Install with ansible-galaxy collection install community.general:==8.5.0


Add to requirements.yml

  collections:
    - name: community.general
      version: 8.5.0

Description

Manage Linode Public Cloud instances and optionally wait for it to be 'running'.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.

- name: Create a new Linode
  community.general.linode:
    name: linode-test1
    plan: 1
    datacenter: 7
    distribution: 129
    state: present
  register: linode_creation
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create a server with a private IP Address
  community.general.linode:
     module: linode
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     plan: 1
     datacenter: 2
     distribution: 99
     password: 'superSecureRootPassword'
     private_ip: true
     ssh_pub_key: 'ssh-rsa qwerty'
     swap: 768
     wait: true
     wait_timeout: 600
     state: present
  delegate_to: localhost
  register: linode_creation
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Fully configure new server
  community.general.linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     plan: 4
     datacenter: 2
     distribution: 99
     kernel_id: 138
     password: 'superSecureRootPassword'
     private_ip: true
     ssh_pub_key: 'ssh-rsa qwerty'
     swap: 768
     wait: true
     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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure a running server (create if missing)
  community.general.linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     plan: 1
     datacenter: 2
     distribution: 99
     password: 'superSecureRootPassword'
     ssh_pub_key: 'ssh-rsa qwerty'
     swap: 768
     wait: true
     wait_timeout: 600
     state: present
  delegate_to: localhost
  register: linode_creation
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete a server
  community.general.linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: "{{ linode_creation.instance.id }}"
     state: absent
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Stop a server
  community.general.linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: "{{ linode_creation.instance.id }}"
     state: stopped
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Reboot a server
  community.general.linode:
     api_key: 'longStringFromLinodeApi'
     name: linode-test1
     linode_id: "{{ linode_creation.instance.id }}"
     state: restarted
  delegate_to: localhost

Inputs

    
name:
    description:
    - Name to give the instance (alphanumeric, dashes, underscore).
    - To keep sanity on the Linode Web Console, name is prepended with C(LinodeID-).
    required: true
    type: str

plan:
    description:
    - plan to use for the instance (Linode plan)
    type: int

swap:
    default: 512
    description:
    - swap size in MB
    type: int

wait:
    default: true
    description:
    - wait for the instance to be in state V(running) before returning
    type: bool

state:
    choices:
    - absent
    - active
    - deleted
    - present
    - restarted
    - started
    - stopped
    default: present
    description:
    - Indicate desired state of the resource
    type: str

api_key:
    description:
    - Linode API key.
    - E(LINODE_API_KEY) environment variable can be used instead.
    required: true
    type: str

password:
    description:
    - root password to apply to a new server (auto generated if missing)
    type: str

watchdog:
    default: true
    description:
    - Set status of Lassie watchdog.
    type: bool

kernel_id:
    description:
    - kernel to use for the instance (Linode Kernel)
    type: int

linode_id:
    aliases:
    - lid
    description:
    - 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.
    type: int

datacenter:
    description:
    - datacenter to create an instance in (Linode Datacenter)
    type: int

private_ip:
    description:
    - Add private IPv4 address when Linode is created.
    - Default is V(false).
    type: bool

ssh_pub_key:
    description:
    - SSH public key applied to root user
    type: str

backupwindow:
    description:
    - The time window in which backups will be taken.
    type: int

displaygroup:
    default: ''
    description:
    - Add the instance to a Display Group in Linode Manager.
    type: str

distribution:
    description:
    - distribution to use for the instance (Linode Distribution)
    type: int

payment_term:
    choices:
    - 1
    - 12
    - 24
    default: 1
    description:
    - payment term to use for the instance (payment term in months)
    type: int

wait_timeout:
    default: 300
    description:
    - how long before wait gives up, in seconds
    type: int

backupweeklyday:
    description:
    - Day of the week to take backups.
    type: int

additional_disks:
    description:
    - List of dictionaries for creating additional disks that are added to the Linode
      configuration settings.
    - Dictionary takes Size, Label, Type. Size is in MB.
    elements: dict
    type: list

alert_cpu_enabled:
    description:
    - Set status of receiving CPU usage alerts.
    type: bool

alert_bwin_enabled:
    description:
    - Set status of bandwidth in alerts.
    type: bool

alert_bwout_enabled:
    description:
    - Set status of bandwidth out alerts.
    type: bool

alert_cpu_threshold:
    description:
    - Set percentage threshold for receiving CPU usage alerts. Each CPU core adds 100%
      to total.
    type: int

alert_bwin_threshold:
    description:
    - Set threshold in MB of bandwidth in alerts.
    type: int

alert_diskio_enabled:
    description:
    - Set status of receiving disk IO alerts.
    type: bool

alert_bwout_threshold:
    description:
    - Set threshold in MB of bandwidth out alerts.
    type: int

alert_bwquota_enabled:
    description:
    - Set status of bandwidth quota alerts as percentage of network transfer quota.
    type: bool

alert_diskio_threshold:
    description:
    - Set threshold for average IO ops/sec over 2 hour period.
    type: int

alert_bwquota_threshold:
    description:
    - Set threshold in MB of bandwidth quota alerts.
    type: int