@ -1,48 +1,105 @@
---
---
- name : Fetch private_ips
- name : "Reading hetzner server infos for stage <{{ stage }}>"
uri:
uri:
url : https://api.hetzner.cloud/v1/servers?page=1'
url : "https://api.hetzner.cloud/v1/servers?label_selector=stage={{ stage }}"
method : GET
method : GET
headers:
headers:
authorization : Bearer {{ hetzner_authentication_token }}
authorization : Bearer {{ hetzner_authentication_token }}
register : ding s
register : hetzner_server s
delegate_to : 127.0 .0 .1
delegate_to : 127.0 .0 .1
become : false
become : false
tags:
tags:
- autodiscover
- autodiscover
- name : "Reading private ip address for {{ inventory_hostname }}"
- name : "Printing hetzner server infos for stage <{{ stage }}>"
debug:
msg : "{{ hetzner_servers.json.servers }}"
delegate_to : 127.0 .0 .1
become : false
tags:
- autodiscover
when:
- debug
- name : "Reading hetzner server infos for stage <{{ stage }}>"
set_fact:
set_fact:
stage_private_server_ip : "{{ dings.json.servers | json_query(querystr) | first }}"
stage_ server_infos: "{{ hetzner_servers.json.servers | json_query(querystr) | default([]) }}"
vars:
vars:
querystr : "[?name=='{{ inventory_hostname }}'].private_net[0].ip"
querystr : "[*].{ name: name, public_ip: public_net.ipv4.ip, private_ip: private_net[0].ip }"
delegate_to : 127.0 .0 .1
become : false
tags:
- autodiscover
- name : "Reading hetzner server infos for stage <{{ stage }}>"
debug:
msg : "{{ stage_server_infos }}"
delegate_to : 127.0 .0 .1
delegate_to : 127.0 .0 .1
become : false
become : false
tags:
tags:
- autodiscover
- autodiscover
- name : "Gathering current server infos from hetzner"
- name : "Reading hetzner private network infos for stage <{{ stage }}>"
hcloud_server_info:
uri:
api_token : "{{ hetzner_authentication_token }}"
url : "https://api.hetzner.cloud/v1/networks?label_selector=stage={{ stage }}"
register : hetzner_server_infos
method : GET
headers:
authorization : Bearer {{ hetzner_authentication_token }}
register : hetzner_networks
delegate_to : 127.0 .0 .1
delegate_to : 127.0 .0 .1
become : false
become : false
tags:
tags:
- autodiscover
- autodiscover
- name : "Setting current server infos as fact: hetzner_server_infos_json"
- name : "Printing hetzner private network infos for stage <{{ stage }}>"
debug:
msg : "{{ hetzner_networks.json.networks }}"
delegate_to : 127.0 .0 .1
become : false
tags:
- autodiscover
when:
- debug
- name : "Reading hetzner private network id for <{{ stage }}>"
set_fact:
set_fact:
hetzner_server_infos_json : "{{ hetzner_server_infos.hcloud_server_info }}"
stage_private_network_id : "{{ hetzner_networks.json.networks | json_query(querystr) | first }}"
vars:
querystr : "[?ip_range=='{{ shared_service_network }}'].id"
delegate_to : 127.0 .0 .1
become : false
tags:
- autodiscover
- name : "Reading hetzner private network id for <{{ stage }}>"
debug:
msg : "{{ stage_private_network_id }}"
delegate_to : 127.0 .0 .1
become : false
tags:
- autodiscover
when:
- debug
# TODO always match first private_net network is wrong
# use stage_private_network_id to match the right network
# expression [?network=`{{ stage_private_network_id }}`] does not work
- name : "Reading private ip address for {{ inventory_hostname }}"
set_fact:
stage_private_server_ip : "{{ hetzner_servers.json.servers | json_query(querystr) | first }}"
vars:
querystr : "[?name=='{{ inventory_hostname }}'].private_net[0].ip"
delegate_to : 127.0 .0 .1
delegate_to : 127.0 .0 .1
become : false
become : false
tags:
tags:
- autodiscover
- autodiscover
- name : "Reading ip address for {{ inventory_hostname }}"
- name : "Reading public ip address for {{ inventory_hostname }}"
set_fact:
set_fact:
stage_server_ip : "{{ hetzner_server_infos_json | json_query(querystr) | first }}"
stage_server_ip : "{{ hetzner_server s.json.servers | json_query(querystr) | first }}"
vars:
vars:
querystr : "[?name=='{{ inventory_hostname }}'].ipv4_address"
querystr : "[?name=='{{ inventory_hostname }}']. public_net.ipv4.ip "
delegate_to : 127.0 .0 .1
delegate_to : 127.0 .0 .1
become : false
become : false
tags:
tags: