mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Gce migration docs (#51838)
* migration docs for gce, with example playbook * Update docs/docsite/rst/scenario_guides/guide_gce.rst Co-Authored-By: rambleraptor <alexstephen@google.com>
This commit is contained in:
parent
a005dcfbbd
commit
91a664a93e
1 changed files with 58 additions and 1 deletions
|
@ -81,7 +81,7 @@ For the GCE modules you can specify the credentials as arguments:
|
||||||
* ``project``: id of the project
|
* ``project``: id of the project
|
||||||
* ``scopes``: The specific scopes that you want the actions to use.
|
* ``scopes``: The specific scopes that you want the actions to use.
|
||||||
|
|
||||||
For example, to create a new IP address using the `gcp_compute_address` module,
|
For example, to create a new IP address using the ``gcp_compute_address`` module,
|
||||||
you can use the following configuration:
|
you can use the following configuration:
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
@ -252,3 +252,60 @@ Note that use of the "add_host" module above creates a temporary, in-memory grou
|
||||||
in the 'new_instances' group, if so desired. Any sort of arbitrary configuration is possible at this point.
|
in the 'new_instances' group, if so desired. Any sort of arbitrary configuration is possible at this point.
|
||||||
|
|
||||||
For more information about Google Cloud, please visit the `Google Cloud website <https://cloud.google.com>`_.
|
For more information about Google Cloud, please visit the `Google Cloud website <https://cloud.google.com>`_.
|
||||||
|
|
||||||
|
Migration Guides
|
||||||
|
----------------
|
||||||
|
|
||||||
|
gce.py -> gcp_compute_instance.py
|
||||||
|
`````````````````````````````````
|
||||||
|
As of Ansible 2.8, we're encouraging everyone to move from the ``gce`` module to the
|
||||||
|
``gcp_compute_instance`` module. The ``gcp_compute_instance`` module has better
|
||||||
|
support for all of GCP's features, fewer dependencies, more flexibility, and
|
||||||
|
better supports GCP's authentication systems.
|
||||||
|
|
||||||
|
The ``gcp_compute_instance`` module supports all of the features of the ``gce``
|
||||||
|
module (and more!). Below is a mapping of ``gce`` fields over to
|
||||||
|
``gcp_compute_instance`` fields.
|
||||||
|
|
||||||
|
============================ ========================================== ======================
|
||||||
|
gce.py gcp_compute_instance.py Notes
|
||||||
|
============================ ========================================== ======================
|
||||||
|
state state/status State on gce has multiple values: "present", "absent", "stopped", "started", "terminated". State on gcp_compute_instance is used to describe if the instance exists (present) or does not (absent). Status is used to describe if the instance is "started", "stopped" or "terminated".
|
||||||
|
image disks[].initialize_params.source_image You'll need to create a single disk using the disks[] parameter and set it to be the boot disk (disks[].boot = true)
|
||||||
|
image_family disks[].initialize_params.source_image See above.
|
||||||
|
external_projects disks[].initialize_params.source_image The name of the source_image will include the name of the project.
|
||||||
|
instance_names Use a loop or multiple tasks. Using loops is a more Ansible-centric way of creating multiple instances and gives you the most flexibility.
|
||||||
|
service_account_email service_accounts[].email This is the service_account email address that you want the instance to be associated with. It is not the service_account email address that is used for the credentials necessary to create the instance.
|
||||||
|
service_account_permissions service_accounts[].scopes These are the permissions you want to grant to the instance.
|
||||||
|
pem_file Not supported. We recommend using JSON service account credentials instead of PEM files.
|
||||||
|
credentials_file service_account_file
|
||||||
|
project_id project
|
||||||
|
name name This field does not accept an array of names. Use a loop to create multiple instances.
|
||||||
|
num_instances Use a loop For maximum flexibility, we're encouraging users to use Ansible features to create multiple instances, rather than letting the module do it for you.
|
||||||
|
network network_interfaces[].network
|
||||||
|
subnetwork network_interfaces[].subnetwork
|
||||||
|
persistent_boot_disk disks[].type = 'PERSISTENT'
|
||||||
|
disks disks[]
|
||||||
|
ip_forward can_ip_forward
|
||||||
|
external_ip network_interfaces[].access_configs.nat_ip This field takes multiple types of values. You can create an IP address with ``gcp_compute_address`` and place the name/output of the address here. You can also place the string value of the IP address's GCP name or the actual IP address.
|
||||||
|
disks_auto_delete disks[].auto_delete
|
||||||
|
preemptible scheduling.preemptible
|
||||||
|
disk_size disks[].initialize_params.disk_size_gb
|
||||||
|
============================ ========================================== ======================
|
||||||
|
|
||||||
|
An example playbook is below:
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
gcp_compute_instance:
|
||||||
|
name: "{{ item }}"
|
||||||
|
machine_type: n1-standard-1
|
||||||
|
... # any other settings
|
||||||
|
zone: us-central1-a
|
||||||
|
project: "my-project"
|
||||||
|
auth_kind: "service_account_file"
|
||||||
|
service_account_file: "~/my_account.json"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- instance-1
|
||||||
|
- instance-2
|
||||||
|
|
Loading…
Reference in a new issue