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 不是 |
|
连接后切换到 session_role。 指定的 session_role 必须是当前 login_user 所属的角色。 执行 SQL 命令的权限检查,就像 session_role 是最初登录的用户一样。 |
|
指定客户端 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
返回值
常见返回值记录在 此处,以下是此模块独有的字段
键 |
描述 |
---|---|
标志指示运行时结束时订阅是否存在。 返回: 成功 示例: |
|
运行时结束时的订阅配置。 返回: 成功 示例: |
|
运行时开始时的订阅配置。 返回: 成功 示例: |
|
订阅的名称。 返回: 成功 示例: |
|
已执行的查询列表。 返回: 成功 示例: |