- set_fact: credentials_file_lookup: "{{ lookup('file', '{{ credentials_file }}') }}" ssh_public_key_lookup: "{{ lookup('file', '{{ ssh_public_key }}') }}" - name: "Creating a new instance..." gce: instance_names: "{{ server_name }}" zone: "{{ zones[zone] }}" machine_type: n1-standard-1 image: ubuntu-1604 service_account_email: "{{ credentials_file_lookup.client_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ credentials_file_lookup.project_id }}" metadata: '{"sshKeys":"root:{{ ssh_public_key_lookup }}"}' register: google_vm - name: Add the instance to an inventory group add_host: name: "{{ google_vm.instance_data[0].public_ip}}" groups: vpn-host ansible_ssh_user: ubuntu ansible_python_interpreter: "/usr/bin/python2.7" dns_enabled: "{{ dns_enabled }}" auditd_enabled: " {{ auditd_enabled }}" easyrsa_p12_export_password: "{{ easyrsa_p12_export_password }}" - name: Firewall configured local_action: module: gce_net name: "{{ google_vm.instance_data[0].network }}" fwname: "algo-ikev2" allowed: "udp:500,4500;tcp:22" state: "present" src_range: 0.0.0.0/0 service_account_email: "{{ credentials_file_lookup.client_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ credentials_file_lookup.project_id }}" - name: Waiting for SSH to become available local_action: "wait_for port=22 host={{ google_vm.instance_data[0].public_ip }} timeout=320"