community.general.linode – Manage instances on the Linode Public Cloud
Note
This plugin is part of the community.general collection (version 3.8.3).
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
.
To use it in a playbook, specify: community.general.linode
.
Requirements
The below requirements are needed on the host that executes this module.
python >= 2.6
linode-python
Parameters
Parameter |
Comments |
---|---|
List of dictionaries for creating additional disks that are added to the Linode configuration settings. Dictionary takes Size, Label, Type. Size is in MB. |
|
Set status of bandwidth in alerts. Choices:
|
|
Set threshold in MB of bandwidth in alerts. |
|
Set status of bandwidth out alerts. Choices:
|
|
Set threshold in MB of bandwidth out alerts. |
|
Set status of bandwidth quota alerts as percentage of network transfer quota. Choices:
|
|
Set threshold in MB of bandwidth quota alerts. |
|
Set status of receiving CPU usage alerts. Choices:
|
|
Set percentage threshold for receiving CPU usage alerts. Each CPU core adds 100% to total. |
|
Set status of receiving disk IO alerts. Choices:
|
|
Set threshold for average IO ops/sec over 2 hour period. |
|
Linode API key.
|
|
Deprecated parameter, it will be removed in community.general To enable backups pass values to either backupweeklyday or backupwindow. |
|
Day of the week to take backups. |
|
The time window in which backups will be taken. |
|
datacenter to create an instance in (Linode Datacenter) |
|
Add the instance to a Display Group in Linode Manager. |
|
distribution to use for the instance (Linode Distribution) |
|
kernel to use for the instance (Linode Kernel) |
|
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. |
|
Name to give the instance (alphanumeric, dashes, underscore). To keep sanity on the Linode Web Console, name is prepended with |
|
root password to apply to a new server (auto generated if missing) |
|
payment term to use for the instance (payment term in months) Choices:
Default: 1 |
|
plan to use for the instance (Linode plan) |
|
Add private IPv4 address when Linode is created. Default is Choices:
|
|
SSH public key applied to root user |
|
Indicate desired state of the resource Choices:
|
|
swap size in MB Default: 512 |
|
wait for the instance to be in state Choices:
|
|
how long before wait gives up, in seconds Default: 300 |
|
Set status of Lassie watchdog. Choices:
Default: “True” |
Notes
Note
Please note, linode-python does not have python 3 support.
This module uses the now deprecated v3 of the Linode API.
Please review https://www.linode.com/api/linode for determining the required parameters.
Examples
- name: Create a new Linode
community.general.linode:
name: linode-test1
plan: 1
datacenter: 7
distribution: 129
state: present
register: linode_creation
- 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: 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
community.general.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)
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: yes
wait_timeout: 600
state: present
delegate_to: localhost
register: linode_creation
- name: Delete a server
community.general.linode:
api_key: 'longStringFromLinodeApi'
name: linode-test1
linode_id: "{{ linode_creation.instance.id }}"
state: absent
delegate_to: localhost
- name: Stop a server
community.general.linode:
api_key: 'longStringFromLinodeApi'
name: linode-test1
linode_id: "{{ linode_creation.instance.id }}"
state: stopped
delegate_to: localhost
- name: Reboot a server
community.general.linode:
api_key: 'longStringFromLinodeApi'
name: linode-test1
linode_id: "{{ linode_creation.instance.id }}"
state: restarted
delegate_to: localhost
Authors
Vincent Viallet (@zbal)