跳到主要内容

升级与备份

哪些层原地升级、升级与回滚的步骤;每日自动备份的产物、全量备份的时机、恢复到同机与换机的区别。

本页面向维护 IDMatrix 服务器的管理员,只适用于模型 B。模型 A 容器一体机不支持保留数据的升级,更换镜像要删卷,身份库随之清空;生产环境使用模型 B。

升级

层原地升级方式
管理台(dist/)是替换目录,不重启
许可层是重跑 playbook
配置与 playbook是重跑 playbook,幂等
FreeIPA 本体(ipa-server RPM)否见下文
操作系统大版本否重装加恢复,按专项方案

IDMatrix 的版本迭代(功能、汉化、门控、缺陷修复)全部落在前三行,不改动 FreeIPA 本体。

升级前

  1. 执行全量备份。ipa-backup 停止 dirsrv 约 30 秒,安排在维护窗口。
  2. 单独备份许可状态,ipa-backup 不包含该目录。
  3. 记录当前版本,回滚时使用。
  4. 保留上一版的交付包。
sudo ipa-backup
sudo tar czf /root/license-state-preupgrade.tgz -C /var/lib idmatrix-license
rpm -q ipa-server; ls -la /opt/idmatrix/dist/index.html

推荐方式:重跑 playbook

沿用旧的 customer.env,只把 IDM_WEBUI_DIST_SRC 和 IDM_LIC_SRC 指向新交付包,重跑 playbook:

cd <新交付包> && ./deploy/render-inventory.sh
ansible-playbook -i deploy/inventory.generated.yml deploy-ipaserver.yml

ipaserver 角色检测到 IPA 已安装即跳过;管理台和许可层的文件被覆盖后触发各自的重启。许可层只通过 playbook 升级,不支持手工替换单个文件。

手工方式:只替换管理台

构建产物带内容 hash,解压前必须清空目录,否则新旧文件堆积:

cd /opt/idmatrix/dist && find . -mindepth 1 -delete
tar xzf /tmp/dist-<新版本>.tar.gz -C /opt/idmatrix/dist

管理台是纯静态文件,不重启任何服务,浏览器按 Ctrl+F5 刷新。

升级后自检

检查预期
curl -sk -o /dev/null -w '%{http_code}\n' https://<FQDN>/ipa/modern-ui/200
ipa user-show admin正常返回
/var/lib/idmatrix-license/status.json 的 valid与升级前一致
在一个未授权模块执行写操作返回 403

最后一项必须做。闸门损坏的症状是放行了本该拒绝的请求,不是报错。

FreeIPA 本体不做原地升级

FreeIPA 本体不随 IDMatrix 版本升级。离线环境没有 yum 源,跨版本升级需要完整的依赖闭包;跨大版本要执行 ipa-server-upgrade,涉及 schema 迁移,失败后难以回滚;备份恢复要求同版本,升级 IPA 后旧备份无法恢复。需要升级(安全公告等)时联系 Reallysec 按专项方案执行,不要自行执行 dnf update ipa-server。

回滚

升级对象回滚
管理台清空 dist/,解压上一版
许可层用上一版交付包重跑 playbook
数据损坏ipa-restore <升级前的全量备份>,再还原 license-state-preupgrade.tgz

备份

需要备份两部分:IPA 身份库(用户、组、主机、策略、证书、CA、DNS)和许可状态(/var/lib/idmatrix-license/)。

备份包含 CA 私钥和目录数据。传出主机后加密保存,限制访问。

两种备份

命令范围对服务的影响用途
ipa-backup全量:数据、CA、证书、配置停止 dirsrv 约 30 秒整机灾备;每周一次,以及建立信任、批量修改策略、升级之前
ipa-backup --data --online只有 LDAP 数据不中断每日,安装时已自动配置

产物在 /var/lib/ipa/backup/ipa-full-<时间戳> 或 ipa-data-<时间戳>。备份不会自动离开主机,必须拷贝到主机外,至少保留两代。

每日自动备份

playbook 安装 /usr/local/sbin/idmatrix-backup.sh 和 idmatrix-backup.timer,每日 02:30 产出两个文件,耗时约 5 秒,不停止服务:

产物路径
数据备份/var/lib/ipa/backup/ipa-data-<时间戳>/
许可状态/var/lib/ipa/backup/license-state-<时间戳>.tgz

超过 14 天的备份自动清理(idm_backup_keep_days)。客户自带备份系统时,安装时设置 idm_setup_backup=false。

操作命令
查看下次执行时间systemctl list-timers idmatrix-backup.timer
查看执行日志journalctl -u idmatrix-backup.service
立即执行一次systemctl start idmatrix-backup.service

多 master 环境

每台 IPA 服务器各自备份。全量恢复只在一台上执行,恢复后其他 replica 从它重新初始化(ipa-replica-manage re-initialize --from <恢复的那台>),否则数据冲突。

恢复

恢复覆盖现有身份库,ipa-restore 期间服务中断约 45 秒,安排在维护窗口。

前提是同版本 IPA、同 hostname、同 realm、同 domain。全量恢复通常在一台干净安装好 IPA 的主机上执行。

sudo cp -a /离机位置/ipa-full-<时间戳> /var/lib/ipa/backup/
sudo ipa-restore /var/lib/ipa/backup/ipa-full-<时间戳>
# 只在恢复到同一台主机时
sudo tar xzf license-state.tgz -C /var/lib
sudo systemctl restart httpd

恢复后核对:

检查预期
ipactl status全部 RUNNING
kinit admin && ipa user-find --sizelimit=1正常返回
ipa trust-show <AD 域>(有 AD 信任时)正常返回
管理台 License Activation 页状态为 valid

两条输出属于正常,不是故障:Could not open file for writing: /etc/httpd/conf.d/nss.conf(当前版本使用 mod_ssl,该文件本就不存在);提示各副本需重新初始化(单机部署不涉及,多 master 按上文处理)。

恢复目标决定许可是否有效

恢复到machine-id许可
同一台主机(重装、回滚)不变仍有效,连同 /var/lib/idmatrix-license 一起还原
新主机、更换硬件(灾备重建)改变失效。取新指纹,由 Reallysec 重签,在 License Activation 页上传

灾备重建顺序:

  1. 在新主机安装同版本 IPA,hostname 与 realm 相同。
  2. 执行 ipa-restore。
  3. 用新指纹重签许可并上传。
  4. 有 AD 信任时验证 ipa trust-show 和 id <AD 用户>@<AD 域>。

实测数据(4 GB 内存、2 vCPU 单机):全量备份 30 秒,全量恢复 45 秒;恢复后 11 个服务全部启动,备份之后创建的对象被回滚,AD 信任保留,管理台返回 200。

本页内容