gce_mig – Create, Update or Destroy a Managed Instance Group (MIG).
New in version 2.2.
Synopsis
- Create, Update or Destroy a Managed Instance Group (MIG). See https://cloud.google.com/compute/docs/instance-groups for an overview. Full install/configuration instructions for the gce* 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.2.0
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
autoscaling
-
|
A dictionary of configuration for the autoscaler. 'enabled (bool)', 'name (str)' and policy.max_instances (int) are required fields if autoscaling is used. See
https://cloud.google.com/compute/docs/reference/beta/autoscalers for more information on Autoscaling.
|
|
credentials_file
-
|
Path to the JSON file associated with the service account email
|
|
name
- /
required
|
Name of the Managed Instance Group.
|
|
named_ports
-
added in 2.3
|
Define named ports that backend services can forward data to. Format is a a list of name:port dictionaries.
|
|
project_id
-
|
GCE project ID
|
|
service_account_email
-
|
service account email
|
|
size
-
|
Size of Managed Instance Group. If MIG already exists, it will be resized to the number provided here. Required for creating MIGs.
|
|
state
-
|
|
desired state of the resource
|
template
-
|
Instance Template to be used in creating the VMs. See
https://cloud.google.com/compute/docs/instance-templates to learn more about Instance Templates. Required for creating MIGs.
|
|
zone
- /
required
|
The GCE zone to use for this Managed Instance Group.
|
Notes
Note
- Resizing and Recreating VM are also supported.
- An existing instance template is required in order to create a Managed Instance Group.
Examples
# Following playbook creates, rebuilds instances, resizes and then deletes a MIG. # Notes: # - Two valid Instance Templates must exist in your GCE project in order to run # this playbook. Change the fields to match the templates used in your # project. # - The use of the 'pause' module is not required, it is just for convenience. - name: Managed Instance Group Example hosts: localhost gather_facts: False tasks: - name: Create MIG gce_mig: name: ansible-mig-example zone: us-central1-c state: present size: 1 template: my-instance-template-1 named_ports: - name: http port: 80 - name: foobar port: 82 - name: Pause for 30 seconds pause: seconds: 30 - name: Recreate MIG Instances with Instance Template change. gce_mig: name: ansible-mig-example zone: us-central1-c state: present template: my-instance-template-2-small recreate_instances: yes - name: Pause for 30 seconds pause: seconds: 30 - name: Resize MIG gce_mig: name: ansible-mig-example zone: us-central1-c state: present size: 3 - name: Update MIG with Autoscaler gce_mig: name: ansible-mig-example zone: us-central1-c state: present size: 3 template: my-instance-template-2-small recreate_instances: yes autoscaling: enabled: yes name: my-autoscaler policy: min_instances: 2 max_instances: 5 cool_down_period: 37 cpu_utilization: target: .39 load_balancing_utilization: target: 0.4 - name: Pause for 30 seconds pause: seconds: 30 - name: Delete MIG gce_mig: name: ansible-mig-example zone: us-central1-c state: absent autoscaling: enabled: no name: my-autoscaler
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
created_autoscaler
boolean
|
When the creation of an Autoscaler was attempted. |
True if Autoscaler was attempted and created. False otherwise.
Sample:
True
|
created_instances
list
|
When instances are created. |
Names of instances created.
Sample:
['ansible-mig-new-0k4y', 'ansible-mig-new-0zk5', 'ansible-mig-new-kp68']
|
deleted_autoscaler
boolean
|
When the delete of an Autoscaler was attempted. |
True if an Autoscaler delete attempted and succeeded. False returned if delete failed.
Sample:
True
|
deleted_instances
list
|
When instances are deleted. |
Names of instances deleted.
Sample:
['ansible-mig-new-0k4y', 'ansible-mig-new-0zk5', 'ansible-mig-new-kp68']
|
name
string
|
changed |
Name of the Managed Instance Group.
Sample:
my-managed-instance-group
|
named_ports
list
|
when named_ports are initially set or updated |
list of named ports acted upon
Sample:
[{'name': 'http', 'port': 80}, {'name': 'foo', 'port': 82}]
|
recreated_instances
list
|
When instances are recreated. |
Names of instances recreated.
Sample:
['ansible-mig-new-0k4y', 'ansible-mig-new-0zk5', 'ansible-mig-new-kp68']
|
resize_created_instances
list
|
When a resize results in the creation of instances. |
Names of instances created during resizing.
Sample:
['ansible-mig-new-0k4y', 'ansible-mig-new-0zk5', 'ansible-mig-new-kp68']
|
resize_deleted_instances
list
|
When a resize results in the deletion of instances. |
Names of instances deleted during resizing.
Sample:
['ansible-mig-new-0k4y', 'ansible-mig-new-0zk5', 'ansible-mig-new-kp68']
|
set_named_ports
boolean
|
named_ports have been set |
True if the named_ports have been set
Sample:
True
|
size
integer
|
changed |
Number of VMs in Managed Instance Group.
Sample:
4
|
template
string
|
changed |
Instance Template to use for VMs. Must exist prior to using with MIG.
Sample:
my-instance-template
|
updated_autoscaler
boolean
|
When the update of an Autoscaler was attempted. |
True if an Autoscaler update was attempted and succeeded. False returned if update failed.
Sample:
True
|
updated_named_ports
boolean
|
named_ports have been updated |
True if the named_ports have been updated
Sample:
True
|
zone
string
|
always |
Zone in which to launch MIG.
Sample:
us-central1-b
|
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors
- Tom Melendez (@supertom) <tom@supertom.com>
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/gce_mig_module.html