bugfix: added pagination to autodiscover_pre_tasks

- server discovery was limited to 25 servers
- hetzner default pagination: 25 servers per page
master
Sven Ketelsen 4 years ago
parent 7e79a07635
commit 37931e581e

@ -6,15 +6,59 @@
method: GET
headers:
authorization: Bearer {{ hetzner_authentication_token }}
register: hetzner_servers
register: hetzner_servers_result
delegate_to: 127.0.0.1
become: false
tags:
- always
- name: "Setting hetzner server pagination count: <{{ hetzner_servers_result.json.meta.pagination.last_page }}>"
set_fact:
total_server_pages: "{{ hetzner_servers_result.json.meta.pagination.last_page }}"
become: false
tags:
- always
- name: "Reading hetzner server infos for stage <{{ stage }}> without pagination"
set_fact:
hetzner_servers: "{{ hetzner_servers_result.json.servers }}"
become: false
tags:
- always
when:
- total_server_pages == '1'
- name: "Reading hetzner server infos for stage <{{ stage }}> with pagination"
uri:
url: "https://api.hetzner.cloud/v1/servers?label_selector=stage={{ stage }}&page={{ item }}"
method: GET
headers:
authorization: Bearer {{ hetzner_authentication_token }}
register: hetzner_servers_results
with_sequence: start=1 end={{ total_server_pages }}
delegate_to: 127.0.0.1
become: false
tags:
- always
when:
- total_server_pages != '1'
- name: "Reading hetzner server infos for stage <{{ stage }}> with pagination"
set_fact:
hetzner_servers: "{{ hetzner_servers_results.results | json_query(querystr1) | first | json_query(querystr2) | json_query(querystr2) }}"
vars:
querystr1: "[[*].json.servers]"
querystr2: "[]"
delegate_to: 127.0.0.1
become: false
tags:
- always
when:
- total_server_pages != '1'
- name: "Printing hetzner server infos for stage <{{ stage }}>"
debug:
msg: "{{ hetzner_servers.json.servers }}"
msg: "{{ hetzner_servers }}"
delegate_to: 127.0.0.1
become: false
tags:
@ -66,7 +110,7 @@
set_fact:
stage_server_infos: "\
{% set list= [] %}\
{% for server in hetzner_servers.json.servers %}\
{% for server in hetzner_servers %}\
{% for private_net in server.private_net %}\
{% if private_net.network == stage_private_network_id|int %}\
{{ list.append({'service': server.labels.service, 'private_ip': private_net.ip, 'public_ip': server.public_net.ipv4.ip, 'name': server.name}) }}\
@ -91,7 +135,7 @@
- name: "Reading private ip address for {{ inventory_hostname }}"
set_fact:
stage_private_server_ip: "{% for server in hetzner_servers.json.servers %}\
stage_private_server_ip: "{% for server in hetzner_servers %}\
{% if server.name == inventory_hostname %}\
{% for private_net in server.private_net %}\
{% if private_net.network == stage_private_network_id|int %}\
@ -107,7 +151,7 @@
- name: "Reading public ip address for {{ inventory_hostname }}"
set_fact:
stage_server_ip: "{{ hetzner_servers.json.servers | json_query(querystr) | first | default('') }}"
stage_server_ip: "{{ hetzner_servers | json_query(querystr) | first | default('') }}"
vars:
querystr: "[?name=='{{ inventory_hostname }}'].public_net.ipv4.ip"
delegate_to: 127.0.0.1

Loading…
Cancel
Save