--- - name: "Checking state for server <{{ inventory_hostname }}> is <{{ server_state }}>" hetzner.hcloud.hcloud_server: api_token: "{{ hetzner_authentication_ansible }}" name: "{{ inventory_hostname }}" server_type: "{{ hetzner_server_type }}" image: "{{ hetzner_server_image }}" ssh_keys: "{{ hetzner_ssh_keys }}" labels: "{{ hetzner_server_labels }}" location: nbg1 state: "{{ server_state }}" delegate_to: 127.0.0.1 become: false async: 300 poll: 5 register: hcloud_response ignore_errors: yes # poweron server if server not running - name: "Ensure Server is STARTED when server_state=present" hetzner.hcloud.hcloud_server: api_token: "{{ hetzner_authentication_ansible }}" name: "{{ inventory_hostname }}" state: "started" delegate_to: 127.0.0.1 become: false async: 300 poll: 15 when: - server_state == 'present' - not hcloud_response.msg is defined # just catching hetzner error and trying to avoid manual interaction - name: "DEBUGGING Block for hetzner << message not found >> - error" block: - name: "DEBUG: hcloud_response" debug: msg: hcloud_response.msg - name: "Ensure Server is STARTED when server_state=present" hetzner.hcloud.hcloud_server: api_token: "{{ hetzner_authentication_ansible }}" name: "{{ inventory_hostname }}" state: "started" delegate_to: 127.0.0.1 become: false async: 300 poll: 15 when: - server_state == 'present' when: - hcloud_response.msg is defined