Ansible: установка и запуск pgbouncer
Чтобы установить и запустить PgBouncer с помощью Ansible, необходимо создать плейбук, который выполнит следующие задачи:
- Установка необходимых пакетов.
- Настройка конфигурационного файла для PgBouncer.
- Запуск и включение службы PgBouncer через systemd.
Пример плейбука для установки и запуска PgBouncer:
Шаг 1: Плейбук для установки и запуска PgBouncer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
--- - name: Install and configure PgBouncer hosts: all become: true tasks: - name: Install PgBouncer apt: name: pgbouncer state: present update_cache: yes - name: Create PgBouncer config directory file: path: /etc/pgbouncer state: directory owner: pgbouncer group: pgbouncer mode: '0755' - name: Configure PgBouncer template: src: pgbouncer.ini.j2 dest: /etc/pgbouncer/pgbouncer.ini owner: pgbouncer group: pgbouncer mode: '0644' - name: Create userlist.txt for authentication copy: content: | "postgres" "md5<your_md5_hashed_password>" dest: /etc/pgbouncer/userlist.txt owner: pgbouncer group: pgbouncer mode: '0600' - name: Configure systemd service for PgBouncer copy: content: | [Unit] Description=PgBouncer After=network.target [Service] Type=simple ExecStart=/usr/sbin/pgbouncer /etc/pgbouncer/pgbouncer.ini User=pgbouncer Group=pgbouncer Restart=always [Install] WantedBy=multi-user.target dest: /etc/systemd/system/pgbouncer.service owner: root group: root mode: '0644' - name: Reload systemd daemon systemd: daemon_reload: yes - name: Enable and start PgBouncer systemd: name: pgbouncer enabled: yes state: started |
Шаг 2: Шаблон конфигурационного файла PgBouncer
Создайте файл pgbouncer.ini.j2
для шаблонизации конфигурационного файла PgBouncer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[databases] {{ db_name }} = host={{ db_host }} port={{ db_port }} dbname={{ db_name }} [pgbouncer] listen_addr = 0.0.0.0 listen_port = 6432 auth_type = md5 auth_file = /etc/pgbouncer/userlist.txt pool_mode = session max_client_conn = 100 default_pool_size = 20 logfile = /var/log/pgbouncer/pgbouncer.log pidfile = /var/run/pgbouncer/pgbouncer.pid |
Шаг 3: Переменные Ansible
Вы можете задать переменные в вашем плейбуке или в отдельном файле с переменными для настройки базы данных:
1 2 3 4 |
db_name: mydb db_host: 127.0.0.1 db_port: 5432 |
Шаг 4: Применение плейбука
Чтобы применить плейбук, выполните команду:
1 2 |
ansible-playbook -i inventory_file pgbouncer.yml |
Заключение:
Этот плейбук устанавливает PgBouncer, настраивает его через шаблон, создает файл пользователей для аутентификации, настраивает и запускает службу через systemd.
Recommended Posts
Плейбук Ansible по развертыванию haproxy
15.02.2024