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"
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
4
64
become : yes
5
- when : stage2_nix
6
65
7
- # Create required groups and users
8
66
- name : Create wal-g group
9
67
group :
10
68
name : wal-g
11
69
state : present
12
- when : stage2_nix
13
70
14
71
- name : Create wal-g user
15
72
user :
18
75
comment : WAL-G user
19
76
group : wal-g
20
77
groups : wal-g, postgres
21
- when : stage2_nix
22
78
23
79
- name : Create a config directory owned by wal-g
24
80
file :
27
83
owner : wal-g
28
84
group : wal-g
29
85
mode : ' 0770'
30
- when : stage2_nix
31
86
32
87
- name : Create /etc/wal-g/config.json
33
88
file :
36
91
owner : wal-g
37
92
group : wal-g
38
93
mode : ' 0664'
39
- when : stage2_nix
40
94
41
95
- name : Move custom wal-g.conf file to /etc/postgresql-custom/wal-g.conf
42
96
template :
45
99
mode : 0664
46
100
owner : postgres
47
101
group : postgres
48
- when : stage2_nix
49
102
50
103
- name : Add script to be run for restore_command
51
104
template :
54
107
mode : 0500
55
108
owner : postgres
56
109
group : postgres
57
- when : stage2_nix
58
110
59
111
- name : Add helper script for wal_fetch.sh
60
112
template :
61
113
src : " files/walg_helper_scripts/wal_change_ownership.sh"
62
114
dest : /root/wal_change_ownership.sh
63
115
mode : 0700
64
116
owner : root
65
- when : stage2_nix
66
117
67
118
- name : Include /etc/postgresql-custom/wal-g.conf in postgresql.conf
68
119
become : yes
69
120
replace :
70
121
path : /etc/postgresql/postgresql.conf
71
122
regexp : " #include = '/etc/postgresql-custom/wal-g.conf'"
72
123
replace : " include = '/etc/postgresql-custom/wal-g.conf'"
73
- when : stage2_nix
124
+
125
+ # Clean up Go
126
+ - name : Uninstall Go
127
+ become : yes
128
+ file :
129
+ path : /usr/local/go
130
+ state : absent
0 commit comments