stephrobert.scaleway.lb_backend_info module – Gather information about Scaleway Load Balancer backends

Note

This module is part of the stephrobert.scaleway collection (version 0.7.0).

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 stephrobert.scaleway. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: stephrobert.scaleway.lb_backend_info.

New in stephrobert.scaleway 0.1.0

Synopsis

  • Get the full details of a given backend, specified by its backend ID. The response contains the backend’s full configuration parameters including protocol, port and forwarding algorithm.

  • List all the backends of a Load Balancer, specified by its Load Balancer ID. By default, results are returned in ascending order by the creation date of each backend. The response is an array of backend objects, containing full details of each one including their configuration parameters such as protocol, port and forwarding algorithm.

Requirements

The below requirements are needed on the host that executes this module.

  • scaleway >= 2.9.0

Parameters

Parameter

Comments

access_key

string

Scaleway API access key.

api_allow_insecure

boolean

Allow the API endpoint to be reached without verifying its TLS certificate.

Falls back to the Scaleway configuration file, then to false.

Choices:

  • false

  • true

api_timeout

integer

Seconds allowed for a single API call, connection and read.

Without a limit a silent connection would hang the module forever: the Scaleway SDK issues its requests with no timeout at all.

This bounds a single call, not a whole wait. Modules that can wait for a state bound the overall wait separately.

Default: 60

api_url

string

URL of the Scaleway API endpoint.

Point it at a local emulator to exercise a playbook without credentials.

Falls back to the Scaleway configuration file, then to https://api.scaleway.com. It carries no module default on purpose: a default is never unset, so it would always override the profile.

backend_id

string

Backend ID.

config_file

path

Path to the Scaleway configuration file.

lb_id

string

Load Balancer ID.

name

string

Name of the backend to filter for.

order_by

string

Sort order of backends in the response.

Choices:

  • "created_at_asc"

  • "created_at_desc"

  • "name_asc"

  • "name_desc"

organization_id

string

Default Organization ID used when an operation does not name one.

profile

string

Name of the profile to read in the Scaleway configuration file.

project_id

string

Default Project ID used when an operation does not name one.

secret_key

string

Scaleway API secret key.

user_agent

string

Value of the User-Agent header sent to the API.

zone

string / required

The zone you want to target

Choices:

  • "fr-par-1"

  • "fr-par-2"

  • "nl-ams-1"

  • "nl-ams-2"

  • "nl-ams-3"

  • "pl-waw-1"

  • "pl-waw-2"

  • "pl-waw-3"

Attributes

Attribute

Support

Description

check_mode

Support: full

This module only reads, so check mode changes nothing about how it runs.

diff_mode

Support: none

This module changes nothing, so it has no difference to report.

Notes

Note

  • Every option can be set from its environment variable, respectively SCW_PROFILE, SCW_CONFIG_PATH, SCW_ACCESS_KEY, SCW_SECRET_KEY, SCW_API_URL, SCW_DEFAULT_ORGANIZATION_ID and SCW_DEFAULT_PROJECT_ID.

  • Module options take precedence over environment variables, which take precedence over the configuration file.

Examples

# This module only reads: it never changes anything, and check mode
# is native.
#
# `backend_id` decides which of the two reads runs: given, the
# module returns that one resource; omitted, it lists them all,
# walking every page rather than returning the first one in silence.

- name: Get a backend of a given Load Balancer
  stephrobert.scaleway.lb_backend_info:
    zone: fr-par-1
    backend_id: 11111111-2222-3333-4444-555555555555
  register: result
- name: List the backends of a given Load Balancer
  stephrobert.scaleway.lb_backend_info:
    zone: fr-par-1
  register: result
- name: Filter Scaleway Load Balancer backends by name
  stephrobert.scaleway.lb_backend_info:
    zone: fr-par-1
    name: my-backend-info
  register: result

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

backends

list / elements=dictionary

List all the backends of a Load Balancer, specified by its Load Balancer ID. By default, results are returned in ascending order by the creation date of each backend. The response is an array of backend objects, containing full details of each one including their configuration parameters such as protocol, port and forwarding algorithm.

Returned: when backend_id is omitted

created_at

string

Date at which the backend was created. (RFC 3339 format)

Returned: when the API returns it

failover_host

string

Scaleway Object Storage bucket website to be served as failover if all backend servers are down, e.g. failover-website.s3-website.fr-par.scw.cloud.

Returned: when the API returns it

forward_port

integer

Port used by the backend when forwarding traffic to backend servers.

Returned: when the API returns it

forward_port_algorithm

string

Load balancing algorithm to use when determining which backend server to forward new traffic to.

Returned: when the API returns it

forward_protocol

string

Protocol used by the backend when forwarding traffic to backend servers.

Returned: when the API returns it

health_check

dictionary

Object defining the health check to be carried out by the backend when checking the status and health of backend servers.

Returned: when the API returns it

host

string

Host value to use when connecting to backend servers. When connecting to backend servers, use this value as the HTTP Host header or TLS SNI. This allows routing to specific services on the backend server that are configured to respond to particular hostnames.

Returned: when the API returns it

id

string

Backend ID.

Returned: when the API returns it

ignore_ssl_server_verify

boolean

Defines whether the server certificate verification should be ignored.

Returned: when the API returns it

lb

dictionary

Load Balancer the backend is attached to.

Returned: when the API returns it

max_connections

integer

Maximum number of connections allowed per backend server.

Returned: when the API returns it

max_retries

integer

Number of retries when a backend server connection failed.

Returned: when the API returns it

