added boot-rescue role

netsplit
Niklas Yann Wettengel 7 years ago
commit 28ebbd929b

@ -0,0 +1,9 @@
---
- name: reboot vserver into rescue image
hosts: new_fastds
connection: local
gather_facts: no
vars:
ansible_python_interpreter: /usr/bin/python
roles:
- role: boot-rescue

@ -0,0 +1,7 @@
[new_fastds]
123.123.123.123 arch_hostname=fastd1
[all:vars]
hetzner_webservice_username=<hetzner_webservice_username>
hetzner_webservice_password=<hetzner_webservice_password>
rescue_authorized_key=<fingerprint of ssh key to use in rescue mode>

@ -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
Loading…
Cancel
Save