Nginx Proxy Manager 完全使用指南

详细介绍如何安装、配置和使用 Nginx Proxy Manager,包括 Docker 安装、反向代理配置、SSL 证书管理、负载均衡等实用功能。

Nginx Proxy Manager 完全使用指南

Nginx Proxy Manager 是一个基于 Web 的 Nginx 管理工具,可以通过友好的界面管理 Nginx 服务器和反向代理配置。本文将详细介绍如何安装、配置和使用。

什么是 Nginx Proxy Manager?

Nginx Proxy Manager 是一个开源的 Nginx 配置管理工具,提供了 Web 界面来简化 Nginx 的配置过程。主要特点包括:

  • Web 界面管理:无需手动编辑配置文件
  • SSL 证书管理:自动申请和续期 Let's Encrypt 证书
  • 反向代理配置:可视化配置后端服务
  • 负载均衡:支持多种负载均衡算法
  • 访问控制:IP 白名单/黑名单、基础认证
  • 监控和日志:实时监控服务状态

适用场景

Nginx Proxy Manager 特别适合以下场景:

  1. Home Lab / 家庭服务器

    • 管理多个 Web 服务
    • 配置反向代理到不同容器
    • 统一的 SSL 证书管理
  2. 小型公司部署

    • 管理内网服务
    • 配置对外访问的反向代理
    • 集中管理 Nginx 配置
  3. 开发测试环境

    • 快速切换后端服务
    • 临时启用/禁用服务
    • 测试负载均衡配置

安装 Nginx Proxy Manager

方式 1:使用 Docker(推荐)⭐

Docker 是最简单和推荐的安装方式。

前置要求

  • Docker 已安装
  • Docker Compose 已安装

安装步骤

  1. 克隆项目仓库

    git clone https://github.com/NginxProxyManager/nginx-proxy-manager.git
    cd nginx-proxy-manager
  2. 使用 Docker Compose 启动

    
    # 启动服务
    docker-compose up -d

查看日志

docker-compose logs -f


3. **访问 Web 界面**

打开浏览器访问:http://your-server-ip:81
默认账号:admin@example.com
默认密码:changeme


### 方式 2:使用 Docker 镜像

如果您不想克隆源码,可以直接使用官方 Docker 镜像。

