我的公司之前使用 Scientific Linux 6.2 来提供大多数服务,我想在 CentOS 上开始标准化。作为迁移的一部分,我还想禁用 SELinux,以便在采用率更高时重新启用。
我计划启动服务器并迁移必要服务的配置文件。考虑到 SELinux 和 SL 的变更,在迁移过程中我需要注意哪些影响?我很可能也会虚拟化物理服务器。
答案1
不,没有什么重大影响……
你基本上是在问,你是否可以将运行 SELinux 的 Red Hat 衍生操作系统移至没有 SELinux 的操作系统……或者真的,“我可以禁用 SELinux 吗?”
请记住,Scientific Linux 和 CentOS 均源自上游 Red Hat Enterprise Linux。用户空间类似,配置文件和二进制文件兼容。
惯例是一样的。在向 EL6 迁移期间,CentOS 落后于 RHEL 的时期,Scientific Linux 是 CentOS 的流行替代品。不过,它已经失去了势头,人们又开始使用 CentOS 作为主要的 RHEL 替代品。
答案2
从启用 SELinux 到禁用 SELinux 通常不是问题。相反的情况可能会有问题。所以我不会担心 SELinux 项目。事实上,您可能希望将其关闭以使迁移更容易。
至于 SL,我并不熟悉,但如果您希望标准化您的环境,您将需要确保 SL 的配置文件遵循 CentOS 使用的相同布局和设计。
如果您使用 CentOS 约定来命名、配置和其他文件,那么其他人将更容易管理您的系统。
答案3
通常,在相同版本的 RedHat 克隆版本之间切换非常容易。您所要做的就是下载并安装一些软件包,然后发布更新以引入自上次发布以来发布的所有补丁。由于您还想禁用 SELinux,因此这只是一个小小的额外步骤。
正如 ewwhite 所说,CentOS/ScientificLinux/RHEL 之间的差异都很小。它们主要归结为默认包含的存储库以及更新发布的速度。CentOS 和 SL 在设计上都与 RHEL 二进制兼容。
我还没有测试过这个,但你应该能够像这样轻松地完成迁移:
- 编辑
/etc/selinux/config
并设置SELINUX
为disabled
- 重启
- 删除将其定义为 SL 系统的软件包:
rpm -e --nodeps sl-release sl-indexhtml
- 转到您选择的镜像并浏览到 CentOS 6.2 目录
- 下载 rpms
centos-release-6
和centos-indexhtml-6
- 使用 rpm 安装这些包
- 执行完整更新,这也会将您带到 6.3:
yum clean all && yum update -y yum && yum update -y glibc && yum update
喝完咖啡、吃完三明治后,您应该就拥有了一个功能齐全的 CentOS 6.3 系统。之后,我还建议您检查已安装的软件包,以查找可能遗留的任何 SL 特定垃圾。
rpm -qa --qf "%{NAME} %{VENDOR} \n" | awk '/Scientific Linux/ {print $1}'
这将生成由 Scientific Linux 小组构建的所有仍安装的软件包的列表。您只需yum reinstall
对每个软件包发出一个命令,即可获取 CentOS 详细信息。类似这样的操作应该可以正常工作。
rpm -qa --qf "%{NAME} %{VENDOR} \n" | awk '/Scientific Linux/ {print $1}' | xargs yum reinstall -y
完成所有这些之后,也许还值得你花时间寻找旧的废弃软件包。安装软件包yum-utils
并运行package-cleanup --orphans
命令。这将为你提供已安装的所有软件包的列表。不是在当前配置的存储库中。在采取任何行动之前,请手动查看此列表。它将为您提供您从 SL 安装的 CentOS 中不可用的任何内容以及您手动下载和安装的 rpm。因此,有些孤儿包您可能需要,有些您可能不需要。
正如我所说,我最近没有测试过这一点,但我已使用上述步骤成功将 CentOS 系统转换为 RHEL。此外,在当今时代,SELinux 策略已经足够好,它们很少会给您带来问题。如果您决定重新启用它,您应该能够执行类似这样的操作。
首先编辑/etc/selinux/config
文件并更改SELINUX
为targeted
或strict
。然后重新启动以重新启用 selinux。然后您需要让系统重新标记所有内容。我还会恢复所有上下文以确保万无一失。
genhomedircon
restorecon -R / # Add a -v if you're *really* curious
一些守护进程不能很好地完成这一任务,因此您可能需要在完成此操作后重新启动。
答案4
我唯一能补充的是,你可能希望分两个阶段完成此操作。我会先进行 P2V,因为这里不太可能出现任何问题,并且对原始主机的侵入性最小。然后,你可以对 VM 进行快照,并尝试从 SL6 -> CentOS 进行就地迁移。
如果迁移不顺利的话,这似乎是回滚的最快方法。 不要忘记删除快照一切事物都经过测试之后。
如上所述,禁用 SELinux 几乎不会对任何事情产生影响。不过,我要说的是,它得到了很好的支持。问题是,它需要的工作比大多数人愿意付出的要多。您可能希望将其置于宽容模式,而不是禁用。稍后重新启用时不需要重新启动。仍会记录错误,但在宽容模式下不会发生拒绝。