gce_instance_template – create or destroy instance templates of Compute Engine of GCP¶
New in version 2.3.
Synopsis¶
Creates or destroy Google instance templates of Compute Engine of Google Cloud Platform.
Requirements¶
The below requirements are needed on the host that executes this module.
python >= 2.6
apache-libcloud >= 0.13.3, >= 0.17.0 if using JSON credentials, >= 0.20.0 if using preemptible option
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
automatic_restart
boolean
|
|
Defines whether the instance should be automatically restarted when it is terminated by Compute Engine.
|
can_ip_forward
boolean
|
|
Set to
yes to allow instance to send/receive non-matching src/dst packets. |
credentials_file
-
|
path to the JSON file associated with the service account email
|
|
description
-
|
description of instance template
|
|
disk_auto_delete
boolean
|
|
Indicate that the boot disk should be deleted when the Node is deleted.
|
disk_type
-
|
Default: "pd-standard"
|
Specify a
pd-standard disk or pd-ssd for an SSD disk. |
disks
-
|
a list of persistent disks to attach to the instance; a string value gives the name of the disk; alternatively, a dictionary value can define 'name' and 'mode' ('READ_ONLY' or 'READ_WRITE'). The first entry will be the boot disk (which must be READ_WRITE).
|
|
disks_gce_struct
-
added in 2.4 |
Support passing in the GCE-specific formatted formatted disks[] structure. Case sensitive. see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates#resource for detailed information
|
|
external_ip
-
|
Default: "ephemeral"
|
The external IP address to use. If
ephemeral , a new non-static address will be used. If None , then no external address will be used. To use an existing static IP address specify address name. |
image
-
|
The image to use to create the instance. Cannot specify both both image and source.
|
|
image_family
-
|
The image family to use to create the instance. If image has been used image_family is ignored. Cannot specify both image and source.
|
|
metadata
-
|
a hash/dictionary of custom data for the instance; '{"key":"value", ...}'
|
|
name
-
|
The name of the GCE instance template.
|
|
network
-
|
Default: "default"
|
The network to associate with the instance.
|
nic_gce_struct
-
|
Support passing in the GCE-specific formatted networkInterfaces[] structure.
|
|
pem_file
-
|
path to the pem file associated with the service account email This option is deprecated. Use 'credentials_file'.
|
|
preemptible
boolean
|
|
Defines whether the instance is preemptible.
|
project_id
-
|
your GCE project ID
|
|
service_account_email
-
|
service account email
|
|
service_account_permissions
-
|
|
service account permissions (see https://cloud.google.com/sdk/gcloud/reference/compute/instances/create, --scopes section for detailed information)
|
size
-
|
Default: "f1-micro"
|
The desired machine type for the instance template.
|
source
-
|
A source disk to attach to the instance. Cannot specify both image and source.
|
|
state
-
|
|
The desired state for the instance template.
|
subnetwork
-
|
The Subnetwork resource name for this instance.
|
|
subnetwork_region
-
added in 2.4 |
Region that subnetwork resides in. (Required for subnetwork to successfully complete)
|
|
tags
-
|
a comma-separated list of tags to associate with the instance
|
Notes¶
Note
JSON credentials strongly preferred.
Examples¶
# Usage
- name: create instance template named foo
gce_instance_template:
name: foo
size: n1-standard-1
image_family: ubuntu-1604-lts
state: present
project_id: "your-project-name"
credentials_file: "/path/to/your-key.json"
service_account_email: "[email protected]"
# Example Playbook
- name: Compute Engine Instance Template Examples
hosts: localhost
vars:
service_account_email: "[email protected]"
credentials_file: "/path/to/your-key.json"
project_id: "your-project-name"
tasks:
- name: create instance template
gce_instance_template:
name: my-test-instance-template
size: n1-standard-1
image_family: ubuntu-1604-lts
state: present
project_id: "{{ project_id }}"
credentials_file: "{{ credentials_file }}"
service_account_email: "{{ service_account_email }}"
- name: delete instance template
gce_instance_template:
name: my-test-instance-template
size: n1-standard-1
image_family: ubuntu-1604-lts
state: absent
project_id: "{{ project_id }}"
credentials_file: "{{ credentials_file }}"
service_account_email: "{{ service_account_email }}"
# Example playbook using disks_gce_struct
- name: Compute Engine Instance Template Examples
hosts: localhost
vars:
service_account_email: "[email protected]"
credentials_file: "/path/to/your-key.json"
project_id: "your-project-name"
tasks:
- name: create instance template
gce_instance_template:
name: foo
size: n1-standard-1
state: present
project_id: "{{ project_id }}"
credentials_file: "{{ credentials_file }}"
service_account_email: "{{ service_account_email }}"
disks_gce_struct:
- device_name: /dev/sda
boot: true
autoDelete: true
initializeParams:
diskSizeGb: 30
diskType: pd-ssd
sourceImage: projects/debian-cloud/global/images/family/debian-8
Status¶
This module is not guaranteed to have a backwards compatible interface. [preview]
This module is maintained by the Ansible Community. [community]