diff options
Diffstat (limited to 'roles')
-rw-r--r-- | roles/poweron/tasks/main.yml | 15 | ||||
-rw-r--r-- | roles/reboot/tasks/main.yml | 2 | ||||
-rw-r--r-- | roles/shutdown/tasks/main.yml | 2 | ||||
-rw-r--r-- | roles/snapshot/tasks/main.yml | 31 | ||||
-rw-r--r-- | roles/sysupgrade/tasks/main.yml | 9 |
5 files changed, 59 insertions, 0 deletions
diff --git a/roles/poweron/tasks/main.yml b/roles/poweron/tasks/main.yml new file mode 100644 index 0000000..7aac651 --- /dev/null +++ b/roles/poweron/tasks/main.yml @@ -0,0 +1,15 @@ +- name: Power on droplet + local_action: + module: ansible.builtin.uri + url: "{{ digitalocean_api_url }}/droplets/{{ droplet_id }}/actions" + method: POST + headers: + Content-Type: application/json + Authorization: Bearer {{ digitalocean_api_token }} + body_format: json + status_code: 201 + body: + type: power_on + +- name: Wait for host to back up + ansible.builtin.wait_for_connection: diff --git a/roles/reboot/tasks/main.yml b/roles/reboot/tasks/main.yml new file mode 100644 index 0000000..50d20e7 --- /dev/null +++ b/roles/reboot/tasks/main.yml @@ -0,0 +1,2 @@ +- name: Reboot host + ansible.builtin.reboot: diff --git a/roles/shutdown/tasks/main.yml b/roles/shutdown/tasks/main.yml new file mode 100644 index 0000000..39cdda5 --- /dev/null +++ b/roles/shutdown/tasks/main.yml @@ -0,0 +1,2 @@ +- name: Shutdown host + community.general.shutdown: diff --git a/roles/snapshot/tasks/main.yml b/roles/snapshot/tasks/main.yml new file mode 100644 index 0000000..a46e9d6 --- /dev/null +++ b/roles/snapshot/tasks/main.yml @@ -0,0 +1,31 @@ +- name: Make droplet snapshot + local_action: + module: ansible.builtin.uri + url: "{{ digitalocean_api_url }}/droplets/{{ droplet_id }}/actions" + method: POST + headers: + Content-Type: application/json + Authorization: Bearer {{ digitalocean_api_token }} + body_format: json + status_code: 201 + body: + type: snapshot + name: "{{ inventory_hostname_short }}-\ + {{ (now(utc=true).timestamp() * 1000) | int }}" + register: snapshot + +- name: Wait for droplet snapshot to finish + local_action: + module: ansible.builtin.uri + url: "{{ digitalocean_api_url }}/droplets/{{ droplet_id }}\ + /actions/{{ snapshot.json.action.id }}" + method: GET + headers: + Content-Type: application/json + Authorization: Bearer {{ digitalocean_api_token }} + body_format: json + status_code: 200 + register: snapshot_info + until: snapshot_info.json.action.completed_at != None + retries: 16 + delay: 60 diff --git a/roles/sysupgrade/tasks/main.yml b/roles/sysupgrade/tasks/main.yml new file mode 100644 index 0000000..77f2b1c --- /dev/null +++ b/roles/sysupgrade/tasks/main.yml @@ -0,0 +1,9 @@ +- name: Update archlinux-keyring + ansible.builtin.package: + name: archlinux-keyring + state: latest + +- name: Upgrade all packages in the system + community.general.pacman: + update_cache: yes + upgrade: yes |