|
1 | 1 | # PgBouncer |
2 | | -- name: PgBouncer - download & install dependencies |
3 | | - ansible.builtin.apt: |
4 | | - pkg: |
5 | | - - build-essential |
6 | | - - libevent-dev |
7 | | - - libssl-dev |
8 | | - - libsystemd-dev |
9 | | - - pkg-config |
10 | | - - pandoc |
11 | | - - python3 |
12 | | - update_cache: true |
13 | | - |
14 | | -- name: PgBouncer - download latest release |
15 | | - ansible.builtin.get_url: |
16 | | - url: "{{ pgbouncer_artifacts['url'] }}" |
17 | | - checksum: "{{ pgbouncer_artifacts['checksum'] }}" |
18 | | - dest: "/tmp/pgbouncer-{{ pgbouncer_release }}.tar.gz" |
19 | | - timeout: 60 |
20 | | - register: download_result |
21 | | - until: download_result is succeeded |
22 | | - retries: 3 |
23 | | - delay: 2 |
24 | | - |
25 | | -- name: PgBouncer - unpack archive |
26 | | - ansible.builtin.unarchive: |
27 | | - dest: '/tmp' |
28 | | - remote_src: true |
29 | | - src: "/tmp/pgbouncer-{{ pgbouncer_release }}.tar.gz" |
30 | | - become: true |
31 | | - |
32 | | -- name: PgBouncer - configure |
33 | | - ansible.builtin.command: |
34 | | - cmd: './configure --prefix=/usr/local --with-systemd' |
35 | | - args: |
36 | | - chdir: "/tmp/pgbouncer-{{ pgbouncer_release }}" |
37 | | - become: true |
38 | | - |
39 | | -- name: PgBouncer - build and install |
40 | | - community.general.make: |
41 | | - chdir: "/tmp/pgbouncer-{{ pgbouncer_release }}" |
42 | | - target: "{{ pgbouncer_make_item }}" |
43 | | - become: true |
44 | | - loop: |
45 | | - - 'all' |
46 | | - - 'install' |
47 | | - loop_control: |
48 | | - loop_var: 'pgbouncer_make_item' |
49 | | - |
50 | 2 | - name: Create pgbouncer user |
51 | 3 | ansible.builtin.user: |
52 | 4 | comment: 'PgBouncer user' |
|
55 | 7 | shell: '/usr/sbin/nolign' |
56 | 8 | state: 'present' |
57 | 9 |
|
| 10 | +- name: Install PgBouncer from nix binary cache |
| 11 | + when: stage2 |
| 12 | + ansible.builtin.shell: |
| 13 | + cmd: sudo -u pgbouncer bash -c ". /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh && nix profile install github:supabase/postgres/{{ git_commit_sha }}#pgbouncer" |
| 14 | + become: true |
| 15 | + |
| 16 | +- name: Link PgBouncer into /usr/local/bin |
| 17 | + when: stage2 |
| 18 | + ansible.builtin.file: |
| 19 | + dest: '/usr/local/bin/pgbouncer' |
| 20 | + force: true |
| 21 | + src: '/home/pgbouncer/.nix-profile/bin/pgbouncer' |
| 22 | + state: 'link' |
| 23 | + become: true |
| 24 | + |
58 | 25 | - name: Create PgBouncer directories if they do not exist |
59 | 26 | ansible.builtin.file: |
60 | 27 | group: 'pgbouncer' |
|
0 commit comments