Skip to content

Commit e73d723

Browse files
committed
Fallback to AWS CLI v2 for S3 backups
1 parent 4e47156 commit e73d723

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

ansible/roles/backups/tasks/main.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,67 @@
1111
name:
1212
- awscli
1313
state: present
14+
register: terrarium_awscli_apt_install
15+
ignore_errors: true
1416
when: terrarium_enable_s3
1517

18+
- name: Map AWS CLI fallback architecture
19+
ansible.builtin.set_fact:
20+
terrarium_awscli_arch: >-
21+
{{
22+
{
23+
'x86_64': 'x86_64',
24+
'amd64': 'x86_64',
25+
'aarch64': 'aarch64',
26+
'arm64': 'aarch64'
27+
}[ansible_architecture] | default(ansible_architecture)
28+
}}
29+
when:
30+
- terrarium_enable_s3
31+
- terrarium_awscli_apt_install is failed
32+
33+
- name: Install AWS CLI fallback prerequisites
34+
ansible.builtin.apt:
35+
name:
36+
- unzip
37+
state: present
38+
when:
39+
- terrarium_enable_s3
40+
- terrarium_awscli_apt_install is failed
41+
42+
- name: Download AWS CLI v2 fallback archive
43+
ansible.builtin.get_url:
44+
url: "https://awscli.amazonaws.com/awscli-exe-linux-{{ terrarium_awscli_arch }}.zip"
45+
dest: "/tmp/awscliv2-{{ terrarium_awscli_arch }}.zip"
46+
mode: "0644"
47+
when:
48+
- terrarium_enable_s3
49+
- terrarium_awscli_apt_install is failed
50+
51+
- name: Remove extracted AWS CLI fallback directory
52+
ansible.builtin.file:
53+
path: /tmp/awscliv2
54+
state: absent
55+
when:
56+
- terrarium_enable_s3
57+
- terrarium_awscli_apt_install is failed
58+
59+
- name: Extract AWS CLI v2 fallback archive
60+
ansible.builtin.unarchive:
61+
src: "/tmp/awscliv2-{{ terrarium_awscli_arch }}.zip"
62+
dest: /tmp
63+
remote_src: true
64+
when:
65+
- terrarium_enable_s3
66+
- terrarium_awscli_apt_install is failed
67+
68+
- name: Install AWS CLI v2 fallback
69+
ansible.builtin.command:
70+
cmd: /tmp/aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
71+
when:
72+
- terrarium_enable_s3
73+
- terrarium_awscli_apt_install is failed
74+
1675
- name: Ensure backup directories exist
1776
ansible.builtin.file:
1877
path: "{{ item }}"

0 commit comments

Comments
 (0)