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"
644 become : yes
5+ when : stage2_nix
656
7+ # Create required groups and users
668- name : Create wal-g group
679 group :
6810 name : wal-g
6911 state : present
12+ when : stage2_nix
7013
7114- name : Create wal-g user
7215 user :
7518 comment : WAL-G user
7619 group : wal-g
7720 groups : wal-g, postgres
21+ when : stage2_nix
7822
7923- name : Create a config directory owned by wal-g
8024 file :
8327 owner : wal-g
8428 group : wal-g
8529 mode : ' 0770'
30+ when : stage2_nix
8631
8732- name : Create /etc/wal-g/config.json
8833 file :
9136 owner : wal-g
9237 group : wal-g
9338 mode : ' 0664'
39+ when : stage2_nix
9440
9541- name : Move custom wal-g.conf file to /etc/postgresql-custom/wal-g.conf
9642 template :
9945 mode : 0664
10046 owner : postgres
10147 group : postgres
48+ when : stage2_nix
10249
10350- name : Add script to be run for restore_command
10451 template :
10754 mode : 0500
10855 owner : postgres
10956 group : postgres
57+ when : stage2_nix
11058
11159- name : Add helper script for wal_fetch.sh
11260 template :
11361 src : " files/walg_helper_scripts/wal_change_ownership.sh"
11462 dest : /root/wal_change_ownership.sh
11563 mode : 0700
11664 owner : root
65+ when : stage2_nix
11766
11867- name : Include /etc/postgresql-custom/wal-g.conf in postgresql.conf
11968 become : yes
12069 replace :
12170 path : /etc/postgresql/postgresql.conf
12271 regexp : " #include = '/etc/postgresql-custom/wal-g.conf'"
12372 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