community.digitalocean.digital_ocean_load_balancer – Manage DigitalOcean Load Balancers

Note

This plugin is part of the community.digitalocean collection (version 1.10.0).

To install it use: ansible-galaxy collection install community.digitalocean.

To use it in a playbook, specify: community.digitalocean.digital_ocean_load_balancer.

New in version 1.10.0: of community.digitalocean

Synopsis

  • Manage DigitalOcean Load Balancers

Parameters

Parameter Choices/Defaults Comments
algorithm
string
    Choices:
  • round_robin ←
  • least_connections
The load balancing algorithm used to determine which backend Droplet will be selected by a client.
It must be either round_robin or least_connections.
droplet_ids
list / elements=integer
An array containing the IDs of the Droplets assigned to the load balancer.
Required when creating load balancers.
enable_backend_keepalive
boolean
    Choices:
  • no ←
  • yes
A boolean value indicating whether HTTP keepalive connections are maintained to target Droplets.
enable_proxy_protocol
boolean
    Choices:
  • no ←
  • yes
A boolean value indicating whether PROXY Protocol is in use.
forwarding_rules
list / elements=dictionary
Default:
[{"certificate_id": "", "entry_port": 8080, "entry_protocol": "http", "target_port": 8080, "target_protocol": "http", "tls_passthrough": false}]
An array of objects specifying the forwarding rules for a load balancer.
Required when creating load balancers.
certificate_id
string
Default:
""
Certificate ID
entry_port
integer
Default:
8080
Entry port
entry_protocol
string
Default:
"http"
Entry protocol
target_port
integer
Default:
8080
Target port
target_protocol
string
Default:
"http"
Target protocol
tls_passthrough
boolean
    Choices:
  • no ←
  • yes
TLS passthrough
health_check
dictionary
Default:
{"check_interval_seconds": 10, "healthy_threshold": 5, "path": "/", "port": 80, "protocol": "http", "response_timeout_seconds": 5, "unhealthy_threshold": 3}
An object specifying health check settings for the load balancer.
check_interval_seconds
integer
Default:
10
Check interval seconds
healthy_threshold
integer
Default:
5
Healthy threshold
path
string
Default:
"/"
Path
port
integer
Default:
80
Port
protocol
string
Default:
"http"
Protocol
response_timeout_seconds
integer
Default:
5
Response timeout seconds
unhealthy_threshold
integer
Default:
3
Unhealthy threshold
name
string / required
A human-readable name for a load balancer instance.
Required and must be unique (current API documentation is not up-to-date for this parameter).
oauth_token
string / required
DigitalOcean OAuth token; can be specified in DO_API_KEY, DO_API_TOKEN, or DO_OAUTH_TOKEN environment variables

aliases: API_TOKEN
redirect_http_to_https
boolean
    Choices:
  • no ←
  • yes
A boolean value indicating whether HTTP requests to the load balancer on port 80 will be redirected to HTTPS on port 443.
region
string
Default:
"nyc1"
The slug identifier for the region where the resource will initially be available.

aliases: region_id
size
string
    Choices:
  • lb-small ←
  • lb-medium
  • lb-large
The size of the load balancer.
The available sizes are lb-small, lb-medium, or lb-large.
You can resize load balancers after creation up to once per hour.
You cannot resize a load balancer within the first hour of its creation.
state
string
    Choices:
  • present ←
  • absent
The usual, present to create, absent to destroy
sticky_sessions
dictionary
Default:
{"type": "none"}
An object specifying sticky sessions settings for the load balancer.
type
string
Default:
"none"
Type
vpc_uuid
string
A string specifying the UUID of the VPC to which the load balancer is assigned.
If unspecified, uses the default VPC in the region.
wait
boolean
    Choices:
  • no
  • yes ←
Wait for the Load Balancer to be running before returning.
wait_timeout
integer
Default:
600
How long before wait gives up, in seconds, when creating a Load Balancer.

Examples

