Skip to content

yec-akamai/ansible_linode

 
 

Repository files navigation

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_assign Assign IPs to Linodes in a given Region.
linode.cloud.ip_rdns Manage a Linode IP address's rDNS.
linode.cloud.ip_share Manage the Linode shared IPs.
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.
linode.cloud.vpc Create, read, and update a Linode VPC.
linode.cloud.vpc_subnet Create, read, and update a Linode VPC Subnet.

Info Modules

Modules for retrieving information about existing Linode infrastructure.

Name Description
linode.cloud.account_availability_info Get info about a Linode Account Availability.
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.type_info Get info about a Linode Type.
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.
linode.cloud.vpc_info Get info about a Linode VPC.
linode.cloud.vpc_subnet_info Get info about a Linode VPC Subnet.

List Modules

Modules for retrieving and filtering on multiple Linode resources.

Name Description
linode.cloud.account_availability_list List and filter on Account Availabilitys.
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 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.
linode.cloud.vpc_list List and filter on VPCs.
linode.cloud.vpc_subnet_list List and filter on VPC Subnets.

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 --upgrade -r https://raw.githubusercontent.com/linode/ansible_linode/main/requirements.txt

⚠️ NOTE: Python dependencies should always be reinstalled when upgrading collection versions

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 environment variable or the ua_prefix module option can be used to specify a custom User-Agent prefix.

The LINODE_API_URL environment variable pr the api_url module option can be used to specify a custom API base url.

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/ubuntu22.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.

About

Linode Ansible Collection

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.7%
  • Jinja 1.6%
  • Other 0.7%