---
- name: Build python virtual environment
  import_tasks: venv.yml

- block:
  - name: Include prompts
    import_tasks: prompts.yml

  - name: Create an instance
    lightsail:
      aws_access_key: "{{ access_key }}"
      aws_secret_key: "{{ secret_key }}"
      name: "{{ algo_server_name }}"
      state: present
      region: "{{ algo_region }}"
      zone: "{{ algo_region }}a"
      blueprint_id: "{{ cloud_providers.lightsail.image }}"
      bundle_id: "{{ cloud_providers.lightsail.size }}"
      wait_timeout: 300
      open_ports:
        - from_port: 4500
          to_port: 4500
          protocol: udp
        - from_port: 500
          to_port: 500
          protocol: udp
        - from_port: "{{ wireguard_port }}"
          to_port: "{{ wireguard_port }}"
          protocol: udp
      user_data: |
        #!/bin/bash
        mkdir -p /home/ubuntu/.ssh/
        echo "{{ lookup('file', '{{ SSH_keys.public }}') }}" >> /home/ubuntu/.ssh/authorized_keys
        chown -R ubuntu: /home/ubuntu/.ssh/
        chmod 0700 /home/ubuntu/.ssh/
        chmod 0600 /home/ubuntu/.ssh/*
        test
    register: algo_instance

  - set_fact:
      cloud_instance_ip: "{{ algo_instance['instance']['public_ip_address'] }}"
      ansible_ssh_user: ubuntu
  environment:
    PYTHONPATH: "{{ lightsail_venv }}/lib/python2.7/site-packages/"
