温州建网站业务人员,手机wordpress清除缓存,中国哪里正在大开发大建设,佛山新网站制作公司以下是借助 SaltStack 批量替换 SSL 证书的完整方案#xff0c;该方案结合了自动化更新与回滚机制#xff0c;以保障操作的高效性与安全性#xff1a; 一、准备工作 目录结构搭建 在 Salt Master 的 /home/salt/ssl_update 目录下构建如下结构#xff1a;ssl_update/
├──…以下是借助 SaltStack 批量替换 SSL 证书的完整方案该方案结合了自动化更新与回滚机制以保障操作的高效性与安全性 一、准备工作 目录结构搭建 在 Salt Master 的 /home/salt/ssl_update 目录下构建如下结构ssl_update/
├── update.sls # 更新证书的状态文件
├── rollback.sls # 回滚证书的状态文件
└── ssl/ # 存放证书文件 ├── domain1/ # 按域名分类 │ ├── server.key │ └── server.pem └── domain2/├── server.key └── server.pem 按照域名分类将新证书存入对应的目录。 SaltStack 环境确认 确保所有目标 Minion 已通过 salt-key -A 完成证书认证。 二、证书更新流程update.sls
# 定义变量使用 Jinja 模板
{% set domain domain1 %}
{% set ssl_dir /usr/local/nginx/ssl %}
{% set dst_dir ssl_dir / domain %} # 目标证书路径
{% set bak_dir /opt/backup/ssl/ domain %} # 备份目录 # 模块1备份旧证书
backup_ssl: cmd.run: - name: |year$(openssl x509 -in {{ dst_dir }}/server.pem -noout -enddate | awk -F {print $2} | awk {print $4})mkdir -p {{ bak_dir }}/$year cp {{ dst_dir }}/* {{ bak_dir }}/$year/# 模块2更新证书
ssl_update: file.recurse: - source: salt://ssl_update/ssl/{{ domain }} # Master 证书源路径 - name: {{ dst_dir }}- require: - cmd: backup_ssl # 模块3重启服务以 Nginx 为例
nginx_reload: cmd.run: - name: /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload - require: - file: ssl_update 关键点
备份时依据证书的有效期年份创建子目录以便后续进行回滚操作运用 file.recurse 同步证书文件自动覆盖旧文件通过 require 确保操作步骤的顺序为备份 → 更新 → 重启服务。 三、回滚机制rollback.sls
# 获取备份年份优先从 Pillar 读取否则取前一年
{% set year salt[pillar.get](year, default$(date %Y -d last year)) %}rollback: cmd.run: - name: cp {{ bak_dir }}/{{ year }}/* {{ dst_dir }}/- onchanges: - file: ssl_update # 仅当证书