community.postgresql.postgresql_ping 模块 – 检查远程 PostgreSQL 服务器可用性
注意
此模块是 community.postgresql 集合 (版本 3.9.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.postgresql
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: community.postgresql.postgresql_ping
。
概要
用于检查远程 PostgreSQL 服务器可用性的简单模块。
要求
执行此模块的主机需要以下要求。
psycopg2 >= 2.5.1
参数
参数 |
注释 |
---|---|
指定包含 SSL 证书颁发机构 (CA) 证书的文件名。 如果文件存在,则会验证服务器的证书是否由这些机构之一签名。 |
|
要传递给 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。
选项
|
|
如果为 只有当可能通过 *session_role* 进行 SQL 注入时,使用 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 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
包。
另请参见
另见
- community.postgresql.postgresql_info
收集有关 PostgreSQL 服务器的信息。
示例
# PostgreSQL ping dbsrv server from the shell:
# ansible dbsrv -m postgresql_ping
# In the example below you need to generate certificates previously.
# See https://postgresql.ac.cn/docs/current/libpq-ssl.html for more information.
- name: >
Ping PostgreSQL server using non-default credentials and SSL
registering the return values into the result variable for future use
community.postgresql.postgresql_ping:
db: protected_db
login_host: dbsrv
login_user: secret
login_password: secret_pass
ca_cert: /root/root.crt
ssl_mode: verify-full
register: result
# If you need to fail when the server is not available,
# uncomment the following line:
#failed_when: not result.is_available
# You can use the registered result with another task
- name: This task should be executed only if the server is available
# ...
when: result.is_available == true
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
连接错误消息。 返回:成功 示例: |
|
PostgreSQL 服务器可用性。 返回:成功 示例: |
|
PostgreSQL 服务器版本。 返回:成功 示例: |