1
- # Downloading dependencies
2
- - name : wal-g dependencies
3
- become : yes
4
- apt :
5
- pkg :
6
- - libbrotli-dev
7
- - liblzo2-dev
8
- - libsodium-dev
9
- - cmake
10
-
11
- # install go dependency for WAL-G
12
- - name : wal-g go dependency
13
- get_url :
14
- url : " https://golang.org/dl/go{{ golang_version }}.linux-{{ platform }}.tar.gz"
15
- dest : /tmp
16
- checksum : " {{ golang_version_checksum[platform] }}"
17
- timeout : 60
18
-
19
- - name : unpack go archive
20
- unarchive :
21
- remote_src : yes
22
- src : " /tmp/go{{ golang_version }}.linux-{{ platform }}.tar.gz"
23
- dest : /usr/local
24
-
25
- # Download WAL-G
26
- - name : wal-g - download latest version
27
- git :
28
- repo : https://github.com/wal-g/wal-g.git
29
- dest : /tmp/wal-g
30
- version : " v{{ wal_g_release }}"
31
- become : yes
32
-
33
- - name : wal-g - pg_clean
34
- make :
35
- chdir : /tmp/wal-g
36
- target : pg_clean
37
- params :
38
- GOBIN : " /usr/local/bin"
39
- PATH : " {{ ansible_env.PATH }}:/usr/local/go/bin"
40
- USE_LIBSODIUM : true
41
- become : yes
42
- ignore_errors : yes
43
-
44
- - name : wal-g - deps
45
- make :
46
- chdir : /tmp/wal-g
47
- target : deps
48
- params :
49
- GOBIN : " /usr/local/bin"
50
- PATH : " {{ ansible_env.PATH }}:/usr/local/go/bin"
51
- USE_LIBSODIUM : true
52
- become : yes
53
- ignore_errors : yes
54
-
55
- - name : wal-g - build and install
56
- community.general.make :
57
- chdir : /tmp/wal-g
58
- target : pg_install
59
- jobs : " {{ parallel_jobs | default(omit) }}"
60
- params :
61
- GOBIN : " /usr/local/bin"
62
- PATH : " {{ ansible_env.PATH }}:/usr/local/go/bin"
63
- USE_LIBSODIUM : true
1
+ - name : Install WAL-G with nix profile
2
+ shell : |
3
+ sudo -u ubuntu bash -c ". /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh && nix profile install github:supabase/postgres/{{ git_commit_sha }}#wal-g"
64
4
become : yes
5
+ when : stage2_nix
65
6
7
+ # Create required groups and users
66
8
- name : Create wal-g group
67
9
group :
68
10
name : wal-g
69
11
state : present
12
+ when : stage2_nix
70
13
71
14
- name : Create wal-g user
72
15
user :
75
18
comment : WAL-G user
76
19
group : wal-g
77
20
groups : wal-g, postgres
21
+ when : stage2_nix
78
22
79
23
- name : Create a config directory owned by wal-g
80
24
file :
83
27
owner : wal-g
84
28
group : wal-g
85
29
mode : ' 0770'
30
+ when : stage2_nix
86
31
87
32
- name : Create /etc/wal-g/config.json
88
33
file :
91
36
owner : wal-g
92
37
group : wal-g
93
38
mode : ' 0664'
39
+ when : stage2_nix
94
40
95
41
- name : Move custom wal-g.conf file to /etc/postgresql-custom/wal-g.conf
96
42
template :
99
45
mode : 0664
100
46
owner : postgres
101
47
group : postgres
48
+ when : stage2_nix
102
49
103
50
- name : Add script to be run for restore_command
104
51
template :
107
54
mode : 0500
108
55
owner : postgres
109
56
group : postgres
57
+ when : stage2_nix
110
58
111
59
- name : Add helper script for wal_fetch.sh
112
60
template :
113
61
src : " files/walg_helper_scripts/wal_change_ownership.sh"
114
62
dest : /root/wal_change_ownership.sh
115
63
mode : 0700
116
64
owner : root
65
+ when : stage2_nix
117
66
118
67
- name : Include /etc/postgresql-custom/wal-g.conf in postgresql.conf
119
68
become : yes
120
69
replace :
121
70
path : /etc/postgresql/postgresql.conf
122
71
regexp : " #include = '/etc/postgresql-custom/wal-g.conf'"
123
72
replace : " include = '/etc/postgresql-custom/wal-g.conf'"
124
-
125
- # Clean up Go
126
- - name : Uninstall Go
127
- become : yes
128
- file :
129
- path : /usr/local/go
130
- state : absent
73
+ when : stage2_nix
0 commit comments