gcp_compute_url_map – Creates a GCP UrlMap — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# gcp_compute_url_map – Creates a GCP UrlMap

New in version 2.6.

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- UrlMaps are used to route requests to a backend service based on rules that you define for the host and path of an incoming URL.

## Requirements

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

- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
auth_kind string / required | Choices: application machineaccount serviceaccount | The type of credential used.
default_service - / required |  | A reference to BackendService resource if none of the hostRules match. This field represents a link to a BackendService resource in GCP. It can be specified in two ways. First, you can place a dictionary with key 'selfLink' and value of your resource's selfLink Alternatively, you can add `register: name-of-resource` to a gcp_compute_backend_service task and then set this default_service field to "{{ name-of-resource }}"
description - |  | An optional description of this resource. Provide this property when you create the resource.
host_rules - |  | The list of HostRules to use against the URL.
| description - |  | An optional description of this HostRule. Provide this property when you create the resource.
| hosts - / required |  | The list of host patterns to match. They must be valid hostnames, except * will match any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .
| path_matcher - / required |  | The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion.
name - / required |  | Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
path_matchers - |  | The list of named PathMatchers to use against the URL.
| default_service - / required |  | A reference to a BackendService resource. This will be used if none of the pathRules defined by this PathMatcher is matched by the URL's path portion. This field represents a link to a BackendService resource in GCP. It can be specified in two ways. First, you can place a dictionary with key 'selfLink' and value of your resource's selfLink Alternatively, you can add `register: name-of-resource` to a gcp_compute_backend_service task and then set this default_service field to "{{ name-of-resource }}"
| description - |  | An optional description of this resource.
| name - / required |  | The name to which this PathMatcher is referred by the HostRule.
| path_rules - |  | The list of path rules.
|  | paths - / required |  | The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.
|  | service - / required |  | A reference to the BackendService resource if this rule is matched. This field represents a link to a BackendService resource in GCP. It can be specified in two ways. First, you can place a dictionary with key 'selfLink' and value of your resource's selfLink Alternatively, you can add `register: name-of-resource` to a gcp_compute_backend_service task and then set this service field to "{{ name-of-resource }}"
project string |  | The Google Cloud Platform project to use.
scopes list |  | Array of scopes to be used.
service_account_contents string |  | A string representing the contents of a Service Account JSON file. This should not be passed in as a dictionary, but a string that has the exact contents of a service account json file (valid JSON)
service_account_email string |  | An optional service account email address if machineaccount is selected and the user does not wish to use the default email.
service_account_file path |  | The path of a Service Account JSON file if serviceaccount is selected as type.
state - | Choices: present ← absent | Whether the given object should exist in GCP
tests - |  | The list of expected URL mappings. Requests to update this UrlMap will succeed only if all of the test cases pass.
| description - |  | Description of this test case.
| host - / required |  | Host portion of the URL.
| path - / required |  | Path portion of the URL.
| service - / required |  | A reference to expected BackendService resource the given URL should be mapped to. This field represents a link to a BackendService resource in GCP. It can be specified in two ways. First, you can place a dictionary with key 'selfLink' and value of your resource's selfLink Alternatively, you can add `register: name-of-resource` to a gcp_compute_backend_service task and then set this service field to "{{ name-of-resource }}"

## Notes

Note

- For authentication, you can set service_account_file using the `GCP_SERVICE_ACCOUNT_FILE` env variable.
- For authentication, you can set service_account_email using the `GCP_SERVICE_ACCOUNT_EMAIL` env variable.
- For authentication, you can set service_account_contents using the `GCP_SERVICE_ACCOUNT_CONTENTS` env variable.
- For authentication, you can set auth_kind using the `GCP_AUTH_KIND` env variable.
- For authentication, you can set scopes using the `GCP_SCOPES` env variable.
- Environment variables values will only be used if the playbook values are not set.
- The service_account_email and service_account_file options are mutually exclusive.

## Examples

    - name: create a instance group
      gcp_compute_instance_group:
        name: instancegroup-urlmap
        zone: us-central1-a
        project: "{{ gcp_project }}"
        auth_kind: "{{ gcp_cred_kind }}"
        service_account_file: "{{ gcp_cred_file }}"
        state: present
      register: instancegroup

    - name: create a http health check
      gcp_compute_http_health_check:
        name: httphealthcheck-urlmap
        healthy_threshold: 10
        port: 8080
        timeout_sec: 2
        unhealthy_threshold: 5
        project: "{{ gcp_project }}"
        auth_kind: "{{ gcp_cred_kind }}"
        service_account_file: "{{ gcp_cred_file }}"
        state: present
      register: healthcheck

    - name: create a backend service
      gcp_compute_backend_service:
        name: backendservice-urlmap
        backends:
        - group: "{{ instancegroup }}"
        health_checks:
        - "{{ healthcheck.selfLink }}"
        enable_cdn: 'true'
        project: "{{ gcp_project }}"
        auth_kind: "{{ gcp_cred_kind }}"
        service_account_file: "{{ gcp_cred_file }}"
        state: present
      register: backendservice

    - name: create a url map
      gcp_compute_url_map:
        name: test_object
        default_service: "{{ backendservice }}"
        project: test_project
        auth_kind: serviceaccount
        service_account_file: "/tmp/auth.pem"
        state: present

## Return Values

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

Key | Returned | Description
--- | --- | ---
creationTimestamp string | success | Creation timestamp in RFC3339 text format.
defaultService dictionary | success | A reference to BackendService resource if none of the hostRules match.
description string | success | An optional description of this resource. Provide this property when you create the resource.
fingerprint string | success | Fingerprint of this resource. This field is used internally during updates of this resource.
hostRules complex | success | The list of HostRules to use against the URL.
| description string | success | An optional description of this HostRule. Provide this property when you create the resource.
| hosts list | success | The list of host patterns to match. They must be valid hostnames, except * will match any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .
| pathMatcher string | success | The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion.
id integer | success | The unique identifier for the resource.
name string | success | Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
pathMatchers complex | success | The list of named PathMatchers to use against the URL.
| defaultService dictionary | success | A reference to a BackendService resource. This will be used if none of the pathRules defined by this PathMatcher is matched by the URL's path portion.
| description string | success | An optional description of this resource.
| name string | success | The name to which this PathMatcher is referred by the HostRule.
| pathRules complex | success | The list of path rules.
|  | paths list | success | The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.
|  | service dictionary | success | A reference to the BackendService resource if this rule is matched.
tests complex | success | The list of expected URL mappings. Requests to update this UrlMap will succeed only if all of the test cases pass.
| description string | success | Description of this test case.
| host string | success | Host portion of the URL.
| path string | success | Path portion of the URL.
| service dictionary | success | A reference to expected BackendService resource the given URL should be mapped to.

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Google Inc. (@googlecloudplatform)

Hint

If you notice any issues in this documentation you can edit this document to improve it.