summaryrefslogtreecommitdiff
path: root/roles/boot-rescue/tasks/main.yml
blob: 395c360050fb1e3fbab96d1532d3c3f6557adcc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
---
- 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
    headers:
        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
    headers:
        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