community.postgresql.postgresql_info – Сбор информации о серверах PostgreSQL
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_info.
Описание
- Сбор информации о серверах PostgreSQL.
Требования
Ниже приведены требования, необходимые на хосте, который выполняет этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. Псевдонимы: ssl_rootcert | |
| db строка | Имя базы данных для подключения. Псевдонимы: login_db | |
| filter список / элементы=строка | Ограничить собираемую информацию запятой или списком YAML. Допустимые значения: version, databases, in_recovery, 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. |
| trust_input логическое значение добавлено в 0.2.0 версии community.postgresql |
| Если no, проверьте, является ли значение session_role потенциально опасным.Использовать no целесообразно только в том случае, если SQL-инъекции через session_role возможны. |
Примечания
Примечание
- Поддерживает
check_mode. - По умолчанию используется аутентификация, предполагающая, что вы входите в систему как или используете sudo для учетной записи
postgresна хосте. - Чтобы избежать ошибки «Ошибка проверки подлинности peer для пользователя 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.
См. также
См. также
- community.postgresql.postgresql_ping
-
Официальная документация модуля community.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
community.postgresql.postgresql_info:
filter: ver*,ext*
- name: Collect all info except settings and roles
become: yes
become_user: postgres
community.postgresql.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
community.postgresql.postgresql_info:
db: postgres
filter:
- tablesp*
- repl_sl*
- name: Collect all info except databases
become: yes
become_user: postgres
community.postgresql.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 | ||||
| publications словарь добавлено в 0.2.0 community.postgresql | если настроено | Информация о публикациях логической репликации (доступно для PostgreSQL 10 и выше) https://www.postgresql.org/docs/current/logical-replication-publication.html. Содержимое зависит от версии сервера PostgreSQL. Пример: {'pub1': {'ownername': 'postgres', 'puballtables': True, 'pubinsert': True, 'pubupdate': True}} | ||||
| size строка | всегда | Размер базы данных в байтах. Пример: 8189415 | ||||
| subscriptions словарь добавлено в 0.2.0 community.postgresql | если настроено | Информация о подписках на репликацию (доступно для PostgreSQL 10 и выше) https://www.postgresql.org/docs/current/logical-replication-subscription.html. Содержимое зависит от версии сервера PostgreSQL. Пример: [{'my_subscription': {'ownername': 'postgres', 'subenabled': True, 'subpublications': ['first_publication']}}] | ||||
| in_recovery логическое | всегда | Указывает, находится ли служба в режиме восстановления или нет. | ||||
| 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'}} | ||||
| active логическое | всегда | True означает, что к нему подключился получатель, и он в настоящее время зарезервировал архивы. Пример: True | ||||
| database строка | всегда | Имя базы данных, с которой связан этот слот, или null. Пример: acme | ||||
| plugin строка | всегда | Базовое имя общего объекта, содержащего плагин вывода, который использует этот логический слот, или null для физических слотов. Пример: pgoutput | ||||
| slot_type строка | всегда | Тип слота — физический или логический. Пример: логический | ||||
| replications словарь | если существует pg_stat_replication представление | Информация о текущих реплицированиях по идентификаторам процессов 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'}}] | ||||
| app_name string | если существует | Имя приложения, подключённого к этому отправителю WAL. Пример: acme_srv | ||||
| backend_start string | всегда | Время запуска данного процесса, то есть время подключения клиента к этому отправителю WAL. Пример: 2019-02-03 00:14:33.908593+03 | ||||
| client_addr string | всегда | IP-адрес клиента, подключённого к этому отправителю WAL. Если это поле равно null, это означает, что клиент подключён через сокет Unix на серверной машине. Пример: 10.0.0.101 | ||||
| client_hostname string | всегда | Имя хоста подключённого клиента, полученное путём обратного DNS-разрешения client_addr. Это поле будет не null только для IP-соединений, и только если включена настройка log_hostname. Пример: dbsrv1 | ||||
| state string | всегда | Текущее состояние отправителя WAL. Пример: streaming | ||||
| usename string | всегда | Имя пользователя, вошедшего в процесс отправителя WAL («usename» — имя столбца в представлении pg_stat_replication). Пример: replication_user | ||||
| roles словарь | всегда | Информация о ролях 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'}}] | ||||
| canlogin boolean | всегда | Пример: true | ||||
| member_of список / элементы=строка | всегда | Членство в роли https://www.postgresql.org/docs/current/role-membership.html. Пример: ['read_only_users'] | ||||
| superuser boolean | всегда | Пользователь является суперпользователем или нет. | ||||
| valid_until string | всегда | Дата истечения срока действия пароля https://www.postgresql.org/docs/current/sql-alterrole.html. Пример: 9999-12-31T23:59:59.999999+00:00 | ||||
| settings словарь | всегда | Информация о параметрах сервера во время выполнения https://www.postgresql.org/docs/current/view-pg-settings.html. Пример: [{'work_mem': {'boot_val': '4096', 'context': 'пользователь', 'max_val': '2147483647', 'min_val': '64', 'setting': '8192', 'sourcefile': '/var/lib/pgsql/10/data/postgresql.auto.conf', 'unit': 'kB', 'val_in_bytes': 4194304, 'vartype': 'целое число'}}] | ||||
| boot_val строка | всегда | Значение параметра, принятое при запуске сервера, если параметр не задан иначе. Пример: 4096 | ||||
| context строка | всегда | Контекст, необходимый для установки значения параметра. Дополнительную информацию можно найти в https://www.postgresql.org/docs/current/view-pg-settings.html. Пример: пользователь | ||||
| max_val строка | всегда | Максимальное допустимое значение параметра (null для значений, не являющихся числами). Пример: 2147483647 | ||||
| min_val строка | всегда | Минимальное допустимое значение параметра (null для значений, не являющихся числами). Пример: 64 | ||||
| pending_restart boolean | всегда | true, если значение было изменено в файле конфигурации, но требуется перезагрузка; в противном случае false. Возвращается только если settings передано. | ||||
| pretty_val строка | всегда | Значение, представленное в удобном для чтения формате. Пример: 2МБ | ||||
| setting строка | всегда | Текущее значение параметра. Пример: 49152 | ||||
| sourcefile строка | всегда | Файл конфигурации, в котором было установлено текущее значение. null для значений, установленных из источников, отличных от файлов конфигурации, или когда их просматривает пользователь, который не является суперпользователем или членом pg_read_all_settings. Полезно при использовании директив include в файлах конфигурации. Пример: /var/lib/pgsql/10/data/postgresql.auto.conf | ||||
| unit строка | всегда | Неявная единица измерения параметра. Пример: kB | ||||
| val_in_bytes целое число | если поддерживается | Текущее значение параметра в байтах. Пример: 2147483647 | ||||
| vartype строка | всегда | Тип параметра (bool, enum, целое число, вещественное число или строка). Пример: целое число | ||||
| tablespaces словарь | всегда | Информация о пространствах имен таблиц 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 строка | всегда | Права доступа к пространствам имен таблиц. Пример: {postgres=C/postgres,andreyk=C/postgres} | ||||
| spcoptions список / элементы=строка | всегда | Параметры на уровне пространства имен таблиц. Пример: ['seq_page_cost=1'] | ||||
| spcowner строка | всегда | Владелец пространства имен таблиц. Пример: test_user | ||||
| version словарь | всегда | Версия сервера базы данных https://www.postgresql.org/support/versioning/. Пример: {'version': {'major': 10, 'minor': 6}} | ||||
| major целое число | всегда | Основная версия сервера. Пример: 11 | ||||
| minor целое число | всегда | Дополнительная версия сервера. Пример: 1 | ||||
Авторы
- Андрей Кличков (@Andersson007)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/postgresql/postgresql_info_module.html