On this page
community.general.linode – Manage instances on the Linode Public Cloud
Note
This plugin is part of the community.general collection (version 3.8.1).
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.
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
        
        list / elements=dictionary
         | 
      
        
        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
         | 
      
       
  | 
      
        
        Set status of bandwidth in alerts.
         | 
     
| alert_bwin_threshold
        
        integer
         | 
      
        
        Set threshold in MB of bandwidth in alerts.
         | 
     |
| alert_bwout_enabled
        
        boolean
         | 
      
       
  | 
      
        
        Set status of bandwidth out alerts.
         | 
     
| alert_bwout_threshold
        
        integer
         | 
      
        
        Set threshold in MB of bandwidth out alerts.
         | 
     |
| alert_bwquota_enabled
        
        boolean
         | 
      
       
  | 
      
        
        Set status of bandwidth quota alerts as percentage of network transfer quota.
         | 
     
| alert_bwquota_threshold
        
        integer
         | 
      
        
        Set threshold in MB of bandwidth quota alerts.
         | 
     |
| alert_cpu_enabled
        
        boolean
         | 
      
       
  | 
      
        
        Set status of receiving CPU usage alerts.
         | 
     
| alert_cpu_threshold
        
        integer
         | 
      
        
        Set percentage threshold for receiving CPU usage alerts. Each CPU core adds 100% to total.
         | 
     |
| alert_diskio_enabled
        
        boolean
         | 
      
       
  | 
      
        
        Set status of receiving disk IO alerts.
         | 
     
| alert_diskio_threshold
        
        integer
         | 
      
        
        Set threshold for average IO ops/sec over 2 hour period.
         | 
     |
| api_key
        
        string / required
         | 
      
        
        Linode API key.
        
       LINODE_API_KEY env variable can be used instead.
        | 
     |
| backupsenabled
        
        integer
         | 
      
        
        Deprecated parameter, it will be removed in community.general  
       5.0.0.
       
        To enable backups pass values to either backupweeklyday or backupwindow.
         | 
     |
| backupweeklyday
        
        integer
         | 
      
        
        Day of the week to take backups.
         | 
     |
| backupwindow
        
        integer
         | 
      
        
        The time window in which backups will be taken.
         | 
     |
| datacenter
        
        integer
         | 
      
        
        datacenter to create an instance in (Linode Datacenter)
         | 
     |
| displaygroup
        
        string
         | 
      
        
        Add the instance to a Display Group in Linode Manager.
         | 
     |
| distribution
        
        integer
         | 
      
        
        distribution to use for the instance (Linode Distribution)
         | 
     |
| kernel_id
        
        integer
         | 
      
        
        kernel to use for the instance (Linode Kernel)
         | 
     |
| linode_id
        
        integer
         | 
      
        
        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
        
        string / required
         | 
      
        
        Name to give the instance (alphanumeric, dashes, underscore).
        
       
        To keep sanity on the Linode Web Console, name is prepended with  LinodeID-.
        | 
     |
| password
        
        string
         | 
      
        
        root password to apply to a new server (auto generated if missing)
         | 
     |
| payment_term
        
        integer
         | 
      
       
 
        1
         | 
      
        
        payment term to use for the instance (payment term in months)
         | 
     
| plan
        
        integer
         | 
      
        
        plan to use for the instance (Linode plan)
         | 
     |
| private_ip
        
        boolean
         | 
      
       
  | 
      
        
        Add private IPv4 address when Linode is created.
        
       
        Default is  false.
        | 
     
| ssh_pub_key
        
        string
         | 
      
        
        SSH public key applied to root user
         | 
     |
| state
        
        string
         | 
      
       
  | 
      
        
        Indicate desired state of the resource
         | 
     
| swap
        
        integer
         | 
      Default: 
        512
         | 
      
        
        swap size in MB
         | 
     
| wait
        
        boolean
         | 
      
       
  | 
      
        
        wait for the instance to be in state  running before returning
        | 
     
| wait_timeout
        
        integer
         | 
      Default: 
        300
         | 
      
        
        how long before wait gives up, in seconds
         | 
     
| watchdog
        
        boolean
         | 
      
       
 
        "True"
         | 
      
        
        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.
 - 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)
 
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/community/general/linode_module.html