community.postgresql.postgresql_tablespace 模块 – 在远程主机上添加或删除 PostgreSQL 表空间
注意
此模块是 community.postgresql 集合 (版本 3.9.0) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.postgresql
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:community.postgresql.postgresql_tablespace
。
概要
在远程主机上添加或删除 PostgreSQL 表空间。
要求
在执行此模块的主机上需要以下要求。
psycopg2 >= 2.5.1
参数
参数 |
注释 |
---|---|
指定包含 SSL 证书颁发机构 (CA) 证书的文件的名称。 如果文件存在,则会验证服务器的证书是否已由其中一个机构签名。 |
|
在表空间上设置注释。 要重置注释,请传递空字符串。 |
|
要传递给 libpg 的任何其他参数。 这些参数优先。 默认值: |
|
要连接到的数据库的名称以及要对其运行查询的数据库。 |
|
文件系统中表空间目录的路径。 确保该位置存在并具有正确的权限。 |
|
运行数据库的主机。 如果使用 默认值: |
|
此模块应用来建立其 PostgreSQL 会话的密码。 默认值: |
|
本地连接的 Unix 域套接字的路径。 默认值: |
|
此模块应用来建立其 PostgreSQL 会话的用户名。 默认值: |
|
要设置为表空间所有者的角色的名称。 如果未指定此选项,则表空间所有者是创建表空间的角色。 |
|
要连接到的数据库端口。 默认值: |
|
表空间的新名称。 新名称不能以 pg_ 开头,因为此类名称保留用于系统表空间。 |
|
连接后切换到 session_role。指定的 session_role 必须是当前 login_user 属于的角色。 SQL 命令的权限检查将像最初登录的 session_role 一样进行。 |
|
要设置的表空间选项的字典。从 PostgreSQL 9.0 开始支持。 有关更多信息,请参见 https://postgresql.ac.cn/docs/current/sql-createtablespace.html。 当将 reset 作为选项的值传递时,如果以前设置了该选项,则会将其删除。 |
|
指定客户端 SSL 证书的文件名。 |
|
指定用于客户端证书的密钥的位置。 |
|
确定是否以及以什么优先级与服务器协商安全的 SSL TCP/IP 连接。 有关模式的更多信息,请参阅 https://postgresql.ac.cn/docs/current/static/libpq-ssl.html。 默认值为 选项
|
|
表空间状态。 state=present 表示如果表空间不存在,则必须创建它。 state=absent 表示如果表空间存在,则必须将其删除。state=absent 与 location、owner、i(set) 互斥。 有关检查模式限制的信息,请参阅“注释”部分。 选项
|
|
要添加或删除的表空间的名称。 |
|
如果 只有当可能通过参数进行 SQL 注入时,使用 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:部分 state=absent 和 state=present(如果表空间不存在,则为第二个)不支持检查模式,因为相应的 PostgreSQL DROP 和 CREATE TABLESPACE 命令无法在事务块内运行。 |
可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。 |
注释
注意
默认身份验证假设您正在以主机上的
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
包。
另请参阅
另请参阅
- PostgreSQL 表空间
有关 PostgreSQL 表空间的常规信息。
- CREATE TABLESPACE 参考
CREATE TABLESPACE 命令文档的完整参考。
- ALTER TABLESPACE 参考
ALTER TABLESPACE 命令文档的完整参考。
- DROP TABLESPACE 参考
DROP TABLESPACE 命令文档的完整参考。
示例
- name: Create a new tablespace called acme and set bob as an its owner
community.postgresql.postgresql_tablespace:
name: acme
owner: bob
location: /data/foo
comment: "Bob's tablespace"
- name: Create a new tablespace called bar with tablespace options
community.postgresql.postgresql_tablespace:
name: bar
set:
random_page_cost: 1
seq_page_cost: 1
- name: Reset random_page_cost option
community.postgresql.postgresql_tablespace:
name: bar
set:
random_page_cost: reset
- name: Rename the tablespace from bar to pcie_ssd
community.postgresql.postgresql_tablespace:
name: bar
rename_to: pcie_ssd
- name: Drop tablespace called bloat
community.postgresql.postgresql_tablespace:
name: bloat
state: absent
返回值
常见的返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
表空间注释。 返回:成功 示例: |
|
文件系统中表空间的路径。 返回:成功 示例: |
|
新的表空间名称。 返回:如果存在 示例: |
|
表空间选项。 返回:成功 示例: |
|
表空间所有者。 返回:成功 示例: |
|
尝试执行的查询列表。 返回:成功 示例: |
|
执行结束时的表空间状态。 返回:成功 示例: |
|
表空间名称。 返回:成功 示例: |