- block:
  - 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/"

  rescue:
  - debug: var=fail_hint
    tags: always
  - fail:
    tags: always
