Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

добавить поддержку pg_ident.conf #55

Closed
sgrinko opened this issue Aug 18, 2020 · 5 comments
Closed

добавить поддержку pg_ident.conf #55

sgrinko opened this issue Aug 18, 2020 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@sgrinko
Copy link

sgrinko commented Aug 18, 2020

В моих серверах используется настроечный файл pg_ident.conf
Однако в вашей редакции этот файл обойдён вниманием :)
Предлагаю добавить его поддержку при настройке кластера, так как это один из важных файлов с настройками.
Я добавил такую поддержку по аналогии с файлом pg_hba.conf
добавил в файл vars/main.yml

# specify additional hosts that will be added to the pg_ident.conf
postgresql_pg_ident:
  - {mapname: "main", system_username: "postgres", pg_username: "backup"} # default values is set for pg_probackup utility

в каталог roles/patroni/templates добавил новый шаблон pg_ident.conf.j2 внутри которого вот такой текст:

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
{% for client in postgresql_pg_ident %}
  {{ client.mapname.ljust(25) |default('main') }}{{ client.system_username.ljust(25) |default('postgres') }}{{ client.pg_username.ljust(25) |default('backup') }}
{% endfor %}

в roles/patroni/tasks/main.yml добавил следующие блоки:

- block:  # when postgresql exists (master)
...
    - name: Prepare PostgreSQL | generate pg_ident.conf on Master
      template:
        src: templates/pg_ident.conf.j2
        dest: "{{ postgresql_conf_dir }}/pg_ident.conf"
        owner: postgres
        group: postgres
        mode: 0640
...
- block:  # pg_hba (using a templates/pg_hba.conf.j2)
...
    - name: Prepare PostgreSQL | generate pg_ident.conf
      template:
        src: templates/pg_ident.conf.j2
        dest: "{{ postgresql_conf_dir }}/pg_ident.conf"
        owner: postgres
        group: postgres
        mode: 0640
...
- block:  # for add_pgnode.yml
...
    - name: Prepare PostgreSQL | fetch pg_ident.conf file from master
      run_once: true
      fetch:
        src: "{{ postgresql_conf_dir }}/pg_ident.conf"
        dest: files/pg_ident.conf
        validate_checksum: true
        flat: true
      delegate_to: "{{ groups.master[0] }}"

    - name: Prepare PostgreSQL | copy pg_ident.conf file to replica
      copy:
        src: files/pg_ident.conf
        dest: "{{ postgresql_conf_dir }}/pg_ident.conf"
        owner: postgres
        group: postgres
        mode: 0640
...

Благодарю вас за вашу работу!

@vitabaks vitabaks self-assigned this Aug 19, 2020
@vitabaks vitabaks added the enhancement New feature or request label Aug 19, 2020
@vitabaks
Copy link
Owner

Можно сделать немного проще, и передать управление pg_ident на Patroni
https://patroni.readthedocs.io/en/latest/SETTINGS.html?highlight=pg_ident#postgresql
(см. описание блока pg_ident)

@sgrinko
Copy link
Author

sgrinko commented Aug 24, 2020

В моей практике правда я еще никогда с нуля кластер не инициализировал через патрони. Т.е. у меня всегда уже есть настроенный мастер перед тем, как я включаю патрони.
Я не против, давайте сделаем через патрони управление файлом pg_ident.conf

@vitabaks
Copy link
Owner

В случае с postgresql_exists='true' также будет работать. При старте сервиса Patroni, пропишет pg_ident.

Раз уж такой функционал имеется, значит нам нужно меньше кода, шаблонов и т.п.
Лишь генерация строки в файле конфигурации.

Чуть позже сделаю.

vitabaks added a commit that referenced this issue Sep 3, 2020
New variable "postgresql_pg_ident";
Added support for map options in the postgresql_pg_hba variable.

#55
@vitabaks
Copy link
Owner

vitabaks commented Sep 3, 2020

@sgrinko
Готово (d7f3536).
Переменная postgresql_pg_ident

Проверьте.
Довольны ли Вы функционалом? :)

@sgrinko
Copy link
Author

sgrinko commented Sep 4, 2020

Спасибо, работает

@vitabaks vitabaks closed this as completed Sep 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants