community.postgresql.postgresql_tablespace 模块 – 从远程主机添加或删除 PostgreSQL 表空间
注意
此模块是 community.postgresql 集合(版本 3.9.0)的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.postgresql
。您需要进一步的要求才能使用此模块,有关详细信息,请参见要求。
要在剧本中使用它,请指定: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 到该帐户。为了避免“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 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
返回值
常用返回值记录在此处 这里, 以下是此模块独有的字段
键 |
描述 |
---|---|
表空间注释。 返回: 成功 示例: |
|
文件系统中表空间的路径。 返回: 成功 示例: |
|
新的表空间名称。 返回: 如果存在 示例: |
|
表空间选项。 返回: 成功 示例: |
|
表空间所有者。 返回: 成功 示例: |
|
尝试执行的查询列表。 返回: 成功 示例: |
|
执行结束时表空间的状态。 返回: 成功 示例: |
|
表空间名称。 返回: 成功 示例: |