- name: Create a Load Balancer
  community.digitalocean.digital_ocean_load_balancer:
    state: present
    name: test-loadbalancer-1
    droplet_ids:
      - 12345678
    region: nyc1
    forwarding_rules:
      - entry_protocol: http
        entry_port: 8080
        target_protocol: http
        target_port: 8080
        certificate_id: ""
        tls_passthrough: false

Return Values

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

Key Returned Description
data
dictionary
changed
A DigitalOcean Load Balancer

Sample:
{'load_balancer': {'algorithm': 'round_robin', 'created_at': '2021-08-22T14:23:41Z', 'droplet_ids': [261172461], 'enable_backend_keepalive': False, 'enable_proxy_protocol': False, 'forwarding_rules': [{'certificate_id': '', 'entry_port': 8080, 'entry_protocol': 'http', 'target_port': 8080, 'target_protocol': 'http', 'tls_passthrough': False}], 'health_check': {'check_interval_seconds': 10, 'healthy_threshold': 5, 'path': '/', 'port': 80, 'protocol': 'http', 'response_timeout_seconds': 5, 'unhealthy_threshold': 3}, 'id': 'b4fdb507-70e8-4325-a89e-d02271b93618', 'ip': '159.203.150.113', 'name': 'test-loadbalancer-1', 'redirect_http_to_https': False, 'region': {'available': True, 'features': ['backups', 'ipv6', 'metadata', 'install_agent', 'storage', 'image_transfer'], 'name': 'New York 3', 'sizes': ['s-1vcpu-1gb', 's-1vcpu-1gb-amd', 's-1vcpu-1gb-intel', 's-1vcpu-2gb', 's-1vcpu-2gb-amd', 's-1vcpu-2gb-intel', 's-2vcpu-2gb', 's-2vcpu-2gb-amd', 's-2vcpu-2gb-intel', 's-2vcpu-4gb', 's-2vcpu-4gb-amd', 's-2vcpu-4gb-intel', 's-4vcpu-8gb', 'c-2', 'c2-2vcpu-4gb', 's-4vcpu-8gb-amd', 's-4vcpu-8gb-intel', 'g-2vcpu-8gb', 'gd-2vcpu-8gb', 's-8vcpu-16gb', 'm-2vcpu-16gb', 'c-4', 'c2-4vcpu-8gb', 's-8vcpu-16gb-amd', 's-8vcpu-16gb-intel', 'm3-2vcpu-16gb', 'g-4vcpu-16gb', 'so-2vcpu-16gb', 'm6-2vcpu-16gb', 'gd-4vcpu-16gb', 'so1_5-2vcpu-16gb', 'm-4vcpu-32gb', 'c-8', 'c2-8vcpu-16gb', 'm3-4vcpu-32gb', 'g-8vcpu-32gb', 'so-4vcpu-32gb', 'm6-4vcpu-32gb', 'gd-8vcpu-32gb', 'so1_5-4vcpu-32gb', 'm-8vcpu-64gb', 'c-16', 'c2-16vcpu-32gb', 'm3-8vcpu-64gb', 'g-16vcpu-64gb', 'so-8vcpu-64gb', 'm6-8vcpu-64gb', 'gd-16vcpu-64gb', 'so1_5-8vcpu-64gb', 'm-16vcpu-128gb', 'c-32', 'c2-32vcpu-64gb', 'm3-16vcpu-128gb', 'm-24vcpu-192gb', 'g-32vcpu-128gb', 'so-16vcpu-128gb', 'm6-16vcpu-128gb', 'gd-32vcpu-128gb', 'm3-24vcpu-192gb', 'g-40vcpu-160gb', 'so1_5-16vcpu-128gb', 'm-32vcpu-256gb', 'gd-40vcpu-160gb', 'so-24vcpu-192gb', 'm6-24vcpu-192gb', 'm3-32vcpu-256gb', 'so1_5-24vcpu-192gb', 'm6-32vcpu-256gb'], 'slug': 'nyc3'}, 'size': 'lb-small', 'status': 'active', 'sticky_sessions': {'type': 'none'}, 'tag': '', 'vpc_uuid': 'b8fd9a58-d93d-4329-b54a-78a397d64855'}}


Authors

  • Mark Mercado (@mamercad)