```bash
docker run -d 
  --name=nginx-proxy-manager 
  -p 80:80 
  -p 443:443 
  -p 81:81 
  --restart=unless-stopped 
  nginxproxymanager/nginx-proxy-manager:latest

端口说明:

  • 80:HTTP 流量
  • 443:HTTPS 流量
  • 81:管理界面

方式 3:源码编译(不推荐)

如果您需要自定义功能,可以从源码编译安装。

# 安装依赖
npm install
npm run build

# 启动服务
npm start

基础配置

登录管理界面

  1. 打开浏览器访问:http://your-server-ip:81
  2. 使用默认账号密码登录
  3. 重要:首次登录后立即修改密码!

修改默认密码

  1. 点击右上角头像
  2. 进入 "Settings"(设置)
  3. 修改密码
  4. 保存更改

反向代理配置

创建第一个代理主机

  1. 点击 "Hosts"(代理主机)
  2. 点击 "Add Proxy Host"(添加代理主机)

基本配置

  • Proxy Type(代理类型):选择 http 或 https
  • Domain Names(域名):
    • 输入域名(如:example.com)
    • 或输入 IP 地址(如:192.168.1.100)
  • Scheme(协议):选择 http 或 https
  • Forward Hostname / IP(转发主机/IP):后端服务器地址

SSL 配置

  • SSL Certificate(SSL 证书):
    • 选择 New Certificate(新证书)创建
    • 或选择 Let's Encrypt 自动申请
  • Force SSL(强制 SSL):勾选后将 HTTP 重定向到 HTTPS

配置示例

示例 1:代理到本地 Web 服务

Domain Names: localhost.local
Scheme: http
Forward Hostname / IP: 192.168.1.100:8080

这将把访问 http://localhost.local 的请求转发到 http://192.168.1.100:8080

示例 2:代理到 HTTPS 后端

Domain Names: api.example.com
Scheme: https
Forward Hostname / IP: internal-api.local
Forward Port: 443

示例 3:代理到 Docker 容器

Domain Names: myapp.local
Scheme: http
Forward Hostname / IP: 172.17.0.2:3000

这将把访问转发到 Docker 网络中的容器服务。

SSL 证书配置

Let’s Encrypt 免费证书

Nginx Proxy Manager 内置了 Let's Encrypt 支持,可以自动申请和续期免费 SSL 证书。

配置步骤

  1. 域名解析:确保域名已正确解析到服务器 IP
  2. 端口开放:开放 80 和 443 端口
  3. 申请证书:
    • 在代理主机配置中
    • 选择 "SSL Certificate" → "Let's Encrypt"
    • 输入邮箱地址(用于证书通知)
    • 输入域名
    • 点击 "Save"

证书自动续期

Let's Encrypt 证书有效期为 90 天,Nginx Proxy Manager 会自动在证书到期前 30 天续期。

自定义证书

如果使用购买的 SSL 证书,可以手动上传。

  1. 准备证书文件:

    • 证书文件(.crt)
    • 私钥文件(.key)
    • 证书链文件(可选)
  2. 上传证书:

    • 进入 "SSL Certificates"(SSL 证书)页面
    • 点击 "Add SSL Certificate"
    • 上传证书文件
    • 保存配置

高级配置

自定义 Nginx 配置

如果需要自定义 Nginx 配置,可以在代理主机设置中使用 "Custom Nginx Configuration" 功能。

常用配置片段

  1. 自定义 Headers

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";
  2. 跨域配置(CORS)

    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
    add_header Access-Control-Allow-Headers "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control";
  3. Gzip 压缩

    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;

访问控制

IP 白名单

# 允许的 IP
allow 192.168.1.0/24;
allow 10.0.0.0/8;

# 拒绝其他 IP
deny all;

基础认证

  1. 进入代理主机设置
  2. 展开 "Access Lists"(访问列表)
  3. 点击 "Create Access List"
  4. 输入名称
  5. 添加用户名和密码
  6. 保存
  7. 在代理主机中应用该访问列表

监控和日志

实时监控

Nginx Proxy Manager 提供实时监控功能:

  1. 仪表盘(Dashboard):查看所有服务状态
  2. 流量统计:查看请求数、错误率等
  3. 资源使用:查看 CPU、内存使用情况

日志查看

  1. 访问日志:查看 HTTP 请求日志
  2. 错误日志:查看 Nginx 错误日志
  3. 代理日志:查看代理转发日志

负载均衡

创建负载均衡

  1. 点击 "Hosts" → "Proxy Hosts"
  2. 点击 "Add Proxy Host"
  3. 在 "Location"(位置)中添加路径
  4. 展开 "Advanced"(高级)配置
  5. 启用负载均衡

负载均衡算法

  • Round Robin(轮询):按顺序轮流分发请求
  • Least Connections(最少连接):选择连接数最少的服务器
  • IP Hash(IP 哈希):根据客户端 IP 分发
  • Random(随机):随机选择服务器

添加后端服务器

在 "Forward Hosts"(转发主机)中添加多个后端服务器:

- 192.168.1.101:8080
- 192.168.1.102:8080
- 192.168.1.103:8080

负载均衡配置示例

graph LR
    Client[客户端] --> LB[负载均衡器]
    LB --> S1[服务器 1<br />192.168.1.101:8080]
    LB --> S2[服务器 2<br />192.168.1.102:8080]
    LB --> S3[服务器 3<br />192.168.1.103:8080]

常见使用场景

场景 1:家庭媒体服务器

需求:在家里的服务器上运行多个媒体服务(Plex, Emby, Jellyfin),需要通过域名访问。

配置方案:

域名配置:
- plex.example.com → 192.168.1.100:32400
- emby.example.com → 192.168.1.100:8096
- jellyfin.example.com → 192.168.1.100:8096

SSL 配置:
- 使用 Let's Encrypt 自动申请证书

场景 2:开发环境多服务

需求:开发环境运行多个微服务,需要统一入口。

配置方案:

主域名:api.example.com

路径配置:
- /user → 用户服务:192.168.1.100:8001
- /order → 订单服务:192.168.1.100:8002
- /payment → 支付服务:192.168.1.100:8003

场景 3:内网服务外网访问

需求:公司内网服务需要通过公网 IP 访问。

配置方案:

域名:internal.example.com
转发目标:10.0.0.100:80
SSL:启用 Let's Encrypt
访问控制:IP 白名单(只允许公司 IP)

常见问题

Q1:无法访问管理界面

A:检查以下几点:

  • Docker 容器是否正常运行:docker ps
  • 端口 81 是否开放:netstat -tlnp | grep 81
  • 防火墙是否阻止了连接

解决方法:

# 查看容器状态
docker ps -a | grep nginx-proxy-manager

# 查看容器日志
docker logs nginx-proxy-manager

# 重启容器
docker restart nginx-proxy-manager

Q2:代理配置后无法访问后端

A:检查以下几点:

  • 后端服务是否正常运行
  • 防火墙是否阻止了连接
  • 后端服务是否监听正确的端口

解决方法:

# 测试后端服务连通性
curl -v http://backend-ip:port

# 检查防火墙
firewall-cmd --list-all

Q3:SSL 证书申请失败

A:Let's Encrypt 申请失败的常见原因:

  • 域名未正确解析到服务器
  • 80 端口未开放
  • 防火墙阻止了 Let's Encrypt 验证请求

解决方法:

# 检查域名解析
nslookup your-domain.com

# 检查 80 端口
netstat -tlnp | grep :80

# 检查防火墙
firewall-cmd --list-ports | grep 80

Q4:如何备份配置

A:定期备份 Nginx 配置很重要。

备份方法:

  1. 通过 Web 界面导出配置
  2. 或直接备份 Docker 卷:
    docker cp nginx-proxy-manager:/data /backup/nginx-proxy-manager-$(date +%Y%m%d)

Q5:如何升级版本

A:使用 Docker 可以轻松升级。

升级步骤:

# 停止并删除旧容器
docker-compose down

# 拉取最新镜像
docker-compose pull

# 重新启动
docker-compose up -d

最佳实践

1. 安全配置

  • ✅ 修改默认密码
  • ✅ 启用 SSL(HTTPS)
  • ✅ 配置防火墙规则
  • ✅ 定期更新版本
  • ✅ 使用强密码和访问控制

2. 性能优化

  • ✅ 启用 Gzip 压缩
  • ✅ 配置缓存策略
  • ✅ 启用 HTTP/2(如果支持)
  • ✅ 合理配置 worker 进程数

3. 监控和维护

  • ✅ 定期查看访问日志
  • ✅ 监控服务器资源使用
  • ✅ 定期备份配置
  • ✅ 定期更新 SSL 证书
  • ✅ 及时更新版本

参考资源

总结

Nginx Proxy Manager 是一个强大且易用的 Nginx 管理工具,特别适合:

  1. Home Lab - 家庭服务器管理
  2. 小型公司 - 内网服务配置
  3. 开发测试 - 快速配置切换

通过本文的指导,您应该能够:

  • ✅ 成功安装 Nginx Proxy Manager
  • ✅ 配置反向代理和负载均衡
  • ✅ 申请和管理 SSL 证书
  • ✅ 配置访问控制和安全策略
  • ✅ 监控服务状态和日志

Nginx Proxy Manager 让 Nginx 配置变得简单,非常适合日常使用!

Views: 97

SuperClaude: 让你的Claude Code变得更聪明

SuperClaude 通过一个综合的配置框架,将 Claude Code 从通用 AI 助手转变为专业开发利器。这个开源项目提供了 19 个专用命令和 9 个认知角色,能够实现一致的、基于证据的开发工作流,同时将令牌使用量减少高达 70%。 该框架完全在本地运行,无任何外部依赖,是需要结构化 AI 辅助来贯穿整个开发生命周期的专业开发者的隐私友好解决方案。 ### SuperClaude 是什么

SuperClaude 是一个配置框架,而不是可执行软件。它通过在 ~/.claude/ 安装一个复杂的模板系统来工作,为 Claude Code 提供专业的思维模式、结构化命令和基于证据的方法论。 该系统包含四个核心组件:CLAUDE.md(主配置)、RULES.md(治理和实践)、PERSONAS.md(9 个认知原型)和 MCP.md(模型上下文协议操作)。这些组件协同工作,创建一个一致的开发伙伴,根据您的具体需求调整其专业知识。 主要差异化特性包括通过 Context7 集成的自动文档查找、用于上下文保存的基于 git 的检查点系统,以及在保持质量的同时显著减少令牌消耗的 UltraCompressed 模式。 ### 安装要求和过程

前置条件:- 必须安装并认证 Claude Code

  • Git 配置有用户信息
  • 支持的平台:Linux、macOS、Windows Subsystem for Linux (WSL)

基本安装只需三个命令:

<pre class="lang:sh" decode:true="">uv venv
git clone https://github.com/NomenAK/SuperClaude.git
cd SuperClaude
make install

进入 claude, 发现多了很多/sc:开头的斜杠命令

Views: 12

WordPress站点从宝塔迁移到1Panel容器环境完全指南

前言

本文将详细介绍如何将运行在宝塔面板的WordPress网站迁移到1Panel容器环境。整个过程包括数据备份、环境准备、应用安装、数据恢复等关键步骤。

一、数据备份(源站点)

1.1 数据库备份

# 在宝塔面板中:
- 进入数据库管理
- 选择需要备份的数据库
- 点击"备份"按钮导出.sql文件

1.2 网站文件备份

# 在宝塔面板中:
- 进入网站管理
- 选择需要备份的站点
- 点击"备份"生成网站文件压缩包

二、新服务器环境准备

2.1 安装Docker环境

# CentOS/rhel系统
yum install -y docker-ce

# Ubuntu系统
apt install docker.io

# 启动Docker服务
systemctl start docker
systemctl enable docker

国内环境还需要配置加速镜像

2.2 安装1Panel

# 执行官方安装脚本
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh
sudo bash quick_start.sh

三、安装必要应用

3.1 通过1Panel应用商店安装:

  • OpenResty - Web服务器
  • MySQL - 数据库服务
  • Adminer - 数据库管理工具

3.2 配置PHP运行环境

# 在1Panel面板中:
1. 进入"网站" -> "运行环境"
2. 安装PHP 8.4
3. 选择WordPress模板配置PHP扩展

四、创建WordPress站点

4.1 快速创建WordPress应用

1. 进入"网站" -> "快速创建"
2. 选择WordPress应用
3. 配置以下信息:
   - 数据库信息
   - 域名设置
   - SSL证书
   - 开启HTTPS
   - 设置网站目录

4.2 目录软链接设置

# 由于目录结构差异,需要创建软链接
ln -s \
/opt/1panel/apps/wordpress/wordpress/data \
/opt/1panel/www/sites/delucia.cn/index

五、数据恢复

5.1 恢复数据库

# 使用Adminer面板:
1. 登录数据库
2. 选择导入功能
3. 上传之前备份的.sql文件
4. 执行导入操作

5.2 恢复网站文件

# 进入网站目录
cd /opt/1panel/apps/wordpress/wordpress/data

# 解压备份文件
unzip -xzvf wordpress_backup.zip

六、权限设置

6.1 配置目录权限

# 设置WordPress数据目录权限
chown 33:tape -R \
/opt/1panel/apps/wordpress/wordpress/data

七、验证和优化

  1. 访问网站验证功能是否正常
  2. 检查图片和媒体文件是否正确显示
  3. 测试后台管理功能
  4. 验证数据库连接
  5. 检查插件运行状态

常见问题解决

  1. 图片无法显示

    • 检查目录权限
    • 验证文件路径配置
  2. 数据库连接错误

    • 确认数据库配置信息
    • 检查网络连接设置
  3. 无法安装和更新插件权限相关问题

    • 执行正确的chown命令
    • 检查目录权限设置
  4. 网站无法打开

    • 通常是插件出错导致
    • 主要检查缓存类插件(特别是redis连接问题)

      总结

      通过以上步骤,我们完成了WordPress网站从宝塔面板到1Panel容器环境的迁移。关键点在于正确的备份、环境配置和权限设置。特别注意数据目录权限(33:tape)的设置,这对于WordPress的正常运行至关重要。

参考资料

  • 1Panel官方文档
  • WordPress官方迁移指南

Views: 89

Convert2RHEL:从其他 Linux 发行版迁移至红帽企业 Linux

什么是 convert2RHEL?

Convert2RHEL 是一款命令行实用程序,可分析您的系统的就绪度并将基于 RPM 的 Linux 操作系统(OS)转换至红帽企业 Linux。这是在红帽企业 Linux 上实现标准化的一种自动化方式,无需您手动重新部署任何工作负载。
Convert2RHEL 可在转换过程中保持现有操作系统中的自定义项、配置和偏好,从而最大限度减少对高成本重新部署项目的需求并减轻管理负担。
阅读文档

为什么使用 convert2RHEL?

CentOS 项目将于 2024 年 6 月 30 日之后停止对 CentOS Linux® 7 的更新和发布。这意味着当前的 CentOS Linux 用户需要选择一条迁移路径才能继续接收安全补丁和更新。
查看 CentOS 迁移的信息页面

Convert2RHEL 只是第一步。您可了解它与红帽第三方 Linux 迁移特惠之间的联系。视频时长:5:22。

将从 CentOS Linux 7 迁移至红帽企业 Linux 的企业现已可以利用红帽智能分析以更简单的方式进行转换:

  1. 注册 CentOS Linux 7 系统以使其出现在智能分析清单列表中。
  2. 启动对所选 CentOS Linux 7 系统的转换前分析并接收修复建议,以帮助解决可能会使转换过程变得复杂或影响向红帽企业 Linux 转换的问题。
  3. 解决转换前分析中发现的任何问题后,直接从红帽智能分析完成向红帽企业 Linux 的转换。

如需深入了解,请浏览我们的分步迁移指南。
如果企业组织希望从基于 RPM 的其他 Linux 发行版迁移或更偏向于通过 convert2RHEL 命令行工具迁移至红帽企业 Linux,请参阅下方的操作指导及后续步骤。

如何使用 convert2RHEL

确定转换路径

从 CentOS Linux 7 迁移至红帽企业 Linux 的许多用户都会先转换至红帽企业 Linux 7。将系统迁移至红帽企业 Linux 7 之后,用户可以升级至红帽企业 Linux 8(可就地完成),也可以了解我们的延长生命周期支持(ELS)订阅。如需了解更多,请查看 Convert2RHEL 备忘单。
支持的转换路径包括:

  • 从 CentOS Linux 8 转换至红帽企业 Linux 8
  • 从 Oracle Linux 7 转换至红帽企业 Linux 7
  • 从 Oracle Linux 8 转换至红帽企业 Linux 8
  • 从 Alma Linux 8 转换至红帽企业 Linux 8
  • 从 Rocky Linux 8 转换至红帽企业 Linux 8

不支持从 CentOS Linux 6 和 Oracle Linux 6 转换至红帽企业 Linux,因为红帽企业 Linux 6 已超出生命周期维护阶段,但本文档提供了相关指导。
通过定制途径简化从 CentOS Linux 的转换

为转换做准备

您可通过阅读此文档获得相关指导并了解附加功能和已知限制信息。确认您的系统支持转换至红帽企业 Linux,然后进行备份。参考该文档(包含有关如何评估系统应用和数据的分步说明)确定工作负载、配置或应用可能存在的难点,然后主动解决问题。在迁移之前确定兼容性问题和分层应用,以便将风险降至最低并进行系统优化。
如果在此阶段遇到挑战或复杂情况,请联系红帽咨询。我们的专家可帮助转换较复杂的应用和工作负载,协助对流程进行标准化改造、分析工作负载并自动执行迁移变体,所有这些工作均有助于最大限度降低与操作系统转换相关的风险。

查看转换前分析报告

要评估您的系统是否可以转换至红帽企业 Linux,请运行转换前分析。完成分析后生成的报告中会汇总潜在问题并提供解决方案建议。此报告还有助于您确定是否可以或是否适合继续转换至红帽企业 Linux。

转换

备份好您的现有操作系统后,请运行 convert2RHEL 工具并遵循本文档中的说明。Convert2RHEL 可自动识别操作系统软件包并将您的原始 Linux 发行版中的操作系统软件包替换为等效的红帽企业 Linux 操作系统软件包,且 convert2RHEL 享受红帽官方支持,有助于对转换版本问题进行故障排除。
转换成功后,需重启系统才能进入红帽企业 Linux。转换后,可能需要重新安装第三方 RPM 或重新配置系统服务。

升级

如果您的系统在 convert2RHEL 完成后运行的是红帽企业 Linux 7,请花些时间评估您的支持情况。如果您使用的是支持第三方 Linux 迁移的红帽企业 Linux 产品或购买了延长生命周期支持(ELS)附加订阅,那么您有额外的时间来升级到较新版本。如果您没有上述任何延长支持选项,我们建议在红帽企业 Linux 7 维护终止(2024 年 6 月 30 日)之前升级到较新的受支持版本。
进一步了解升级
可帮助用户扩展功能的另一款工具是红帽开发人员订阅团队版。借助该工具,在生产环境中运行红帽技术的现有红帽客户有机会免费部署红帽企业 Linux。红帽企业 Linux 让开发人员可以轻松使用更加可靠且安全至上的操作系统,企业组织构建和测试应用的平台即生产型工作负载所用的同一个创新且可靠的平台。
从简报中了解更多

回归正轨

完成转换和升级后,您便可以访问红帽企业 Linux 的所有最新更新,以及红帽企业 Linux 中包含的所有性能、支持、管理和安全功能。
如需详细了解转换流程,请参阅技术文档和红帽知识库。

Views: 107

使用红帽 Ansible 自动化 CentOS7 Linux到RHEL的迁移过程

2024年 6月 27日Nuno Martins
Automation and management自动化和管理 Linux Migration迁移


CentOS Linux 7的生命周期即将结束,更新将于2024年6月30日结束。这一即将到来的最后期限意味着安全更新和维护的结束,为继续依赖过时操作系统的组织带来了重大风险。需要升级到更新且受支持的平台,如Red Hat Enterprise Linux(RHEL),以保持最新的安全状态和持续的功能。
这些系统可能在您组织的IT基础设施中发挥关键作用,迁移这些系统并非易事。红帽Ansible自动化平台可以帮助简化和自动化此流程,降低复杂性,同时实现可扩展性,并能够协调对周围基础设施的更改,以支持迁移。
在本文中,我将探讨使用Ansible Automation Platform在整个组织中大规模推动这种迁移的可能性,以及实现这一目标所需的步骤。

从CentOS Linux迁移到RHEL

当然,登录到CentOS Linux系统并启动Convert 2 RHEL命令行过程非常容易。但是,如何在多个系统中实现这一点呢?那么可能存在的所有基础设施依赖性呢?
使用Ansible Automation Platform进行此过程可帮助您解决规模和依赖关系,同时允许您为迁移构建逻辑工作流。还有什么比大规模转化更强大的呢?大规模整治!我们可以自动修复所有这些阻断剂。
我们经常将Ansible Automation Platform称为简单而强大的平台,但它真正的强大功能是覆盖多个领域和用例。我们可以自动化迁移过程,但我们也可以使用多域方面来解决基础设施和平台依赖性。

让我们来看一个典型的系统示例,我们现在希望将其迁移到RHEL。我有一组应用程序服务器托管我的流应用程序。这些系统并不是孤立运行的,可能会有防火墙、负载平衡甚至与数据库的连接。还可能需要其他的前期工作。我可能需要:

  • Update dependent systems 更新依赖系统
  • 备份数据或快照系统
  • 在我们的监控解决方案中从通知中删除系统
  • 在我们开始之前,在我们的ITSM中打开服务票证

有了我们需要做的一切操作知识,我们可以构建我们的Ansible Playbook并标准化流程以实现一致性。使用Ansible自动化平台,通过提供红帽Ansible Lightspeed(我们用于剧本创建的生成式AI),我们可以实现终极“ops-life”破解。我们可以利用我们的知识,让Ansible Lightspeed帮助我们更快地构建剧本,同时遵循最佳实践。
一旦我们创建了我们的内容,我们就可以使用自动化控制器来构建自动化工作流,并在我们继续自动化实际的Convert2RHEL流程之前逻辑地绘制流程。

在我们继续之前,我想指出这个工作流的一个关键组成部分:自动化系统快照的能力。这对于CentOS Linux到RHEL的迁移和RHEL的自动升级都很重要。当我们讨论RHEL升级时,我将向您展示一个Ansible验证的infra.lvm_snapshots内容的示例。
那么,转换我们系统的实际过程是怎样的呢?通过我们的Ansible自动化平台订阅,我们可以访问Ansible验证的内容,这些内容提供专家,固执己见的自动化内容,所有内容都位于console.redhat.com上的Ansible自动化中心。

我们将使用infra.convert2rhel集合开始。这个集合提供了我们可以用来使用Convert 2 RHEL框架执行转换的角色。使用Ansible验证内容中提供的示例剧本,我可以简单地将其添加到我的工作流程中,并在完成前期工作任务后启动迁移。

---
- name: Convert CentOS Linux to RHEL
hosts: centos
strategy: free
become: true
force_handlers: true
vars:
  rhsm_username: "{{ rhsm_username }}"
  rhsm_password: "{{ rhsm_password }}"
  rhsm_org: "{{ rhsm_org }}"
  rhsm_activation_key: "{{ rhsm_activation_key }}"
tasks:
  - name: Perform OS conversion
    ansible.builtin.import_role:
      name: infra.convert2rhel.convert

如果你看了示例剧本,注意策略的使用是很重要的。如果您不熟悉这一点,这使我们能够控制如何跨主机执行任务。在我们的示例中,我们使用strategy:free -允许任务尽快执行而无需等待其他主机,并且它独立运行每个主机。这是大规模升级多台机器的理想选择。
一旦我们迁移系统,我们就可以利用Ansible Automation Platform自动化测试和检查端口和配置,作为迁移到RHEL工作流程的最后一步。

“RHEL-come” to Enterprise Linux!

“RHEL-来”到企业Linux!
一旦我们的CentOS Linux系统已经迁移,我们现在将在RHEL 7。建议使用类似的过程升级到RHEL 8-我们使用LEAPP升级工具框架来帮助我们。Red Hat还为RHEL 7系统提供延长生命周期支持(ELS)附加订阅,有关更多信息,请参阅宣布为Red Hat Enterprise Linux 7提供长达4年的延长生命周期支持(ELS)。
与Convert 2 RHEL一样,红帽也为infra. leapp提供了经Ansible验证的内容。infra.leapp内容包含帮助我们进行预升级步骤的角色,例如生成预升级报告、常见问题/抑制因素的补救角色以及升级我们的系统。
当我们在RHEL的主要版本之间升级时,我们通常使用LEAPP来评估系统并创建升级前报告。LEAPP将收集数据,并提供关于潜在问题/抑制因素的报告,以及解决这些问题的可能建议。 虽然我们可以使用Ansible Role来修复LEAPP发现的常见问题,但是,第三方依赖关系或某些配置更改可能需要单独解决。

步骤1:评估您的系统

我们可以再次求助于Ansible Automation Platform,通过解决报告中的问题,构建补救行动手册,并将大规模的更改应用于我们想要升级的系统,来简化我们系统的补救过程。此外,如果我们不确定所需的任务,我们可以利用Ansible Lightspeed来生成一些补救措施。
示例:我们的系统有一个root远程登录的抑制器,我们使用Ansible Lightspeed来构建修复:

步骤2:触发升级:

通过使用自动化网格(Ansible自动化平台的一部分)等技术,我们可以大规模部署具有工作流程的剧本,甚至在全球范围内部署,甚至在地球仪。
使用我们的Ansible验证的内容,我们可以创建我们的LVM的快照,这样我们就可以在下一个升级步骤中恢复失败。

---
- name: Create/revert/remove/check LVM snapshots of node
hosts: "{{ rhel_inventory_group | default(omit) }}"
become: yes
environment:
  LANG: en_US.UTF-8
  LC_ALL: en_US.UTF-8
  TERM: linux
tasks:
  - ansible.builtin.set_fact:
      snapshot_create_set_name: "{{ snapshot_set_name }}"
      snapshot_remove_set_name: "{{ snapshot_set_name }}"
      snapshot_revert_set_name: "{{ snapshot_set_name }}"
  - name: "Execute snapshot check"
    ansible.builtin.include_role:
      name: "infra.lvm_snapshots.snapshot_create"
    vars:
      snapshot_create_check_only: true
      # Additional snapshot_* vars provided via AAP2 job template and associated surveys
    when: lvm_snapshots_action == "check"
  - name: "Execute snapshot {{ lvm_snapshots_action }}"
    ansible.builtin.include_role:
      name: "infra.lvm_snapshots.snapshot_{{ lvm_snapshots_action }}"
      # Additional snapshot_* vars provided via AAP2 job template and associated surveys
    when: (lvm_snapshots_action == "create") or (lvm_snapshots_action == "remove") or (lvm_snapshots_action == "revert")

一旦我们有了快照,我们就可以使用Ansible集合中的内容升级RHEL系统。

---
- name: Upgrade
hosts: "{{ rhel_inventory_group | default(omit) }}"
strategy: free
become: true
force_handlers: true
# vars:
#   ansible_python_interpreter: /usr/libexec/platform-python
tasks:
  - name: Perform OS upgrade
    ansible.builtin.import_role:
      name: infra.leapp.upgrade
...

一旦系统升级,我们就可以使用Ansible自动化平台来检查系统的状态。如果一切顺利,我们还可以使用自动化将系统重新投入生产。

步骤3:升级后的附加组件

我们的升级已经完成,但我们仍然可以使用Ansible自动化平台做更多事情。升级后的配置和集成可以作为我们自动化工作流程的一部分进行,简化我们在升级系统时经常忘记的所有额外任务。Ansible自动化平台允许您将新的RHEL系统集成到红帽洞察中,从而简化合规性检查和执行。我们还可以配置Performance Co-Pilot向Event-Driven Ansible报告系统指标,以及您能想到的所有其他第2天任务!
自动化分析可以帮助我们明确自动化流程,或者帮助我们识别流程中主机中可能存在的异常,然后我们可以稍后解决这些异常。

Views: 36