Molecule GCE Plugin :: run molecule tests on Google Cloud Engine
Molecule GCE Plugin
Molecule GCE is designed to allow use Google Cloud Engine for provisioning test resources.
Please note that this driver is currently in its early stage of development.
This plugin requires google.cloud and community.crypto collections to be present:
ansible-galaxy collection install google.cloud ansible-galaxy collection install community.crypto
Installation and Usage
Install molecule-gce :
pip install molecule-gce
Create a new role with molecule using the GCE driver:
molecule init role <role_name> -d gce
<role_name>/molecule/default/molecule.yml with required parameters:
dependency: name: galaxy driver: name: gce project_id: my-google-cloud-platform-project-id # if not set, will default to env GCE_PROJECT_ID region: us-central1 # REQUIRED network_name: my-vpc # specify if other than default subnetwork_name: my-subnet # specify if other than default vpc_host_project: null # if you use a shared vpc, set here the vpc host project. In that case, your GCP user needs the necessary permissions in the host project, see https://cloud.google.com/vpc/docs/shared-vpc#iam_in_shared_vpc username: ssh-user # used to connect with ssh to the GCE instance, will default to 'molecule' auth_kind: serviceaccount # set to machineaccount or serviceaccount or application - if set to null will read env GCP_AUTH_KIND service_account_email: null # set to an email associated with the project - if set to null, will default to GCP_SERVICE_ACCOUNT_EMAIL. Should not be set if using auth_kind serviceaccount. service_account_file: /path/to/gce-sa.json # set to the path to the JSON credentials file - if set to null, will default to env GCP_SERVICE_ACCOUNT_FILE scopes: - "https://www.googleapis.com/auth/compute" # will default to env GCP_SCOPES, https://www.googleapis.com/auth/compute is the minimum required scope. external_access: false # chose whether to create a public IP for the VM or not - default is private IP only instance_os_type: linux # Either windows or linux. Will be considered linux by default. You can NOT mix Windows and Linux VMs in the same scenario. platforms: # see src/molecule_gce/playbooks/tasks/create_linux_instance.yml for a complete list of supported keys - name: ubuntu-instance-created-by-molecule # REQUIRED: this will be your VM name zone: us-central1-a # Example: us-west1-b. Will default to zone b of region defined in driver (some regions do not have a zone-a) machine_type: n1-standard-1 # If not specified, will default to n1-standard-1 preemptible: false # If not specified, will default to false. Preemptible instances have no SLA, in case of resource shortage in the zone they might get destroyed (or not be created) without warning, and will always be terminated after 24 hours. But they cost less and will mitigate the financial consequences of a PAYG licenced VM that would be forgotten. image: 'projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts' # Points to an image, you can get a list of available images with command 'gcloud compute images list'. # The expected format of this string is projects/<project>/global/images/family/<family-name> # (see https://googlecloudplatform.github.io/compute-image-tools/daisy-automating-image-creation.html) # Wille default to debian-10 image for os_type Linux, Windows 2019 for os_type Windows tags: # Not required. Format must follow https://docs.ansible.com/ansible/latest/collections/google/cloud/gcp_compute_instance_module.html#parameter-tags items: - allow-ssh - allow-rdp - name: debian-instance-created-by-molecule zone: us-central1-a machine_type: n1-standard-2 image: 'projects/debian-cloud/global/images/family/debian-10' - name: n1-standard1-debian10-in-region-b provisioner: name: ansible verifier: name: ansible
- Join us in the
#ansible-devtoolschannel on Libera.
- Join the discussion in molecule-users Forum.
- Join the community working group by checking the wiki.
- Want to know about releases, subscribe to ansible-announce list.
- For the full list of Ansible email Lists, IRC channels see the communication page.
The MIT License.
The logo is licensed under the Creative Commons NoDerivatives 4.0 License.
If you have some other use in mind, contact us.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for molecule_gce-1.0.0-py3-none-any.whl