gcp_backend_service - Create or Destroy a Backend Service.¶
New in version 2.4.
Synopsis¶
- Create or Destroy a Backend Service. See https://cloud.google.com/compute/docs/load-balancing/http/backend-service for an overview. Full install/configuration instructions for the Google Cloud modules can be found in the comments of ansible/test/gce_tests.py.
Requirements¶
The below requirements are needed on the host that executes this module.
- python >= 2.6
- apache-libcloud >= 1.3.0
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
backend_service_name
required |
Name of the Backend Service.
|
|
backends
required |
List of backends that make up the backend service. A backend is made up of an instance group and optionally several other parameters. See https://cloud.google.com/compute/docs/reference/latest/backendServices for details.
|
|
credentials_file |
Path to the JSON file associated with the service account email.
|
|
enable_cdn |
If true, enable Cloud CDN for this Backend Service.
|
|
healthchecks
required |
List of healthchecks. Only one healthcheck is supported.
|
|
port_name |
Name of the port on the managed instance group (MIG) that backend services can forward data to. Required for external load balancing.
|
|
project_id |
GCE project ID.
|
|
protocol |
The protocol this Backend Service uses to communicate with backends. Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
|
|
service_account_email |
Service account email
|
|
state |
|
Desired state of the resource
|
timeout |
How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds. Valid range is 1-86400.
|
Notes¶
Note
- Update is not currently supported.
- Only global backend services are currently supported. Regional backends not currently supported.
- Internal load balancing not currently supported.
Examples¶
- name: Create Minimum Backend Service
gcp_backend_service:
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
project_id: "{{ project_id }}"
backend_service_name: "{{ bes }}"
backends:
- instance_group: managed_instance_group_1
healthchecks:
- healthcheck_name_for_backend_service
port_name: myhttpport
state: present
- name: Create BES with extended backend parameters
gcp_backend_service:
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
project_id: "{{ project_id }}"
backend_service_name: "{{ bes }}"
backends:
- instance_group: managed_instance_group_1
max_utilization: 0.6
max_rate: 10
- instance_group: managed_instance_group_2
max_utilization: 0.5
max_rate: 4
healthchecks:
- healthcheck_name_for_backend_service
port_name: myhttpport
state: present
timeout: 60
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
backend_service_created
boolean
|
When a Backend Service is created. |
Indicator Backend Service was created.
Sample:
True
|
backend_service_deleted
boolean
|
When a Backend Service is deleted. |
Indicator Backend Service was deleted.
Sample:
True
|
backend_service_name
string
|
Always. |
Name of the Backend Service.
Sample:
my-backend-service
|
backends
list
|
When a Backend Service exists. |
List of backends (comprised of instance_group) that make up a Backend Service.
Sample:
[ { 'instance_group': 'mig_one', 'zone': 'us-central1-b'} ]
|
enable_cdn
boolean
|
When a backend service exists. |
If Cloud CDN is enabled. null if not set.
Sample:
True
|
healthchecks
list
|
When a Backend Service exists. |
List of healthchecks applied to the Backend Service.
Sample:
[ 'my-healthcheck' ]
|
port_name
string
|
When a Backend Service exists. |
Name of Backend Port.
Sample:
myhttpport
|
protocol
string
|
When a Backend Service exists. |
Protocol used to communicate with the Backends.
Sample:
HTTP
|
timeout
int
|
If specified. |
In seconds, how long before a request sent to a backend is considered failed.
Sample:
myhttpport
|
Status¶
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
Maintenance¶
This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.
For a list of other modules that are also maintained by the Ansible Community, see here.
Author¶
- Tom Melendez (@supertom) <tom@supertom.com>
Hint
If you notice any issues in this documentation you can edit this document to improve it.