/ansible_linode

Linode Ansible Collection

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Linode Ansible Collection

Ansible Galaxy Tests

The Ansible Linode Collection contains various plugins for managing Linode services.

Ansible version compatibility

This collection has been tested against following Ansible versions: >=2.9.10.

Plugins and modules within a collection may be tested with only specific Ansible versions. A collection may contain metadata that identifies these versions. PEP440 is the schema used to describe the versions of Ansible.

Modules

Modules for managing Linode infrastructure.

Name Description
linode.cloud.api_request Make an arbitrary Linode API request.
linode.cloud.database_mysql Manage a Linode MySQL database.
linode.cloud.database_postgresql Manage a Linode PostgreSQL database.
linode.cloud.domain Manage Linode Domains.
linode.cloud.domain_record Manage Linode Domain Records.
linode.cloud.firewall Manage Linode Firewalls.
linode.cloud.firewall_device Manage Linode Firewall Devices.
linode.cloud.image Manage a Linode Image.
linode.cloud.instance Manage Linode Instances, Configs, and Disks.
linode.cloud.ip_rdns Manage a Linode IP address's rDNS.
linode.cloud.lke_cluster Manage Linode LKE clusters.
linode.cloud.lke_node_pool Manage Linode LKE cluster node pools.
linode.cloud.nodebalancer Manage a Linode NodeBalancer.
linode.cloud.nodebalancer_node Manage Linode NodeBalancer Nodes.
linode.cloud.nodebalancer_stats View a Linode NodeBalancers Stats.
linode.cloud.object_keys Manage Linode Object Storage Keys.
linode.cloud.ssh_key Manage a Linode SSH key.
linode.cloud.stackscript Manage a Linode StackScript.
linode.cloud.token Manage a Linode Token.
linode.cloud.user Manage a Linode User.
linode.cloud.volume Manage a Linode Volume.

Info Modules

Modules for retrieving information about existing Linode infrastructure.

Name Description
linode.cloud.account_info Get info about a Linode Account.
linode.cloud.database_mysql_info Get info about a Linode MySQL Managed Database.
linode.cloud.database_postgresql_info Get info about a Linode PostgreSQL Managed Database.
linode.cloud.domain_info Get info about a Linode Domain.
linode.cloud.domain_record_info Get info about a Linode Domain Record.
linode.cloud.firewall_info Get info about a Linode Firewall.
linode.cloud.image_info Get info about a Linode Image.
linode.cloud.instance_info Get info about a Linode Instance.
linode.cloud.ip_info Get info about a Linode IP.
linode.cloud.ipv6_range_info Get info about a Linode IPv6 range.
linode.cloud.lke_cluster_info Get info about a Linode LKE cluster.
linode.cloud.nodebalancer_info Get info about a Linode NodeBalancer.
linode.cloud.object_cluster_info Get info about a Linode Object Storage Cluster.
linode.cloud.profile_info Get info about a Linode Profile.
linode.cloud.ssh_key_info Get info about the Linode SSH public key.
linode.cloud.stackscript_info Get info about a Linode StackScript.
linode.cloud.token_info Get info about a Linode Personal Access Token.
linode.cloud.user_info Get info about a Linode User.
linode.cloud.vlan_info Get info about a Linode VLAN.
linode.cloud.volume_info Get info about a Linode Volume.

List Modules

Modules for retrieving and filtering on multiple Linode resources.

Name Description
linode.cloud.database_engine_list List and filter on Managed Database engine types.
linode.cloud.database_list List and filter on Linode Managed Databases.
linode.cloud.domain_list List and filter on Domains.
linode.cloud.event_list List and filter on Linode events.
linode.cloud.firewall_list List and filter on Firewalls.
linode.cloud.image_list List and filter on Linode images.
linode.cloud.instance_list List and filter on Linode Instances.
linode.cloud.instance_type_list List and filter on Linode Instance Types.
linode.cloud.lke_version_list List Kubernetes versions available for deployment to a Kubernetes cluster.
linode.cloud.nodebalancer_list List and filter on Nodebalancers.
linode.cloud.object_cluster_list List and filter on Object Storage Clusters.
linode.cloud.region_list List and filter on Linode Regions.
linode.cloud.ssh_key_list List and filter on SSH keys in the Linode profile.
linode.cloud.stackscript_list List and filter on Linode stackscripts.
linode.cloud.token_list List and filter on Linode Account tokens.
linode.cloud.type_list List and filter on Linode Instance Types.
linode.cloud.user_list List Users.
linode.cloud.vlan_list List and filter on Linode VLANs.
linode.cloud.volume_list List and filter on Linode Volumes.

Inventory Plugins

Dynamically add Linode infrastructure to an Ansible inventory.

Name
linode.cloud.instance

Installation

You can install the Linode collection with the Ansible Galaxy CLI:

ansible-galaxy collection install linode.cloud

The Python module dependencies are not installed by ansible-galaxy. They can be manually installed using pip:

pip install -r https://raw.githubusercontent.com/linode/ansible_linode/main/requirements.txt

Usage

Once the Linode Ansible collection is installed, it can be referenced by its Fully Qualified Collection Namespace (FQCN): linode.cloud.module_name.

In order to use this collection, the LINODE_API_TOKEN environment variable must be set to a valid Linode API v4 token. Alternatively, you can pass your Linode API v4 token into the api_token option for each Linode module you reference.

The LINODE_UA_PREFIX or the ua_prefix module option can be used to specify a custom User-Agent prefix.

Example Playbook

---
- name: create linode instance
  hosts: localhost
  tasks:
    - name: Create a Linode instance    
      linode.cloud.instance:
        label: my-linode
        type: g6-nanode-1
        region: us-east
        image: linode/ubuntu20.04
        root_pass: verysecurepassword!!!
        state: present

For more information on Ansible collection usage, see Ansible's official usage guide.

Examples

Use-case examples for this collection can be found here.

Licensing

GNU General Public License v3.0.

See COPYING to see the full text.