community.postgresql.postgresql_ext 模块 – 从数据库添加或删除 PostgreSQL 扩展
注意
此模块是 community.postgresql 集合(版本 3.9.0)的一部分。
如果您使用的是 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.postgresql
。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。
要在剧本中使用它,请指定:community.postgresql.postgresql_ext
。
概要
从数据库添加或删除 PostgreSQL 扩展。
要求
执行此模块的主机需要满足以下要求。
psycopg2 >= 2.5.1
参数
参数 |
注释 |
---|---|
指定包含 SSL 证书颁发机构 (CA) 证书的文件名。 如果该文件存在,则会验证服务器的证书是否由这些机构之一签名。 |
|
自动安装/删除此扩展所依赖的任何尚未安装/删除的扩展(PostgreSQL 9.6 及更高版本支持)。 选择
|
|
在扩展上设置注释。 要重置注释,请传递一个空字符串。 |
|
要传递给 libpg 的任何其他参数。 这些参数优先。 默认值: |
|
要向其添加或从中删除扩展的数据库的名称。 |
|
运行数据库的主机。 如果在使用 默认值: |
|
此模块应使用以建立其 PostgreSQL 会话的密码。 默认值: |
|
用于本地连接的 Unix 域套接字的路径。 默认值: |
|
此模块应使用以建立其 PostgreSQL 会话的用户名。 默认值: |
|
要添加或删除的扩展的名称。 |
|
要连接的数据库端口。 默认值: |
|
要将扩展添加到其中的模式的名称。 |
|
连接后切换到 session_role。 指定的 session_role 必须是当前 login_user 所属的角色。 SQL 命令的权限检查就像 session_role 是最初登录的角色一样执行。 |
|
指定客户端 SSL 证书的文件名。 |
|
指定用于客户端证书的密钥的位置。 |
|
确定是否以及以何种优先级与服务器协商安全的 SSL TCP/IP 连接。 有关模式的详细信息,请参阅 https://postgresql.ac.cn/docs/current/static/libpq-ssl.html。
选择
|
|
数据库扩展状态。 选择
|
|
如果为 仅当通过这些参数可能发生 SQL 注入时,使用 选择
|
|
要添加或更新到的扩展版本。仅当 state=present 时有效。 如果未指定且扩展未安装在数据库中,则将创建可用的最新版本。 如果已安装扩展,则如果存在有效的更新路径,则将更新到给定版本。 仅当扩展提供降级路径时才支持降级,否则必须删除该扩展,并使较低版本的扩展可用。 设置 version=latest 以将扩展更新到可用的最新版本。 |
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完全 |
可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。 |
注意
注意
无法安装不兼容的版本,例如 PostGIS 的 ``unpackaged``。
默认身份验证假定您正在以
postgres
帐户登录或 sudo 到该帐户。为了避免 “Peer authentication failed for user postgres” 错误,请使用 postgres 用户作为 become_user。
此模块使用
psycopg
,这是一个 Python PostgreSQL 数据库适配器。在使用此模块之前,您必须确保主机上已安装psycopg2 >= 2.5.1
或psycopg3 >= 3.1.8
。如果远程主机是 PostgreSQL 服务器(默认情况),则还必须在远程主机上安装 PostgreSQL。
对于基于 Ubuntu 的系统,在使用此模块之前,请在远程主机上安装
postgresql
、libpq-dev
和python3-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
返回值
通用返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
先前安装的扩展版本,如果未安装扩展,则为空字符串。 返回: 成功 示例: |
|
已执行查询的列表。 返回: 成功 示例: |
|
当前安装的扩展版本,如果未安装扩展,则为空字符串。 返回: 成功 示例: |