postgresql_info – Сбор информации о серверах PostgreSQL
Новая версия 2.8.
Краткое описание
- Сбор информации о серверах PostgreSQL.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты SSL органов сертификации (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, либо используете sudo для входа в него на хосте.
- login_user или session_role должны иметь право на чтение из pg_authid.
- Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост — это сервер PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удалённом хосте перед использованием этого модуля.
- По умолчанию предполагается, что вы либо входите в систему как пользователь, либо используете sudo для входа в него на хосте.
- Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удалённый хост — это сервер PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удалённом хосте. Для систем на основе Ubuntu установите пакеты
postgresql,libpq-dev, иpython-psycopg2на удалённом хосте перед использованием этого модуля. - Параметр ca_cert требует как минимум версии Postgres 8.4 и psycopg2 версии 2.4.3.
Примеры
# 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'}} | ||||
| active булево | всегда | True означает, что к нему подключился получатель и в настоящее время он зарезервировал архивы. Пример: True | ||||
| база_данных строка | всегда | Имя базы данных, с которой связан этот слот, или null. Пример: acme | ||||
| плагин строка | всегда | Базовое имя общего объекта, содержащего выходной плагин, используемый этим логическим слотом, или null для физических слотов. Пример: pgoutput | ||||
| тип_слота строка | всегда | Тип слота — физический или логический. Пример: логический | ||||
| репликации словарь | если существует представление pg_stat_replication | Информация о текущих репликациях по идентификаторам процессов (PID) https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE. Пример: [{76580: {'имя_приложения': 'standby1', 'начало_работы_процесса': '2019-02-03 00:14:33.908593+03', 'адрес_клиента': '10.10.10.2', 'имя_хоста_клиента': '', 'состояние': 'потоковый', 'имя_пользователя': 'postgres'}}] | ||||
| имя_приложения строка | если существует | Имя приложения, подключенного к этому отправителю WAL. Пример: acme_srv | ||||
| начало_работы_процесса строка | всегда | Время запуска этого процесса, т.е. время подключения клиента к этому отправителю WAL. Пример: 2019-02-03 00:14:33.908593+03 | ||||
| адрес_клиента строка | всегда | IP-адрес клиента, подключенного к этому отправителю WAL. Если это поле null, это означает, что клиент подключен через сокет Unix на серверной машине. Пример: 10.0.0.101 | ||||
| имя_хоста_клиента строка | всегда | Имя хоста подключенного клиента, полученное в результате обратного разрешения адреса client_addr. Это поле будет не null только для IP-соединений и только при включенном log_hostname. Пример: dbsrv1 | ||||
| состояние строка | всегда | Текущее состояние отправителя WAL. Пример: потоковый | ||||
| имя_пользователя строка | всегда | Имя пользователя, вошедшего в этот процесс отправителя WAL ('имя_пользователя' - имя столбца в представлении pg_stat_replication). Пример: replication_user | ||||
| роли словарь | всегда | Информация о ролях https://www.postgresql.org/docs/current/user-manag.html. Пример: [{'test_role': {'можно_войти': True, 'член_группы': ['user_ro'], 'суперпользователь': False, 'действителен_до': '9999-12-31T23:59:59.999999+00:00'}}] | ||||
| можно_войти булево | всегда | Привилегия входа https://www.postgresql.org/docs/current/role-attributes.html. Пример: True | ||||
| член_группы список | всегда | Членство в роли https://www.postgresql.org/docs/current/role-membership.html. Пример: ['read_only_users'] | ||||
| суперпользователь булево | всегда | Пользователь является суперпользователем или нет. | ||||
| действителен_до строка | всегда | Дата истечения срока действия пароля 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': {'начальное_значение': '4096', 'контекст': 'пользователь', 'макс_значение': '2147483647', 'мин_значение': '64', 'настройка': '8192', 'файл_источника': '/var/lib/pgsql/10/data/postgresql.auto.conf', 'единица': 'kB', 'тип_переменной': 'целое число', 'значение_в_байтах': 4194304}}] | ||||
| начальное_значение строка | всегда | Значение параметра, предполагаемое при запуске сервера, если параметр не задан иначе. Пример: 4096 | ||||
| контекст строка | всегда | Контекст, необходимый для установки значения параметра. Для получения дополнительной информации см. https://www.postgresql.org/docs/current/view-pg-settings.html. Пример: пользователь | ||||
| макс_значение строка | всегда | Максимально допустимое значение параметра (null для значений, не являющихся числовыми). Пример: 2147483647 | ||||
| мин_значение строка | всегда | Минимально допустимое значение параметра (null для значений, не являющихся числовыми). Пример: 64 | ||||
| ожидание_перезапуска булево | всегда | True, если значение было изменено в файле конфигурации, но требуется перезапуск; иначе false. Возвращается только если settings передано. | ||||
| красивое_значение строка | всегда | Значение, представленное в удобном для чтения формате. Пример: 2MB | ||||
| настройка строка | всегда | Текущее значение параметра. Пример: 49152 | ||||
| файл_источника строка | всегда | Файл конфигурации, в котором установлено текущее значение. Null для значений, установленных из источников, отличных от файлов конфигурации, или при просмотре пользователем, который не является суперпользователем или членом pg_read_all_settings. Полезно при использовании директив include в файлах конфигурации. Пример: /var/lib/pgsql/10/data/postgresql.auto.conf | ||||
| единица строка | всегда | Неявная единица параметра. Пример: 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 | ||||
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Андрей Клычков (@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.8/modules/postgresql_info_module.html