notmycloud.proxmox_backup_client
Ansible-Proxmox-备份客户端
这个角色将会在基于Debian的操作系统上安装和配置Proxmox备份客户端。 您可以在这里找到Proxmox备份客户端的文档。Proxmox Backup Client。
变量
变量 | 必须 | 默认 | 描述 |
---|---|---|---|
proxmox_backup | 是 | 包含您此角色配置的字典 | |
.server | 是 | 包含您Proxmox备份服务器的连接信息的字典 | |
.server.user | 是 | 访问PBS的用户名,例如:backup@pbs | |
.server.pass | 是 | 提供用户名的密码或令牌 | |
.server.host | 是 | PBS的主机名/FQDN/IP | |
.server.datastore | 是 | 存储备份的存储库 | |
.server.port | 否 | 8007 | PBS API的自定义端口 |
.server.fingerprint | 否 | 服务器证书的指纹,在仪表板上找到 | |
.client | 是 | 包含PBC客户端配置的字典 | |
.client.archives | 是 | 需要备份的项目数组 | |
.client.archives.name | 是 | 上传的归档文件名称,不能包含'/'字符 | |
.client.archives.path | 是 | 备份的路径 | |
.client.archives.format | 是 | 常见类型有.pxar用于文件归档和.img用于块设备映像 | |
.client.encrypt | 否 | 包含客户端加密设置的字典 | |
.client.encrypt.enable | 是 | 否 | 启用或禁用客户端加密 |
.client.encrypt.pass | 否 | 加密密钥的密码(如果需要密码保护) | |
.client.encrypt.key | 是 | ~/.config/proxmox-backup/encryption-key.json | 存储加密密钥的路径 |
.client.encrypt.master | 否 | 本地master-public.pem的路径,以复制到客户端 | |
.client.output | 否 | 包含stdout日志格式选项的字典 | |
.client.output.format | 否 | text | 可能的值有text、json、json-pretty |
.client.output.border | 否 | 如果设置,将不显示表格边框 | |
.client.output.header | 否 | 如果设置,将不显示表格标题 | |
.client.include_devices | 否 | 包含的挂载点数组,默认跳过挂载点 | |
.client.skip_lost_found | 否 | 否 | 跳过lost+found目录 |
.client.schedule.calendar | 否 | '--* 4:00:00' | Systemd定时器OnCalendar字符串,默认每天凌晨4点 |
.client.schedule.runifmissed | 否 | 否 | 如果错过最后的启动时间则触发服务 |
.client.exclude | 否 | 包含.pxarexclude文件设置的数组 | |
.client.exclude[#].path | 是 | .pxarexclude的文件路径(父文件夹) | |
.client.exclude[#].enabled | 是 | 创建排除文件,如果不需要则删除 | |
.client.exclude[#].rules | 是 | 排除规则的数组,可以包括明确的包含 |
默认配置
default_config:
client:
encrypt:
enable: false
key: ~/.config/proxmox-backup/encryption-key.json
output:
format: text
skip_lost_found: no
schedule:
calendar: '*-*-* 4:00:00' # 每天凌晨4点
runifmissed: no
示例
所有级别的组变量(YAML格式)。
pbs_global_server:
user: backup@pbs
pass: ProxmoxBackupPassword
host: pbs.example.com
datastore: backups
fingerprint: 7f:f1:ee:...:3d:de:2b
pbs_global_client:
skip_lost_found: yes
exclude:
- path: /
rules:
- /boot/*
- /tmp/*
- path: /var/
rules:
- /run/*
- /log/*.[0-9]
- /log/*.[0-9].*
- /log/**/*.[0-9]
- /log/**/*.[0-9].*
archives:
- name: root
path: /
format: .pxar
- name: boot
path: /boot
format: .pxar
主机级别的变量(YAML格式)。
pbs_client:
archives:
- name: ssd
path: /ssd
format: .pxar
- name: data
path: /Data
format: .pxar
exclude:
- path: /ssd/qbit/
rules:
- /incomplete/*
- path: /ssd/media/
rules:
- /_transcode/temp/*
- /_transcode/log/*
- /converted/*.jpg
- /converted/*.mp4
- /.Trash*
合并组默认值与主机覆盖值
pbs_global_client是一个所有组变量。 pbs_client是主机变量。 combine(pbs_client, recursive=true)将合并字典。合并中的字典将优先于被管道传递的字典。可以链式操作。
# 合并数组以免一个覆盖另一个
- name: 合并PBS客户端数组
set_fact:
pbs_client_merged:
archives: "{{ pbs_global_client.archives + pbs_client.archives }}"
exclude: "{{ pbs_global_client.exclude + pbs_client.exclude }}"
- name: 设置Proxmox备份客户端
include_role:
name: proxmox-backup-client
vars:
proxmox_backup:
server: "{{ pbs_global_server }}"
client: "{{ pbs_global_client | combine(pbs_client, recursive=true) | combine(pbs_client_merged, recursive=true) }}"