11# PgBouncer
2- - name : PgBouncer - download & install dependencies
3- apt :
4- pkg :
5- - build-essential
6- - libssl-dev
7- - pkg-config
8- - libevent-dev
9- - libsystemd-dev
10- update_cache : yes
11- cache_valid_time : 3600
12-
13- - name : PgBouncer - download latest release
14- get_url :
15- url : " https://www.pgbouncer.org/downloads/files/{{ pgbouncer_release }}/pgbouncer-{{ pgbouncer_release }}.tar.gz"
16- dest : /tmp/pgbouncer-{{ pgbouncer_release }}.tar.gz
17- checksum : " {{ pgbouncer_release_checksum }}"
18- timeout : 60
19-
20- - name : PgBouncer - unpack archive
21- unarchive :
22- remote_src : yes
23- src : /tmp/pgbouncer-{{ pgbouncer_release }}.tar.gz
24- dest : /tmp
25- become : yes
26-
27- - name : PgBouncer - configure
28- shell :
29- cmd : " ./configure --prefix=/usr/local --with-systemd"
30- chdir : /tmp/pgbouncer-{{ pgbouncer_release }}
31- become : yes
32-
33- - name : PgBouncer - build
34- make :
35- chdir : /tmp/pgbouncer-{{ pgbouncer_release }}
36- become : yes
37-
38- - name : PgBouncer - install
39- make :
40- chdir : /tmp/pgbouncer-{{ pgbouncer_release }}
41- target : install
42- become : yes
2+ # - name: PgBouncer - download & install dependencies
3+ # apt:
4+ # pkg:
5+ # - build-essential
6+ # - libssl-dev
7+ # - pkg-config
8+ # - libevent-dev
9+ # - libsystemd-dev
10+ # update_cache: yes
11+ # cache_valid_time: 3600
12+
13+ # - name: PgBouncer - download latest release
14+ # get_url:
15+ # url: "https://www.pgbouncer.org/downloads/files/{{ pgbouncer_release }}/pgbouncer-{{ pgbouncer_release }}.tar.gz"
16+ # dest: /tmp/pgbouncer-{{ pgbouncer_release }}.tar.gz
17+ # checksum: "{{ pgbouncer_release_checksum }}"
18+ # timeout: 60
19+
20+ # - name: PgBouncer - unpack archive
21+ # unarchive:
22+ # remote_src: yes
23+ # src: /tmp/pgbouncer-{{ pgbouncer_release }}.tar.gz
24+ # dest: /tmp
25+ # become: yes
26+
27+ # - name: PgBouncer - configure
28+ # shell:
29+ # cmd: "./configure --prefix=/usr/local --with-systemd"
30+ # chdir: /tmp/pgbouncer-{{ pgbouncer_release }}
31+ # become: yes
32+
33+ # - name: PgBouncer - build
34+ # make:
35+ # chdir: /tmp/pgbouncer-{{ pgbouncer_release }}
36+ # become: yes
37+
38+ # - name: PgBouncer - install
39+ # make:
40+ # chdir: /tmp/pgbouncer-{{ pgbouncer_release }}
41+ # target: install
42+ # become: yes
4343
4444- name : Create pgbouncer user
4545 user :
4646 name : pgbouncer
4747 shell : /bin/false
4848 comment : PgBouncer user
4949 groups : postgres,ssl-cert
50+ when : nixpkg_mode
5051
5152- name : PgBouncer - create a directory if it does not exist
5253 file :
5556 owner : pgbouncer
5657 group : pgbouncer
5758 mode : ' 0700'
59+ when : nixpkg_mode
5860
5961- name : PgBouncer - create a directory if it does not exist
6062 file :
6567 mode : ' 0775'
6668 with_items :
6769 - ' /etc/pgbouncer-custom'
70+ when : nixpkg_mode
6871
6972- name : create placeholder config files
7073 file :
7780 - ' generated-optimizations.ini'
7881 - ' custom-overrides.ini'
7982 - ' ssl-config.ini'
83+ when : nixpkg_mode
8084
8185- name : PgBouncer - adjust pgbouncer.ini
8286 copy :
8387 src : files/pgbouncer_config/pgbouncer.ini.j2
8488 dest : /etc/pgbouncer/pgbouncer.ini
8589 owner : pgbouncer
8690 mode : ' 0700'
91+ when : nixpkg_mode
8792
8893- name : PgBouncer - create a directory if it does not exist
8994 file :
9095 path : /etc/pgbouncer/userlist.txt
9196 state : touch
9297 owner : pgbouncer
9398 mode : ' 0700'
94-
99+ when : nixpkg_mode
100+
95101- name : import /etc/tmpfiles.d/pgbouncer.conf
96102 template :
97103 src : files/pgbouncer_config/tmpfiles.d-pgbouncer.conf.j2
98104 dest : /etc/tmpfiles.d/pgbouncer.conf
99105 become : yes
106+ when : nixpkg_mode
100107
101108- name : PgBouncer - By default allow ssl connections.
102109 become : yes
103110 copy :
104111 dest : /etc/pgbouncer-custom/ssl-config.ini
105112 content : |
106113 client_tls_sslmode = allow
114+ when : nixpkg_mode
107115
108116- name : Grant pg_hba and pgbouncer grp perm for adminapi updates
109117 shell : |
110118 chmod g+w /etc/postgresql/pg_hba.conf
111119 chmod g+w /etc/pgbouncer-custom/ssl-config.ini
120+ when : nixpkg_mode
112121
113122# Add fail2ban filter
114123- name : import jail.d/pgbouncer.conf
115124 template :
116125 src : files/fail2ban_config/jail-pgbouncer.conf.j2
117126 dest : /etc/fail2ban/jail.d/pgbouncer.conf
118127 become : yes
128+ when : nixpkg_mode
119129
120130- name : import filter.d/pgbouncer.conf
121131 template :
122132 src : files/fail2ban_config/filter-pgbouncer.conf.j2
123133 dest : /etc/fail2ban/filter.d/pgbouncer.conf
124134 become : yes
135+ when : nixpkg_mode
125136
126137# Add systemd file for PgBouncer
127138- name : PgBouncer - import postgresql.service
128139 template :
129140 src : files/pgbouncer_config/pgbouncer.service.j2
130141 dest : /etc/systemd/system/pgbouncer.service
131142 become : yes
143+ when : nixpkg_mode
144+
145+ - name : install pgbouncer from supabase nix binary cache
146+ become : yes
147+ shell : |
148+ 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"
149+ when : stage2_nix
132150
133151- name : PgBouncer - reload systemd
134152 systemd :
135153 daemon_reload : yes
154+ when : stage2_nix
0 commit comments