Spec-Zone.ru › Ansible 2.11

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
строка
    Варианты:
  • allow
  • disable
  • prefer ←
  • require
  • verify-ca
  • verify-full
Определяет, будет ли и с каким приоритетом устанавливаться защищенное SSL TCP/IP-соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
trust_input
логическое значение
добавлено в 0.2.0 версии community.postgresql
    Варианты:
  • no
  • yes ←
Если 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
словарь
всегда
Расширения https://www.postgresql.org/docs/current/sql-createextension.html.

Пример:
[{'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
строка
всегда
Права доступа https://www.postgresql.org/docs/current/catalog-pg-namespace.html.

Пример:
{postgres=UC/postgres,=U/postgres}
nspowner
строка
всегда
Владелец схемы https://www.postgresql.org/docs/current/catalog-pg-namespace.html.

Пример:
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
всегда
Права входа https://www.postgresql.org/docs/current/role-attributes.html.

Пример:
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API