community.general.scaleway – Scaleway inventory source

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.scaleway.

Synopsis

  • Get inventory hosts from Scaleway.

Requirements

The below requirements are needed on the local controller node that executes this inventory.

  • PyYAML

Parameters

Parameter

Comments

hostnames

list / elements=string

List of preference about what to use as an hostname.

Choices:

  • public_ipv4 ← (default)

  • private_ipv4

  • public_ipv6

  • hostname

  • id

Default: [“public_ipv4”]

oauth_token

string

Scaleway OAuth token.

If not explicitly defined or in environment variables, it will try to lookup in the scaleway-cli configuration file ($SCW_CONFIG_PATH, $XDG_CONFIG_HOME/scw/config.yaml, or ~/.config/scw/config.yaml).

More details on how to generate token.

Configuration:

  • Environment variable: SCW_TOKEN

  • Environment variable: SCW_API_KEY

  • Environment variable: SCW_OAUTH_TOKEN

plugin

string / required

Token that ensures this is a source file for the ‘scaleway’ plugin.

Choices:

  • scaleway

  • community.general.scaleway

regions

list / elements=string

Filter results on a specific Scaleway region.

Default: [“ams1”, “par1”, “par2”, “waw1”]

tags

list / elements=string

Filter results on a specific tag.

variables

dictionary

Set individual variables: keys are variable names and values are templates. Any value returned by the Scaleway API can be used.

Examples

# scaleway_inventory.yml file in YAML format
# Example command line: ansible-inventory --list -i scaleway_inventory.yml

# use hostname as inventory_hostname
# use the private IP address to connect to the host
plugin: community.general.scaleway
regions:
  - ams1
  - par1
tags:
  - foobar
hostnames:
  - hostname
variables:
  ansible_host: private_ip
  state: state

# use hostname as inventory_hostname and public IP address to connect to the host
plugin: community.general.scaleway
hostnames:
  - hostname
regions:
  - par1
variables:
  ansible_host: public_ip.address

# Using static strings as variables
plugin: community.general.scaleway
hostnames:
  - hostname
variables:
  ansible_host: public_ip.address
  ansible_connection: "'ssh'"
  ansible_user: "'admin'"

Authors

  • Remy Leone (@remyleone)