diff options
Diffstat (limited to 'roles/boot-rescue')
-rw-r--r-- | roles/boot-rescue/tasks/main.yml | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/roles/boot-rescue/tasks/main.yml b/roles/boot-rescue/tasks/main.yml new file mode 100644 index 0000000..ad7ff9a --- /dev/null +++ b/roles/boot-rescue/tasks/main.yml @@ -0,0 +1,58 @@ +--- +- name: check rescue mode + uri: + url: https://robot-ws.your-server.de/boot/{{ inventory_hostname }}/rescue + method: GET + user: "{{ hetzner_webservice_username }}" + password: "{{ hetzner_webservice_password }}" + force_basic_auth: yes + status_code: 200 + register: rescue + +- name: activate rescue mode + when: rescue.json.rescue.active == false + uri: + url: https://robot-ws.your-server.de/boot/{{ inventory_hostname }}/rescue + method: POST + user: "{{ hetzner_webservice_username }}" + password: "{{ hetzner_webservice_password }}" + force_basic_auth: yes + body: "os=linux&arch=64&authorized_key={{ rescue_authorized_key }}" + status_code: 200 + HEADER_Content-Type: "application/x-www-form-urlencoded" + register: activated + +#- debug: var=activated + +- name: Execute hardware reset + uri: + url: https://robot-ws.your-server.de/reset/{{ inventory_hostname }} + method: POST + user: "{{ hetzner_webservice_username }}" + password: "{{ hetzner_webservice_password }}" + force_basic_auth: yes + body: "type=hw" + status_code: 200 + HEADER_Content-Type: "application/x-www-form-urlencoded" + register: reset + +- name: remove server from local known_hosts file + local_action: shell ssh-keygen -R {{ inventory_hostname }} + ignore_errors: true + +- name: waiting for server to go down + local_action: + module: wait_for + host: "{{ inventory_hostname }}" + port: 22 + delay: 1 + timeout: 120 + state: stopped + +- name: waiting for server to come back + local_action: + module: wait_for + host: "{{ inventory_hostname }}" + port: 22 + delay: 1 + timeout: 120 |