--- ### tags: ### update_dns ### update_networks - name: Create new server {{ inventory_hostname }} hetzner.hcloud.hcloud_server: api_token: "{{ hetzner_authentication_token }}" name: "{{ inventory_hostname }}" server_type: "{{ hetzner_server_type }}" image: "{{ hetzner_server_image }}" ssh_keys: "{{ hetzner_ssh_keys }}" labels: "{{ hetzner_server_labels }}" location: nbg1 state: present delegate_to: 127.0.0.1 - name: "Gather current server infos" hcloud_server_info: api_token: "{{ hetzner_authentication_token }}" register: hetzner_server_infos delegate_to: 127.0.0.1 become: false tags: - update_dns - update_networks - name: "Set current server infos as fact: hetzner_server_infos_json" set_fact: hetzner_server_infos_json: "{{ hetzner_server_infos.hcloud_server_info }}" delegate_to: 127.0.0.1 become: false tags: - update_dns - update_networks - name: Print the gathered infos debug: var: hetzner_server_infos_json delegate_to: 127.0.0.1 tags: - update_dns - update_networks - name: "Set current server ips as fact: stage_server_ips" set_fact: stage_server_ips: "{{ hetzner_server_infos_json | json_query(jmesquery) }}" vars: jmesquery: '[*].{name: name, ipv4: ipv4_address}' tags: - update_dns - name: Read ip for {{ inventory_hostname }} set_fact: stage_server_ip: "{{ stage_server_ips | selectattr('name', 'equalto', inventory_hostname) | map(attribute='ipv4') | list | first }}" tags: - update_dns - name: Print the gathered ip for {{ inventory_hostname }} debug: var: stage_server_ip delegate_to: 127.0.0.1 tags: - update_dns - name: "Setup firewall" include_tasks: configure-firewall.yml vars: current_firewall_name: '{{ current_firewall }}' with_items: - 'default' - 'kibana' - 'mail' - 'monitoring' - 'docker' loop_control: loop_var: current_firewall tags: - update_networks - name: "Setup DNS configuration for {{ inventory_hostname }}" include_role: name: _digitalocean tasks_from: domain vars: record_data: "{{ stage_server_ip }}" record_name: "{{ inventory_hostname }}" tags: - update_dns