community.postgresql.postgresql_ext 模块 – 在数据库中添加或删除 PostgreSQL 扩展

注意

此模块是 community.postgresql 集合 (版本 3.9.0) 的一部分。

如果您正在使用 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.postgresql。您需要其他需求才能使用此模块,请参阅 需求 以了解详细信息。

要在 playbook 中使用它,请指定: community.postgresql.postgresql_ext

概要

  • 在数据库中添加或删除 PostgreSQL 扩展。

需求

执行此模块的主机需要以下需求。

  • psycopg2 >= 2.5.1

参数

参数

注释

ca_cert

别名:ssl_rootcert

字符串

指定包含 SSL 证书颁发机构 (CA) 证书的文件名。

如果文件存在,则服务器的证书将被验证是否由其中一个机构签名。

cascade

布尔值

自动安装/删除此扩展程序依赖的任何尚未安装/删除的扩展程序(PostgreSQL 9.6 之后支持)。

选项

  • false ← (默认)

  • true

comment

字符串

在 community.postgresql 3.3.0 中添加

在扩展上设置注释。

要重置注释,请传递空字符串。

connect_params

字典

在 community.postgresql 2.3.0 中添加

要传递给 libpg 的任何其他参数。

这些参数优先。

默认值: {}

db

别名:login_db

字符串 / 必需

要添加或从中删除扩展的数据库名称。

login_host

别名:host

字符串

运行数据库的主机。

如果使用 localhost 时遇到连接问题,请尝试使用 127.0.0.1 代替。

默认值: ""

login_password

字符串

此模块应用于建立其 PostgreSQL 会话的密码。

默认值: ""

login_unix_socket

别名:unix_socket

字符串

本地连接的 Unix 域套接字的路径。

默认值: ""

login_user

别名:login

字符串

此模块应用于建立其 PostgreSQL 会话的用户名。

默认值: "postgres"

name

别名:ext

字符串 / 必需

要添加或删除的扩展的名称。

port

别名:login_port

整数

要连接到的数据库端口。

默认值: 5432

schema

字符串

要添加扩展的模式的名称。

session_role

字符串

连接后切换到 session_role。

指定的 session_role 必须是当前 login_user 属于的角色。

SQL 命令的权限检查将被执行,就好像 session_role 是最初登录的角色一样。

ssl_cert

路径

在 community.postgresql 2.4.0 中添加

指定客户端 SSL 证书的文件名。

ssl_key

路径

在 community.postgresql 2.4.0 中添加

指定用于客户端证书的密钥的位置。

ssl_mode

字符串

确定是否以及以什么优先级与服务器协商安全的 SSL TCP/IP 连接。

有关模式的更多信息,请参见 https://postgresql.ac.cn/docs/current/static/libpq-ssl.html

prefer 的默认值与 libpq 默认值匹配。

选项

  • "allow"

  • "disable"

  • "prefer" ← (默认)

  • "require"

  • "verify-ca"

  • "verify-full"

state

字符串

数据库扩展状态。

选项

  • "absent"

  • "present" ← (默认)

trust_input

布尔值

在 community.postgresql 0.2.0 中添加

如果为 false,则检查参数 extschemaversionsession_role 的值是否可能存在危险。

只有当可能通过参数进行 SQL 注入时,才有意义使用 false

选项

  • false

  • true ← (默认)

version

字符串

要添加或更新到的扩展版本。仅当 state=present 时有效。

如果未指定并且数据库中未安装扩展,则将创建可用的最新版本。

如果扩展已安装,如果存在有效的更新路径,则会更新到给定版本。

仅当扩展提供降级路径时才支持降级,否则必须删除扩展,并且必须提供较低版本的扩展。

version=latest 设置为将扩展更新到最新的可用版本。

属性

属性

支持

描述

check_mode

支持:完全支持

可以在check_mode下运行,并返回更改状态预测,而无需修改目标。

备注

注意

  • 无法比较的版本,例如PostGIS ``unpackaged``,无法安装。

  • 默认身份验证假设您正在以主机上的postgres帐户登录或使用sudo。

  • 为避免“Peer authentication failed for user postgres”错误,请使用postgres用户作为become_user

  • 此模块使用psycopg,一个Python PostgreSQL数据库适配器。在使用此模块之前,必须确保主机上安装了psycopg2 >= 2.5.1psycopg3 >= 3.1.8

  • 如果远程主机是PostgreSQL服务器(默认情况),则必须在远程主机上安装PostgreSQL。

  • 对于基于Ubuntu的系统,在使用此模块之前,请在远程主机上安装postgresqllibpq-devpython3-psycopg2包。

另请参见

另请参见

PostgreSQL扩展

关于PostgreSQL扩展的一般信息。

CREATE EXTENSION 参考

CREATE EXTENSION命令文档的完整参考。

ALTER EXTENSION 参考

ALTER EXTENSION命令文档的完整参考。

DROP EXTENSION 参考

DROP EXTENSION命令文档的完整参考。

示例

- name: Adds postgis extension to the database acme in the schema foo
  community.postgresql.postgresql_ext:
    name: postgis
    db: acme
    schema: foo
    comment: Test extension

- name: Removes postgis extension to the database acme
  community.postgresql.postgresql_ext:
    name: postgis
    db: acme
    state: absent

- name: Adds earthdistance extension to the database template1 cascade
  community.postgresql.postgresql_ext:
    name: earthdistance
    db: template1
    cascade: true

# In the example below, if earthdistance extension is installed,
# it will be removed too because it depends on cube:
- name: Removes cube extension from the database acme cascade
  community.postgresql.postgresql_ext:
    name: cube
    db: acme
    cascade: true
    state: absent

- name: Create extension foo of version 1.2 or update it to that version if it's already created and a valid update path exists
  community.postgresql.postgresql_ext:
    db: acme
    name: foo
    version: 1.2

- name: Create the latest available version of extension foo. If already installed, update it to the latest version
  community.postgresql.postgresql_ext:
    db: acme
    name: foo
    version: latest

返回值

常见的返回值已在此处记录,以下是此模块特有的字段

描述

prev_version

字符串

新增于community.postgresql 3.1.0

先前安装的扩展版本,如果未安装扩展,则为空字符串。

返回:成功

示例:"1.0"

queries

列表 / 元素=字符串

已执行查询的列表。

返回:成功

示例:["DROP EXTENSION \"acme\""]

version

字符串

新增于community.postgresql 3.1.0

当前安装的扩展版本,如果未安装扩展,则为空字符串。

返回:成功

示例:"2.0"

作者

  • Daniel Schep (@dschep)

  • Thomas O’Donnell (@andytom)

  • Sandro Santilli (@strk)

  • Andrew Klychkov (@Andersson007)

  • Keith Fiske (@keithf4)

  • Daniele Giudice (@RealGreenDragon)