resources: # Automation scripts repo - name: gcp_gce_repo type: gitRepo integration: "drship_github" versionTemplate: sourceName: "devops-recipes/prov_gcp_gce_ansible" branch: master # AWS credentials - name: gcp_gce_creds type: integration integration: "drship_gcp" # Output of GCP provisioning - name: gcp_gce_info type: params versionTemplate: params: SEED: "initial_version" jobs: # Provision GCP GCE with Ansible - name: prov_gcp_gce_ans type: runSh steps: - IN: gcp_gce_repo switch: off - IN: gcp_gce_creds switch: off - TASK: name: prov_inst runtime: options: env: - STATE_RES_NAME: "gcp_gce_info" - gce_name: "dev" - gce_zone: "us-east1-d" - gce_machine_type: "n1-standard-1" - gce_image: "ubuntu-1604-xenial-v20180522" - gce_tag_Role: "demo-machines" - gce_count: 1 - gce_volume_size: 30 - GCE_PROJECT: "devops-recipes" - GCE_EMAIL: "dr-gke@devops-recipes.iam.gserviceaccount.com" - GCE_CREDENTIALS_FILE_PATH: "gcp_key.json" script: - pip install apache-libcloud backports.ssl_match_hostname pycrypto - pushd $(shipctl get_resource_state "gcp_gce_repo")/ansible - echo $(shipctl get_integration_resource_field gcp_gce_creds JSON_key) > $GCE_CREDENTIALS_FILE_PATH - shipctl replace variables.yml inventory/gce.ini - ansible-playbook -v gce_prov_playbook.yml - OUT: gcp_gce_info overwrite: true flags: - gcp_gce - gce - ansible # Terminate GCP GCE with Ansible - name: term_gcp_gce_ans type: runSh steps: - IN: gcp_gce_repo switch: off - IN: gcp_gce_creds switch: off - IN: gcp_gce_info switch: off - TASK: name: term_inst runtime: options: env: - gce_zone: "us-east1-d" - gce_name: "dev" - gce_tag_Role: "demo-machines" - GCE_PROJECT: "devops-recipes" - GCE_EMAIL: "dr-gke@devops-recipes.iam.gserviceaccount.com" - GCE_CREDENTIALS_FILE_PATH: "gcp_key.json" script: - pip install apache-libcloud backports.ssl_match_hostname pycrypto - pushd $(shipctl get_resource_state "gcp_gce_repo")/ansible - echo $(shipctl get_integration_resource_field gcp_gce_creds JSON_key) > $GCE_CREDENTIALS_FILE_PATH - shipctl replace variables.yml inventory/gce.ini - ansible-playbook -v gce_term_playbook.yml flags: - gcp_gce - gce - ansible