View a markdown version of this page

自动重启 AWS 在不禁用 SELinux 的情况下重新启动 RHEL 后的复制代理 - AWS 规范指引

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自动重启 AWS 在不禁用 SELinux 的情况下重新启动 RHEL 后的复制代理

Anil Kunapareddy,Amazon Web Services

Summary

AWS Transform MGN 帮助简化、加快和自动将红帽企业 Linux (RHEL) 工作负载迁移到亚马逊网络服务 (AWS) 云。要将源服务器添加到 MGN,请在服务器上安装AWS 复制代理

MGN 提供实时、异步、块级复制。这意味着您可以在整个复制过程中继续正常的 IT 操作。 这些 IT 操作可能需要您在迁移期间重新引导或重新启动 RHEL 源服务器。如果发生这种情况, AWS 复制代理将不会自动重新启动,您的数据复制也将停止。通常,您可以将 Security-Enhanced Linux (SELinux) 设置为禁用模式或允许模式,以自动重新启动复制代理。 AWS 但是,贵组织的安全政策可能禁止禁用 SELinux,您可能还必须重新标记文件

此模式描述了在迁移期间 RHEL 源服务器重新启动或重新启动时,如何在不关闭 SELinux 的情况下自动重启 AWS 复制代理。 

先决条件和限制

先决条件

版本

  • RHEL 版本 7 或更高版本

架构

下图显示了这种方法的架构。

RHEL 重启后自动重启 AWS 复制代理

工具

AWS 服务

  • AWS Transform MGN是一种高度自动化的移动(重新托管)解决方案,可简化、加快应用程序迁移并降低向其迁移的成本。 AWS

Linux 命令

下表列出了您在 RHEL 源服务器上运行的 Linux 命令。在此模式的操作说明和场景中也有描述。 

命令

描述

#systemctl –version

标识系统版本

#systemctl list-units --type=service

列出 RHEL 服务器上可用的所有活动服务

#systemctl list-units --type=service | grep running

列出当前在 RHEL 服务器上运行的所有服务

#systemctl list-units --type=service | grep failed

列出 RHEL 服务器重新启动或重新启动后加载失败的所有服务

#restorecon -Rv /etc/rc.d/init.d/aws-replication-service

将上下文更改为 aws-replication-service

#yum install policycoreutils*

安装 SELinux 系统运行所需的策略核心实用程序

#ausearch -c "insmod" --raw | audit2allow -M my-modprobe

搜索审核日志并创建策略模块

#semodule -i my-modprobe.pp

激活政策

#cat my-modprobe.te

显示my-modprobe.te文件内容

#semodule -l | grep my-modprobe

检查策略是否已加载到 SELinux 模块

操作说明

Task说明所需技能

生成 AWS 临时证书。

MGN 提供的临时证书使用的机制与使用的AWS Identity and Access Management Roles Anywhere机制类似。

要创建临时证书,您需要:

  1. 使用AWSApplicationMigrationAgentInstallationPolicy策略@@ 创建新的 IAM 角色

  2. 使用 AssumeRole API 通过 AWS Security Token Service (AWS STS) 请求临时安全证书

    您可以使用 AWS Command Line Interface (AWS CLI) 生成临时证书。有关示例,请参阅AWS CLI 命令参考

迁移工程师

安装 AWS 复制代理。

  1. 登录 AWS Management Console 并打开AWS Transform MGN 控制台

  2. 按照 MGN 文档中的说明配置复制设置。

  3. 按照 MGN 文档中的说明安装 AWS 复制代理。

  4. 源服务器页面,选择 RHEL 源服务器,然后选择复制以开始初始复制。有关更多信息,请参阅 MGN 文档

迁移工程师

检查数据复制状态。

等到复制完成,然后在迁移仪表板上检查数据复制状态。它应该处于健康状态。

迁移工程师

重启 RHEL 源服务器。

重启 RHEL 源服务器。请注意,在迁移控制面板上,数据复制状态显示为 “已停止”。

迁移工程师
Task说明所需技能

确定系统版本。

打开 RHEL 源服务器命令行界面,然后运行以下命令来识别系统版本:

#systemctl –version

迁移工程师

列出所有活跃服务。

要列出 RHEL 服务器上所有可用的活动服务,请运行以下命令:

#systemctl list-units --type=service

迁移工程师

列出所有正在运行的服务。

要列出当前在 RHEL 服务器上运行的所有服务,请使用以下命令:

#systemctl list-units --type=service | grep running

迁移工程师

列出所有加载失败服务。

要列出 RHEL 服务器重新引导或重新启动后加载失败的所有服务,请运行以下命令:

#systemctl list-units --type=service | grep failed

迁移工程师
Task说明所需技能

更改安全上下文。

在 RHEL 源服务器的命令行界面中,运行以下命令将安全上下文更改为 AWS 复制服务:

#restorecon -Rv /etc/rc.d/init.d/aws-replication-service

迁移工程师

安装核心实用程序。

要安装 SELinux 系统及其策略运行所需的核心实用程序,请运行以下命令:

#yum install policycoreutils*

迁移工程师

搜索审核日志并创建策略模块。

运行以下命令:

#ausearch -c "insmod" --raw | audit2allow -M my-modprobe

迁移工程师

显示my-modprobe-te文件内容。

my-modprobe.te 文件由 audit2allow 命令生成。它包括 SELinux 域、策略源目录和子目录,并指定与这些域相关的访问向量规则和过渡。要显示文件内容,请运行以下命令:

#cat my modprobe.te

迁移工程师

激活策略。

要插入模块并激活策略包,请运行以下命令:

#semodule -i my-modprobe.pp

迁移工程师

检查模块是否已加载。

运行以下命令:

#semodule -l | grep my-modprobe

加载 SELinux 模块后,您无需在迁移期间将 SELinux 设置为禁用模式允许模式。

迁移工程师

重启 RHEL 源服务器并验证数据复制状态。

打开 AWS Transform MGN 控制台,导航到 “数据复制进度”,然后重新启动或重启 RHEL 源服务器。现在,数据复制应在 RHEL 源服务器重新启动后自动恢复。

迁移工程师

相关资源