- name: Include prompts import_tasks: prompts.yml - block: - name: Gather Scaleway organizations facts scaleway_organization_facts: - name: Get images scaleway_image_facts: region: "{{ algo_region }}" - name: Set cloud specific facts set_fact: organization_id: "{{ scaleway_organization_facts[0]['id'] }}" images: >- [{% for i in scaleway_image_facts -%} {% if i.name == cloud_providers.scaleway.image and i.arch == cloud_providers.scaleway.arch -%} '{{ i.id }}'{% if not loop.last %},{% endif %} {%- endif -%} {%- endfor -%}] - name: Create a server scaleway_compute: name: "{{ algo_server_name }}" enable_ipv6: true public_ip: dynamic boot_type: local state: running image: "{{ images[0] }}" organization: "{{ organization_id }}" region: "{{ algo_region }}" commercial_type: "{{ cloud_providers.scaleway.size }}" wait: true tags: - Environment:Algo - AUTHORIZED_KEY={{ lookup('file', SSH_keys.public)|regex_replace(' ', '_') }} register: algo_instance until: algo_instance.msg.public_ip retries: 3 delay: 3 environment: SCW_TOKEN: "{{ algo_scaleway_token }}" - set_fact: cloud_instance_ip: "{{ algo_instance.msg.public_ip.address }}" ansible_ssh_user: root