name

string

Name of the backend.

Returned: when the API returns it

on_marked_down_action

string

Action to take when a backend server is marked as down.

Returned: when the API returns it

pool

list / elements=string

List of IP addresses of backend servers attached to this backend.

Returned: when the API returns it

proxy_protocol

string

Protocol to use between the Load Balancer and backend servers. Allows the backend servers to be informed of the client’s real IP address. The PROXY protocol must be supported by the backend servers’ software.

Returned: when the API returns it

redispatch_attempt_count

integer

Whether to use another backend server on each attempt.

Returned: when the API returns it

send_proxy_v2

boolean

Deprecated in favor of proxy_protocol field.

Deprecated by the Scaleway API contract.

Returned: when the API returns it

ssl_bridging

boolean

Defines whether to enable SSL bridging between the Load Balancer and backend servers.

Returned: when the API returns it

sticky_sessions

string

Defines whether sticky sessions (binding a particular session to a particular backend server) are activated and the method to use if so. None disables sticky sessions. Cookie-based uses an HTTP cookie to stick a session to a backend server. Table-based uses the source (client) IP address to stick a session to a backend server.

Returned: when the API returns it

string

Cookie name for cookie-based sticky sessions.

Returned: when the API returns it

timeout_connect

float

Maximum allowed time for establishing a connection to a backend server. (in milliseconds)

Returned: when the API returns it

timeout_queue

string

Maximum time for a request to be left pending in queue when `max_connections` is reached. (in seconds)

Returned: when the API returns it

timeout_server

float

Maximum allowed time for a backend server to process a request. (in milliseconds)

Returned: when the API returns it

timeout_tunnel

float

Maximum allowed tunnel inactivity time after Websocket is established (takes precedence over client and server timeout). (in milliseconds)

Returned: when the API returns it

updated_at

string

Date at which the backend was updated. (RFC 3339 format)

Returned: when the API returns it

result

dictionary

added in stephrobert.scaleway 0.4.0

Get the full details of a given backend, specified by its backend ID. The response contains the backend’s full configuration parameters including protocol, port and forwarding algorithm.

The API contract names no payload field for this operation: the response body is returned as is.

Returned: when backend_id is provided

created_at

string

Date at which the backend was created. (RFC 3339 format)

Returned: when the API returns it

failover_host

string

Scaleway Object Storage bucket website to be served as failover if all backend servers are down, e.g. failover-website.s3-website.fr-par.scw.cloud.

Returned: when the API returns it

forward_port

integer

Port used by the backend when forwarding traffic to backend servers.

Returned: when the API returns it

forward_port_algorithm

string

Load balancing algorithm to use when determining which backend server to forward new traffic to.

Returned: when the API returns it

forward_protocol

string

Protocol used by the backend when forwarding traffic to backend servers.

Returned: when the API returns it

health_check

dictionary

Object defining the health check to be carried out by the backend when checking the status and health of backend servers.

Returned: when the API returns it

host

string

Host value to use when connecting to backend servers. When connecting to backend servers, use this value as the HTTP Host header or TLS SNI. This allows routing to specific services on the backend server that are configured to respond to particular hostnames.

Returned: when the API returns it

id

string

Backend ID.

Returned: when the API returns it

ignore_ssl_server_verify

boolean

Defines whether the server certificate verification should be ignored.

Returned: when the API returns it

lb

dictionary

Load Balancer the backend is attached to.

Returned: when the API returns it

max_connections

integer

Maximum number of connections allowed per backend server.

Returned: when the API returns it

max_retries

integer

Number of retries when a backend server connection failed.

Returned: when the API returns it

name

string

Name of the backend.

Returned: when the API returns it

on_marked_down_action

string

Action to take when a backend server is marked as down.

Returned: when the API returns it

pool

list / elements=string

List of IP addresses of backend servers attached to this backend.

Returned: when the API returns it

proxy_protocol

string

Protocol to use between the Load Balancer and backend servers. Allows the backend servers to be informed of the client’s real IP address. The PROXY protocol must be supported by the backend servers’ software.

Returned: when the API returns it

redispatch_attempt_count

integer

Whether to use another backend server on each attempt.

Returned: when the API returns it

send_proxy_v2

boolean

Deprecated in favor of proxy_protocol field.

Deprecated by the Scaleway API contract.

Returned: when the API returns it

ssl_bridging

boolean

Defines whether to enable SSL bridging between the Load Balancer and backend servers.

Returned: when the API returns it

sticky_sessions

string

Defines whether sticky sessions (binding a particular session to a particular backend server) are activated and the method to use if so. None disables sticky sessions. Cookie-based uses an HTTP cookie to stick a session to a backend server. Table-based uses the source (client) IP address to stick a session to a backend server.

Returned: when the API returns it

string

Cookie name for cookie-based sticky sessions.

Returned: when the API returns it

timeout_connect

float

Maximum allowed time for establishing a connection to a backend server. (in milliseconds)

Returned: when the API returns it

timeout_queue

string

Maximum time for a request to be left pending in queue when `max_connections` is reached. (in seconds)

Returned: when the API returns it

timeout_server

float

Maximum allowed time for a backend server to process a request. (in milliseconds)

Returned: when the API returns it

timeout_tunnel

float

Maximum allowed tunnel inactivity time after Websocket is established (takes precedence over client and server timeout). (in milliseconds)

Returned: when the API returns it

updated_at

string

Date at which the backend was updated. (RFC 3339 format)

Returned: when the API returns it

Authors

  • Stéphane Robert (@stephrobert)