You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hetzner-ansible/roles/hcloud/tasks/_set_server_state.yml

70 lines
2.0 KiB
YAML

---
- 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
retries: 10
delay: 15
until: server_locked.rc == 0
register: server_locked
when:
- server_state == 'present'
- hcloud_response.msg == 'cannot perform operation because server is locked'
- 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