community.general.proxmox_snap 模块 – Proxmox VE 集群中实例的快照管理

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 需求 了解详情。

要在剧本中使用它,请指定:community.general.proxmox_snap

community.general 2.0.0 中的新增功能

概要

  • 允许您在 Proxmox VE 集群中创建/删除/还原实例快照。

  • 支持 KVM 和 LXC,未测试 OpenVZ,因为它在 Proxmox VE 上已不再受支持。

需求

执行此模块的主机需要以下需求。

  • proxmoxer

  • requests

参数

参数

注释

api_host

字符串 / 必填

指定 Proxmox VE 集群的目标主机。

api_password

字符串

指定用于身份验证的密码。

您可以使用 PROXMOX_PASSWORD 环境变量。

api_port

整数

community.general 9.1.0 中新增

指定 Proxmox VE 集群的目标端口。

如果未指定,则使用 PROXMOX_PORT 环境变量。

api_token_id

字符串

community.general 1.3.0 中新增

指定令牌 ID。

需要 proxmoxer>=1.1.0才能工作。

api_token_secret

字符串

community.general 1.3.0 中新增

指定令牌密钥。

需要 proxmoxer>=1.1.0才能工作。

api_user

字符串 / 必填

指定用于身份验证的用户。

description

字符串

指定快照的描述。仅用于配置 Web 界面。

这将保存为配置文件中的注释。

force

布尔值

即使删除磁盘快照失败,也要从配置文件中删除。

选项

  • false ← (默认)

  • true

hostname

字符串

实例名称。

retention

整数

community.general 7.1.0 中新增

如果快照数量超过 retention,则删除旧快照。

如果 retention 设置为 0,则将保留所有快照。

仅在 state=present 且创建实际快照时使用。如果未创建快照,则将保留所有现有快照。

默认值: 0

snapname

字符串

必须创建/删除/还原的快照名称。

默认值: "ansible_snap"

state

字符串

指示所需实例快照状态。

community.general 4.8.0 中添加了 rollback 值。

选项

  • "present" ← (默认)

  • "absent"

  • "rollback"

timeout

整数

操作超时。

默认值: 30

unbind

布尔值

community.general 5.7.0 中新增

此选项仅适用于 LXC 容器。

即使容器配置了挂载点,也允许对容器进行快照。

临时禁用所有已配置的挂载点,拍摄快照,最后恢复原始配置。

如果正在运行,则将停止并重新启动容器以应用配置更改。

由于 Proxmox API 的限制,此选项只能使用 root@pamapi_password 进行身份验证,API 令牌也不起作用。

有关更多详细信息,请参阅 https://pve.proxmox.com/pve-docs/api-viewer/#/nodes/{node}/lxc/{vmid}/config (PUT 选项卡)。

选项

  • false ← (默认)

  • true

validate_certs

布尔值

如果为false,则不会验证SSL证书。

这仅应用于使用自签名证书的个人控制站点。

选项

  • false ← (默认)

  • true

vmid

字符串

实例 ID。

如果未设置,则将根据主机名从 PromoxAPI 中获取。

vmstate

布尔值

快照包含 RAM。

选项

  • false ← (默认)

  • true

属性

属性

支持

描述

action_group

动作组: community.general.proxmox

在 community.general 9.0.0 中添加。

module_defaults 中使用 group/community.general.proxmox 来设置此模块的默认值。

check_mode

支持:完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或在 check_mode 中可能需要更改的内容)的详细信息。

备注

注意

  • 主机需要 proxmoxer 和 requests 模块。可以使用 pip 安装这些模块。

示例

- name: Create new container snapshot
  community.general.proxmox_snap:
    api_user: root@pam
    api_password: 1q2w3e
    api_host: node1
    vmid: 100
    state: present
    snapname: pre-updates

- name: Create new container snapshot and keep only the 2 newest snapshots
  community.general.proxmox_snap:
    api_user: root@pam
    api_password: 1q2w3e
    api_host: node1
    vmid: 100
    state: present
    snapname: snapshot-42
    retention: 2

- name: Create new snapshot for a container with configured mountpoints
  community.general.proxmox_snap:
    api_user: root@pam
    api_password: 1q2w3e
    api_host: node1
    vmid: 100
    state: present
    unbind: true # requires root@pam+password auth, API tokens are not supported
    snapname: pre-updates

- name: Remove container snapshot
  community.general.proxmox_snap:
    api_user: root@pam
    api_password: 1q2w3e
    api_host: node1
    vmid: 100
    state: absent
    snapname: pre-updates

- name: Rollback container snapshot
  community.general.proxmox_snap:
    api_user: root@pam
    api_password: 1q2w3e
    api_host: node1
    vmid: 100
    state: rollback
    snapname: pre-updates

作者

  • Jeffrey van Pelt (@Thulium-Drake)