community.postgresql.postgresql_subscription 模块 – 添加、更新或删除 PostgreSQL 订阅
注意
此模块是 community.postgresql 集合(版本 3.9.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了这个集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.postgresql
。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。
要在 Playbook 中使用它,请指定:community.postgresql.postgresql_subscription
。
community.postgresql 0.2.0 中的新增功能
概要
添加、更新或删除 PostgreSQL 订阅。
要求
在执行此模块的主机上需要满足以下要求。
psycopg2 >= 2.5.1
参数
参数 |
注释 |
---|---|
指定包含 SSL 证书颁发机构 (CA) 证书的文件名。 如果文件存在,将验证服务器的证书是否由这些机构之一签名。 |
|
删除订阅依赖项。仅当 state=absent 时有效。 当 state 不是 选项
|
|
在订阅上设置注释。 要重置注释,请传递一个空字符串。 |
|
要传递给 libpg 的任何其他参数。 这些参数优先。 默认: |
|
连接到发布者的连接字典参数值。 有关详细信息,请参阅 https://postgresql.ac.cn/docs/current/libpq-connect.html#LIBPQ-CONNSTRING。 当 state 不是 当无法从服务器获取现有订阅的连接参数时(例如在 CloudSQL 中)将被忽略。 |
|
要连接的数据库的名称,以及将更改订阅状态的数据库。 |
|
运行数据库的主机。 如果在使用 默认: |
|
此模块应使用此密码来建立其 PostgreSQL 会话。 默认: |
|
用于本地连接的 Unix 域套接字的路径。 默认: |
|
此模块应使用此用户名来建立其 PostgreSQL 会话。 默认: |
|
要添加、更新或删除的订阅的名称。 |
|
订阅所有者。 如果未定义 owner,则所有者将被设置为 login_user 或 session_role。 当 state 不是 |
|
要连接的数据库端口。 默认: |
|
用于订阅的发布者上的发布名称。 当 state 不是 |
|
连接后切换到会话角色。指定的会话角色必须是当前登录用户所属的角色。 SQL 命令的权限检查将如同会话角色是最初登录的角色那样执行。 |
|
指定客户端 SSL 证书的文件名。 |
|
指定客户端证书所用密钥的存储位置。 |
|
确定是否以及以何种优先级与服务器协商安全的 SSL TCP/IP 连接。 有关模式的更多信息,请参见 https://postgresql.ac.cn/docs/current/static/libpq-ssl.html。 默认值 选项
|
|
订阅状态。
有关 选项
|
|
订阅的可选参数字典,例如 copy_data、enabled、create_slot 等。 对于更新订阅,允许的键是 有关创建新订阅的可用参数,请参见 https://postgresql.ac.cn/docs/current/sql-createsubscription.html。 当 state 不是 |
|
如果 只有当通过参数可能发生 SQL 注入时,使用 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全 |
可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。 |
注释
注意
PostgreSQL 版本必须为 10 或更高版本。
默认身份验证假定您正在以主机上的
postgres
帐户登录或 sudo 到该帐户。要避免“用户 postgres 的对等身份验证失败”错误,请使用 postgres 用户作为 _become_user_。
此模块使用
psycopg
,一个 Python PostgreSQL 数据库适配器。您必须确保在使用此模块之前,主机上安装了psycopg2 >= 2.5.1
或psycopg3 >= 3.1.8
。如果远程主机是 PostgreSQL 服务器(默认情况),则还必须在远程主机上安装 PostgreSQL。
对于基于 Ubuntu 的系统,在使用此模块之前,请在远程主机上安装
postgresql
、libpq-dev
和python3-psycopg2
软件包。
另请参阅
另请参阅
- community.postgresql.postgresql_publication
添加、更新或删除 PostgreSQL 发布。
- community.postgresql.postgresql_info
收集有关 PostgreSQL 服务器的信息。
- CREATE SUBSCRIPTION 参考
CREATE SUBSCRIPTION 命令文档的完整参考。
- ALTER SUBSCRIPTION 参考
ALTER SUBSCRIPTION 命令文档的完整参考。
- DROP SUBSCRIPTION 参考
DROP SUBSCRIPTION 命令文档的完整参考。
示例
- name: >
Create acme subscription in mydb database using acme_publication and
the following connection parameters to connect to the publisher.
Set the subscription owner as alice.
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: present
publications: acme_publication
owner: alice
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
dbname: mydb
comment: Made by Ansible
- name: Assuming that acme subscription exists, try to change conn parameters
community.postgresql.postgresql_subscription:
db: mydb
name: acme
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
connect_timeout: 100
- name: Refresh acme publication
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: refresh
- name: Drop acme subscription from mydb with dependencies (cascade=true)
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: absent
cascade: true
- name: Assuming that acme subscription exists and enabled, disable the subscription
community.postgresql.postgresql_subscription:
db: mydb
name: acme
state: present
subsparams:
enabled: false
返回值
常见返回值记录在此处,以下是此模块独有的字段
键 |
描述 |
---|---|
标志指示订阅在运行时结束时是否存在。 返回:成功 示例: |
|
运行时结束时的订阅配置。 返回:成功 示例: |
|
运行时开始时的订阅配置。 返回:成功 示例: |
|
订阅的名称。 返回:成功 示例: |
|
已执行查询的列表。 返回:成功 示例: |