postgresql_info – Сбор информации о серверах PostgreSQL
Новое в версии 2.8.
Описание
- Сбор информации о серверах PostgreSQL.
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты центра сертификации (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. псевдонимы: ssl_rootcert | |
| db строка | Имя базы данных для подключения. псевдонимы: login_db | |
| filter список / элементы=строка | Ограничение собираемой информации с помощью перечисления строк через запятую или списка YAML. Допустимые значения version, databases, settings, tablespaces, roles, replications, repl_slots. По умолчанию собираются все подмножества. Можно использовать шаблоны поиска (fnmatch) с подстановкой, чтобы передавать группы значений (см. примеры). Можно использовать «! » перед значением (например, !settings) для исключения из информации.Если передавать значения включения и исключения в фильтр, например, filter=!settings,ver, значения исключения будут проигнорированы. | |
| login_host строка | Хост, на котором выполняется база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix-домен для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя для аутентификации. |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. псевдонимы: login_port |
| session_role строка | Переключение на роль session_role после подключения. Указанная роль session_role должна быть ролью, членом которой является текущий login_user. Проверка прав на SQL-команды выполняется так, как будто роль session_role была той, которая первоначально вошла в систему. | |
| ssl_mode строка |
| Определяет, будет ли и с какой приоритетностью устанавливаться защищённое SSL TCP/IP соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
Примечания
Примечание
- По умолчанию предполагается, что вы входите в систему как или с правами пользователя
postgresна хосте. - Чтобы избежать ошибки «Ошибка аутентификации клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер Python для PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удалённый хост — это сервер PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удалённом хосте.
- Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
- Параметр ca_cert требует не менее версии Postgres 8.4 и версии psycopg2 2.4.3.
См. также
См. также
- postgresql_ping – Проверка доступности удалённого сервера PostgreSQL
- Официальная документация по модулю postgresql_ping.
Примеры
# Display info from postgres hosts.
# ansible postgres -m postgresql_info
# Display only databases and roles info from all hosts using shell-style wildcards:
# ansible all -m postgresql_info -a 'filter=dat*,rol*'
# Display only replications and repl_slots info from standby hosts using shell-style wildcards:
# ansible standby -m postgresql_info -a 'filter=repl*'
# Display all info from databases hosts except settings:
# ansible databases -m postgresql_info -a 'filter=!settings'
- name: Collect PostgreSQL version and extensions
become: yes
become_user: postgres
postgresql_info:
filter: ver*,ext*
- name: Collect all info except settings and roles
become: yes
become_user: postgres
postgresql_info:
filter: "!settings,!roles"
# On FreeBSD with PostgreSQL 9.5 version and lower use pgsql user to become
# and pass "postgres" as a database to connect to
- name: Collect tablespaces and repl_slots info
become: yes
become_user: pgsql
postgresql_info:
db: postgres
filter:
- tablesp*
- repl_sl*
- name: Collect all info except databases
become: yes
become_user: postgres
postgresql_info:
filter:
- "!databases"
Значения возврата
Общие значения возврата описаны в здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||||
|---|---|---|---|---|---|---|
| databases словарь | всегда | Информация о базах данных. Пример: [{'postgres': {'access_priv': '', 'collate': 'en_US.UTF-8', 'ctype': 'en_US.UTF-8', 'encoding': 'UTF8', 'owner': 'postgres', 'size': '7997 kB'}}] | ||||
| database_name словарь | всегда | Имя базы данных. Пример: template1 | ||||
| access_priv строка | всегда | Права доступа к базе данных. Пример: =c/postgres_npostgres=CTc/postgres | ||||
| collate строка | всегда | Сортировка базы данных https://www.postgresql.org/docs/current/collation.html. Пример: en_US.UTF-8 | ||||
| ctype строка | всегда | LC_CTYPE базы данных https://www.postgresql.org/docs/current/multibyte.html. Пример: en_US.UTF-8 | ||||
| encoding строка | всегда | Кодировка базы данных https://www.postgresql.org/docs/current/multibyte.html. Пример: UTF8 | ||||
| extensions словарь | всегда | Пример: [{'plpgsql': {'description': 'Процедурный язык PL/pgSQL', 'extversion': {'major': 1, 'minor': 0}}}] | ||||
| extdescription строка | если существует | Описание расширения. Пример: Процедурный язык PL/pgSQL | ||||
| extversion словарь | всегда | Описание расширения. | ||||
| major целое число | всегда | Основная версия расширения. Пример: 1 | ||||
| minor целое число | всегда | Дополнительная версия расширения. | ||||
| nspname строка | всегда | Пространство имен, где находится расширение. Пример: pg_catalog | ||||
| languages словарь | всегда | Процедурные языки https://www.postgresql.org/docs/current/xplang.html. Пример: {'sql': {'lanacl': '', 'lanowner': 'postgres'}} | ||||
| lanacl строка | всегда | Права доступа к языку https://www.postgresql.org/docs/current/catalog-pg-language.html. Пример: {postgres=UC/postgres,=U/postgres} | ||||
| lanowner строка | всегда | Владелец языка https://www.postgresql.org/docs/current/catalog-pg-language.html. Пример: postgres | ||||
| namespaces словарь | всегда | Пространства имен (схемы) https://www.postgresql.org/docs/current/sql-createschema.html. Пример: {'pg_catalog': {'nspacl': '{postgres=UC/postgres,=U/postgres}', 'nspowner': 'postgres'}} | ||||
| nspacl строка | всегда | Пример: {postgres=UC/postgres,=U/postgres} | ||||
| nspowner строка | всегда | Пример: postgres | ||||
| owner строка | всегда | Владелец базы данных https://www.postgresql.org/docs/current/sql-createdatabase.html. Пример: postgres | ||||
| size строка | всегда | Размер базы данных в байтах. Пример: 8189415 | ||||
| pending_restart_settings список | всегда | Список настроек, которые ожидают перезагрузки. Пример: ['shared_buffers'] | ||||
| repl_slots словарь | если существует | Слоты репликации (доступны начиная с версии 9.4) https://www.postgresql.org/docs/current/view-pg-replication-slots.html. Пример: {'slot0': {'active': False, 'database': None, 'plugin': None, 'slot_type': 'physical'}} | ||||
| активный boolean | всегда | Истинное значение указывает, что получатель подключен и в настоящее время резервирует архивы. Пример: True | ||||
| база_данных строка | всегда | Имя базы данных, к которой относится данный слот, или null. Пример: acme | ||||
| плагин строка | всегда | Основное имя разделяемой библиотеки, содержащей выходной плагин, который использует этот логический слот, или null для физических слотов. Пример: pgoutput | ||||
| тип_слота строка | всегда | Тип слота — физический или логический. Пример: логический | ||||
| репликации словарь | если существует представление pg_stat_replication | Информация о текущих репликах по идентификаторам процессов (PID) https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE. Пример: [{76580: {'app_name': 'standby1', 'backend_start': '2019-02-03 00:14:33.908593+03', 'client_addr': '10.10.10.2', 'client_hostname': '', 'state': 'streaming', 'usename': 'postgres'}}] | ||||
| имя_приложения строка | если существует | Имя приложения, которое подключено к этому отправителю WAL. Пример: acme_srv | ||||
| начало_процесса строка | всегда | Время запуска этого процесса, т.е. время подключения клиента к этому отправителю WAL. Пример: 2019-02-03 00:14:33.908593+03 | ||||
| адрес_клиента строка | всегда | IP-адрес подключенного клиента к этому отправителю WAL. Если это поле равно null, это указывает, что клиент подключен через сокет Unix на серверной машине. Пример: 10.0.0.101 | ||||
| имя_хоста_клиента строка | всегда | Имя хоста подключенного клиента, полученное из обратного DNS-поиска client_addr. Это поле будет не равным null только для подключений по IP и только при включенном log_hostname. Пример: dbsrv1 | ||||
| состояние строка | всегда | Текущее состояние отправителя WAL. Пример: streaming | ||||
| имя_пользователя строка | всегда | Имя пользователя, вошедшего в этот процесс отправителя WAL ('usename' - имя столбца в представлении pg_stat_replication). Пример: replication_user | ||||
| роли словарь | всегда | Информация о ролях https://www.postgresql.org/docs/current/user-manag.html. Пример: [{'test_role': {'canlogin': True, 'member_of': ['user_ro'], 'superuser': False, 'valid_until': '9999-12-31T23:59:59.999999+00:00'}}] | ||||
| разрешение_на_вход boolean | всегда | Привилегия входа https://www.postgresql.org/docs/current/role-attributes.html. Пример: True | ||||
| член_группы список | всегда | Принадлежность к роли https://www.postgresql.org/docs/current/role-membership.html. Пример: ['read_only_users'] | ||||
| суперпользователь boolean | всегда | Пользователь является суперпользователем или нет. | ||||
| действителен_до строка | всегда | Дата истечения срока действия пароля https://www.postgresql.org/docs/current/sql-alterrole.html. Пример: 9999-12-31T23:59:59.999999+00:00 | ||||
| настройки словарь | всегда | Информация о параметрах работы сервера https://www.postgresql.org/docs/current/view-pg-settings.html. Пример: [{'work_mem': {'boot_val': '4096', 'context': 'user', 'max_val': '2147483647', 'min_val': '64', 'setting': '8192', 'sourcefile': '/var/lib/pgsql/10/data/postgresql.auto.conf', 'unit': 'kB', 'vartype': 'integer', 'val_in_bytes': 4194304}}] | ||||
| значение_при_запуске строка | всегда | Значение параметра, принятое при запуске сервера, если параметр не задан иначе. Пример: 4096 | ||||
| контекст строка | всегда | Контекст, необходимый для установки значения параметра. Для получения дополнительной информации см. https://www.postgresql.org/docs/current/view-pg-settings.html. Пример: user | ||||
| макс_значение строка | всегда | Максимально допустимое значение параметра (null для значений, не являющихся числовыми). Пример: 2147483647 | ||||
| мин_значение строка | всегда | Минимально допустимое значение параметра (null для значений, не являющихся числовыми). Пример: 64 | ||||
| ожидающая_перезагрузка boolean | всегда | Истина, если значение было изменено в конфигурационном файле, но требуется перезагрузка; в противном случае — ложь. Возвращается только если settings передано. | ||||
| красивое_значение строка | всегда | Значение, представленное в красивой форме. Пример: 2МБ | ||||
| значение строка | всегда | Текущее значение параметра. Пример: 49152 | ||||
| sourcefile string | always | Файл конфигурации, в котором было установлено текущее значение. Null для значений, установленных из источников, отличных от файлов конфигурации, или при просмотре пользователем, который не является суперпользователем или членом pg_read_all_settings. Полезно при использовании директив include в файлах конфигурации. Пример: /var/lib/pgsql/10/data/postgresql.auto.conf | ||||
| unit string | always | Неявная единица измерения параметра. Пример: kB | ||||
| val_in_bytes integer | if supported | Текущее значение параметра в байтах. Пример: 2147483647 | ||||
| vartype string | always | Тип параметра (bool, enum, integer, real или string). Пример: integer | ||||
| tablespaces dictionary | always | Информация о табличных пространствах https://www.postgresql.org/docs/current/catalog-pg-tablespace.html. Пример: [{'test': {'spcacl': '{postgres=C/postgres,andreyk=C/postgres}', 'spcoptions': ['seq_page_cost=1'], 'spcowner': 'postgres'}}] | ||||
| spcacl string | always | Права доступа к табличному пространству. Пример: {postgres=C/postgres,andreyk=C/postgres} | ||||
| spcoptions list | always | Параметры уровня табличного пространства. Пример: ['seq_page_cost=1'] | ||||
| spcowner string | always | Владелец табличного пространства. Пример: test_user | ||||
| version dictionary | always | Версия сервера базы данных https://www.postgresql.org/support/versioning/. Пример: {'version': {'major': 10, 'minor': 6}} | ||||
| major integer | always | Основная версия сервера. Пример: 11 | ||||
| minor integer | always | Дополнительная версия сервера. Пример: 1 | ||||
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [preview]
- Данный модуль поддерживается сообществом Ansible. [community]
Авторы
- Andrew Klychkov (@Andersson007)
Подсказка
Если вы заметите какие-либо проблемы в данном документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/postgresql_info_module.html