很多人对 Rocky Linux 感到陌生,毕竟到现在,它才诞生一年多一点的时间。虽然它叫 Rocky Linux 8,但是在它之前并没有 1、2、3、4、5、6、7。从某些意义上说,它是一个全新的操作系统。正因为此,我打算写一个系列文章,以帮助系统管理、运维等技术人员快速掌握 Rocky Linux 的生产最佳实践。
既然是 Rocky Linux 的第一个大版本,为什么从 8 开始呢?再从某些意义上说,它又是一个很老的、久经考验的操作系统。Rocky Linux 的诞生,是因为 Redhat 宣布会在 2021 年的最后一天,停止对 CentOS 8 稳定版的维护。CentOS 是主流的社区版企业级操作系统,被很多企业使用。在 Redhat 宣布 CentOS 稳定版会停止维护后,引发了 CentOS 用户的强烈不满。需要有新的社区版的企业级操作系统来代替 CentOS。因此,CentOS 的创始人 Gregory Kurtzer 发起了 Rocky Linux 项目。Rocky Linux 与 CentOS Linux 类似,都是 RHEL 的再编译版本。
“Rocky Linux 最佳实践”系列是我“云原生运维指南”的一个子系列。云原生运维指南包括:Rocky Linux 最佳实践、配置管理工具 (Ansible、SaltStack、Puppet、Git & GitLab)、ceph 最佳实践、OpenStack 最佳实践、IaC (Terraform、Pulumi)、容器 (Docker、Containerd)、Kubernetes 最佳实践、Helm 最佳实践、服务网格、监控、零基础学 Golang 、TypeScript、云原生 DevOps 平台——Three Chicks (三只小鸡)。
在“云原生运维指南”系列中,”Rocky Linux 最佳实践“是最基础的一部分,因为它介绍的 Linux 操作系统,是我们运行软件的基础。
1.1 为什么要学习 Linux 系统
互联网、移动互联网连接了世界的每个角落,人类社会正加速进入万物互联时代。在这个进程中,云计算、大数据、物联网、人工智能等计算机科学领域的技术,越来越多的应用于我们的生活。我们对网络系统的依赖也与日俱增,对其稳定性的要求愈发严苛。现在,我们已经很难接受应用程序的延迟和卡顿了:和远方的亲朋分享视频时,提示上传数据失败;在排队结账时,支付 APP 无法打开;进入公共场所时,健康码扫描失败……这些糟糕的体验都让人很难忍受。人们对便捷生活的期望,无时无刻不在鞭策 IT 从业者努力提升技能。
在新冠疫情的持续冲击下,经济发展也受到了影响。企业比以往更青睐有能力降本增效的员工,并且这将成为招聘要求之一。通过人类社会的发展规律不难看出,人类学习掌握知识或工具的原因之一,在于它们降低成本的同时,还能带来生产力的提升。比如驾驶汽车,让我们的出行更便捷高效;使用手机,让我们的交流更便捷高效;操作电脑,让我们的工作更便捷高效。在互联网技术如此发达的今天,Linux 甚至比汽车还要常见,它已成为大多数技术创新的重要组成部分。从最小的智能设备到世界上最大的超级计算机都少不了它的支持。当然,汽车系统通常也是 Linux。
云原生架构、SRE 这些岗位,都强调“谁开发谁运维”这种全新的工作模式。在高度竞争的信息时代,技能单一的 T 型人才将逐渐失去竞争力。要努力进化成 π 型人才,做到真正有“两把刷子”,才能在职场站稳脚跟。
Linux 是常见的服务器,不论开发人员、测试人员、运维人员还是 SRE 等,大部分是在 Linux 操作系统上做道场。所以,只有熟悉了 Linux 操作系统,才能让程序更高效、稳定的运行,进而做到为企业降本增效。
1.2 安装 Rocky Linux 8
在使用操作系统前,甚至于在使用任何系统、组件、应用前,第一步都是先让它运行起来。作为学习 Rocky Linux 操作系统的前提条件,你需要找个地方运行它。Rocky Linux 支持物理硬件和虚拟硬件。物理硬件就是物理服务器、笔记本或台式机电脑等。物理服务器比较贵、笨重,并且用途单一;笔记本或台式机安装 Linux 系统,不便于我们办公。所以虚拟硬件是我们学习 Rocky Linux 比较方便的、也是最经济的选择。
我们可以通过虚拟化工具运行 Linux 系统。Windows 系统中常见的虚拟化工具有 VMware Workstation (我们示例中使用的工具,该工具需要激活) 和 VirtualBox (免费),macOS 中 Intel 内核的选择会多一些,M1 内核可以使用 UTM。不论那种虚拟化工具,安装步骤都差不多。
在本章中,我们一起安装 Rocky Linux 8 系统,以便你能够跟随本书的介绍,学习 Linux 知识。我会按照典型的安装过程将 Rocky Linux 安装在虚拟机上,并讨论此过程中每个步骤的可用选项。
1.3 准备工作
本节的示例中,我们采用 VMware Workstation 进行演示。无论是在笔记本电脑上,还是在物理服务器上,Rocky Linux 系统的安装过程并无太大差异。关于 virt-mananger 的虚拟化知识,我会在 “OpenStack 最佳实践”中介绍。
本文假设你已经有了虚拟化环境 (VMware Workstation 或者 virtualBox 等)。首先我们从 Rocky Linux 官网下载 需要的 Rocky Linux 最新稳定版的 ISO 镜像,把它下载到指定的路径。写此篇时,最新的稳定版本系统是 8.5 版本,所以我这里下载的就是 Rocky Linux 8.5 x86_64 ISO 镜像。
1.启动 VMware Workstation:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-d5713fd5f5c71255cf0bae00de6dd781.jpeg)
2.创建虚拟机,点击界面中的“创建新的虚拟机”按钮,根据”下一步“向导选择“自定义(高级)”选项,根据“下一步”向导选择我们刚才下载的 ISO 镜像:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-944a38ce2ccb92142c354214ca221b3c.jpeg)
3.选择客户机操作系统,我们安装的 Rocky 操作系统,属于 Linux 系列。VMware workstation 中目前没有对应的 Rocky 版本,我们可以选择 ”CentOS 8 64 位“:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-c0e4dc25936fa4f667c9da9e521a8f97.jpeg)
4.修改虚拟机名称及安装路径。此处的虚拟机名称是 VMware workstation 显示的名称,和操作系统名称是不同的概念和内容:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-2916b5269a21cbdb25e9ad6befc97150.jpeg)
5.设置虚拟机处理器数量:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-0d7b2c4a168e8fd69cb8f69dc213a5f3.jpeg)
6.设置虚拟机内存:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-9af704fce14457603b15aaf0cc9319ae.jpeg)
7.设置虚拟机网络类型,我们在此处选择 NAT 网络:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-96cda5731f1b17315e945d900de8bc9a.jpeg)
8.设置虚拟机 I/O 控制器类型:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-4f9f19432d5403b19e2a860588c42099.jpeg)
9.选择虚拟机磁盘类型:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-119e724779e4776ee0da100060a732d1.jpeg)
10.选择”创建新虚拟磁盘“,根据”下一步“向导,设置磁盘容量。在我们的实验环境中,不小于 ”20G“ 即可:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-4c70d274d0b07f030782b90adc7d99f0.jpeg)
11.点击”下一步“,直到点击”完成“按钮。
1.4 启动安装
在新建的虚拟机标签页中点击“开启此虚拟机”按钮,正式安装操作系统。此时会进入安装前的选项,如下图:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-263a0ac42bdc834aab66e758ea15c158.jpeg)
有三个选项可供选择,白色字体表示正在选择此项。我们需要在 60s 内通过键盘的上下方向键做出选择,否则会执行默认选项。默认是 “Test this media & install Rocky Linux 8” 的选项。
•Install Rocky Linux 8:此选项将引导并运行安装程序。•Test this media & install Rocky Linux 8:此选项会先检测正在使用的镜像有没有被损坏,并确保安装可以顺利进行。建议对第一次使用的镜像,执行此项。在虚拟机中,检查过程大约会执行一分钟。检查结束,会根据检查结果执行安装或者退出安装。•Troubleshooting:该选项包含其他子选项,以防在安装、运行系统或硬件方面出现问题,在安装过程中遇到问题,可以使用此选项:•Install Rocky Linux 8 in basic graphics mode:该选项用于使用旧显卡或不支持显卡的系统。在发生可视化问题时,可以选择该选项帮助安装系统。•Rescue a Rocky Linux system:当系统启动出现问题时,或者当我们想要访问它进行内省时 (检查可能损坏的系统时),可以使用这个选项。它将启动一个基本的内存系统来执行这些任务。•Run a memory test:对内存进行检查,确保服务器的内存正常。•Boot from local drive:在安装了操作系统后,选择从安装介质引导。•Return to main menu:回到先前的菜单。
在图 1-11 中,我们看到前两个选项都有不同颜色的字母存在。第一个选项的特殊字母是 I
,第二个选项的特殊字母是 m
。我们可以通过 ”i“ 或 ”m” 键,快捷的选择。
选项下方还有一行蓝色字体,提示我们通过 Tab
键可以对选项进行配置。
我们选择 Test this media & install Rocky Linux 8 选项,然后输入 Tab
键,配置网卡名称为 eth0,输入的内容如下:
net.ifnames=0 biosdevname=0
接着输入“回车”键,让安装程序检查我们正在使用的 ISO 镜像,如图 1-12:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-7c6f03aa822bdc274a16da72fa0d1e0d.jpeg)
检查完成后,会进入安装界面。安装界面遵循一步步的方法,每一步都有不同的选项需要选择。
1.5 Localization
安装的第一步是选择安装语言,我们选择 English,然后是 English (United States):
![null](/wp-content/uploads/2022/02/wxsync-2022-02-defcffc317c84246c5eb573c9a0a0dbb.jpeg)
也可以在列表下的框中输入语言进行搜索。选择一种语言后,我们可以单击 Continue 按钮继续,进入安装摘要界面:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-38b7c1c29a87257e136461e71223abd9.jpeg)
INSTALLATION SUMMARY 界面,显示了所有需要配置的部分,其中许多 (没有警告标志和红色字体的部分) 已经预先配置了默认值。
1.5.1 Keyboard
可以点击 “Keyboard” 图标,查看它的默认设置,以及添加新的键盘布局:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-ca5e1810065f93ca8394c334a2f74723.jpeg)
可以通过点击 +
按钮实现。下面是添加中文的示例。我们搜索 Chinese,然后选择它,点击 “Add”:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-0e4b4146b725a1effa1010d4f4ebcff8.jpeg)
1.5.2 Language Support
在 “Language Support” 中,可以添加语言。我们以添加 “中文” 为例:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-48eee2fa7226eef2f5dbbd17fb1c84d5.jpeg)
在搜索框中输入 “Chinese” ,选择“中文”,勾选“简体中文”。
1.5.3 Time & Date
默认的时区是美国纽约,我们有两个选择:
•使用本地时区。如果你的服务器都在本地时区,建议使用这个方法。在本示例中,我们选择亚洲/上海时区。
![null](/wp-content/uploads/2022/02/wxsync-2022-02-e7251cf1b637d10f82d07f35e87c2847.jpeg)
•使用协调世界时 (UTC)。如果你的服务器遍布全球,想让服务器都有相同的时区,推荐使用 UTC。
![null](/wp-content/uploads/2022/02/wxsync-2022-02-458a60c8c0a6302e55e93488c3951f36.jpeg)
我们选择亚洲/上海时区,作为本操作系统的时区。
在 “Time & Date” 界面,有一个选项可以选择 “Network Time”,让服务器时钟与其他服务器同步。这个选项只有在网络配置好后才能选择。我会在配置完成网络后,回到这里,再次查看 ”Network Time“ 的配置。
1.6 Software
除了 “Network Time”,“Localization” 部分已经配置完成了,现在我们进行 “Software” 部分的配置。
1.6.1 Installation Source
这个选项用于配置远程源,当我们使用的 ISO 镜像只包含了操作系统本身时,可以通过这个选项配置远程的 dnf 源。现在,我们使用的是完整的 ISO 镜像,它已经包含了完成安装所需的所有软件包,所以此项无需配置。
1.6.2 Software Selection
在这个步骤中,我们可以选择要安装在系统上的一组预定义包,以便它可以执行不同的任务。虽然在这个阶段安装包会非常方便,但我们会采用更灵活的方式,选择 “Minimal Install”,只安装基本功能。当以后需要某个软件包时,我们再手动安装它:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-6ffbb938b00858c2db7f33135a711f17.jpeg)
1.7 System
现在我们开始系统配置部分,首先配置操作系统的安装位置。
1.7.1 Installation Destination
”Installation Destination“ 的图标上有警告的标志,说明里面的一些选项需要我们配置。这一部分非常重要,它定义了系统在磁盘上的部署方式、磁盘分区及工具。下图是默认的 “Device Selection” 界面,只有一块本地标准磁盘,这是我们在创建虚拟机时,设置的 20G 容量的那块磁盘。“Specialized & Network Disks” 部分有一个添加磁盘的选项,而没有现成的磁盘。“Storage Configuration” 部分默认是自动分区。如图 1-21 所示:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-b490a91994c45804379711f9f1c7ec4e.jpeg)
点击 “Done” 按钮,完成磁盘部分的最小化设置。
1.7.1.1 Local Standard Disks
本地标准磁盘用来安装操作系统。可以有多块本地标准磁盘,我们选择特定的用作系统的安装:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-12e91bc391882733ac1b967b3cf1b0fb.jpeg)
在图 1-22 中,有三块可用的磁盘,选择使用第一块 (sda) 和第二块 (sdb)。
在我们的安装示例中,仅有一块可用磁盘,而且它已经被选中了:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-57127fbb9f42ca132eb1cea15fc26ac2.jpeg)
1.7.1.2 Storage Configuration
该选项会完成磁盘分区的操作:
•/boot:存放系统内核及在引导过程中提供帮助的文件 (例如初始引导镜像、initrd)。•**/**:根文件系统,是系统所在的主要存储空间。其他磁盘或者分区会以目录的形式挂载到 /
目录下,也就是挂载点。•/home:用户的主目录。
1.7.2 Kdump
Kdump (Kernel Dump) 是内核崩溃转储机制。在系统崩溃时,kdump 将从系统中捕获信息,这有助于确定崩溃的原因。Kdump 需要保留一部分系统内存,这部分内存将不能被其他用户使用,关于这部分内存大小,我们使用默认值即可。
![null](/wp-content/uploads/2022/02/wxsync-2022-02-d6af2caacae076387fa3692c0538c4a8.jpeg)
点击 “Done”,进行 “Network & Host Name“ 的配置。
1.7.3 Network & Host Name
这部分设置系统的网络连接,我们从 ”Network & Host Name“ 的图标上,可以看到 ”Not connected“。
在虚拟机环境中,对外部网络的访问由虚拟化软件处理。默认配置使用网络地址转换 (NAT) 和动态主机配置协议 (DHCP),它们为虚拟机提供了网络配置并允许访问外部网络。
在配置页面上,可以看到为主机分配了多少网络接口 (网卡)。在我们的安装示例中,只配置了一个网卡 (eth0),如下所示:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-8a48fd98403c3c939f880d3ae9f12ca8.jpeg)
首先,我们单击 eth0 右边的 ON/OFF
启用网络连接。现在是关闭的状态:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-c94238df39f66fef751288c9d7387f7a.jpeg)
点击 OFF
按钮,开启网络连接:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-9b523c3cef2b787a506609f2c9f02ae5.jpeg)
开启后,我们会看到类似图1-27 中的网络接口的配置信息,包括 IP 地址、默认路由、DNS。
为了使此更改永久生效,我们单击屏幕右下角的 Configure
按钮来编辑接口配置:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-352a1cd40b19a054a87393825dd382a2.jpeg)
“General” 是主配置项,我们点击 ”General“ 切换标签页,选择 “Connect automatically with priority”,并保持值为 0,如图所示:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-b7bb0d9ccbfeb339da8498adf4465cc1.jpeg)
点击 “Save” 按钮使配置永久生效,并在默认情况下启用该网络接口。
现在是时候给虚拟主机命名了。在 ”Network & Host Name“ 界面,最下方的 ”Host Name“ 栏中输入主机名,默认是 ”localhost.localdomain“,我使用 ”rocky8-host.aiops.red“ 作为主机名,你可以自定义该名称,然后点击 ”Apply“ 按钮应用主机名的配置。最终 “Networking & Host Name” 界面看起来如下:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-81cfd754ad5c306455d92fe1bccac2b2.jpeg)
点击 “Done” 回到安装主界面,可以看到 ”Network & Host Name“ 图标上的 ”Not connected“ 已经变成了 “Wired (eth0) connected”。
在“启用网络连通性”一章中,我会更详细地介绍 Rocky Linux 操作系统中网络可用性的配置选项。
现在系统已经连接到网络了,我们回到 “Time & Date”,可以看到 “Network Time” 已经由安装器自动开启了。
1.8 Security Policy
点击 “Security Policy 配置界面”,我们会看到在系统中默认启用的安全配置文件列表:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-3408757106a7fe2a048a41391dd1bd28.jpeg)
安全配置文件有一些我们在本次安装中没有涉及的内容 (比如独立的 /var 或 /tmp 分区)。我们可以点击 “Apply security policy” 的 ON
关闭它,然后点击 Done:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-5fdbdebac44bce87df7cad623757bc5e.jpeg)
关于这个主题的更多内容将在第11章,使用 OpenSCAP 的系统安全配置文件中讨论。
1.9 User Settings
”User Settings“ 部分用来设置 root 用户的密码,以及为系统创建新用户。
1.9.1 Root Password
Unix 或 Linux 系统的管理员用户称为 root
。
单击 “Root Password” 启用 root 用户,尽管这不是必需的,并且在安全受限制的环境中,会限制 root 用户的使用。我们将在本章中这样做,以便学习如何这样做,并解释所涉及的案例。
点击 “Root Password” 之后,我们会看到 “ROOT PASSWORD” 的对话框,用来设置 root 用户的密码:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-03807acbe4ac84211ba2e4a150a633d9.jpeg)
密码规范建议:
•10 个字符以上•大小写•数字•特殊字符 (如 $、@、%、&)
如果密码不符合这些要求,它将警告我们,我们需要单击两次 “Done”,才能使用弱密码。
现在可以通过单击 “User Creation” 为系统创建用户了:
1.9.2 User Creation
点击 ”User Creation“ 为系统创建用户,界面如下:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-268807eddc2998e368d0f3bac869828e.jpeg)
创建用户时的密码与修改 root 密码要求的密码规范一样。
勾选 “Make this user administrator” ,该用户会被设置为管理员账号。
作为最佳实践的一部分,不要为 root 用户和普通用户设置相同的密码。
在第五章”使用用户、组和权限保护系统“中,会介绍如何使用 sudo 工具设置用户的管理权限。
单击 ”Done“ 返回到主安装程序屏幕。安装程序已经准备好。安装页面看起来是这样的:
![null](/wp-content/uploads/2022/02/wxsync-2022-02-e292a859d42db2cd43bd05b236820820.jpeg)
点击 “Begin Installation” 启动安装进程。如果忽略了启动安装所需的任何步骤,“Begin installation” 按钮将是灰色,无法单击。
![null](/wp-content/uploads/2022/02/wxsync-2022-02-7e1a2da5304a6c6dd54a17c56a3263c4.jpeg)
安装完成后点击 “Reboot System”,重启后,系统就可用了。
别忘了从虚拟机中卸载 ISO 镜像 (或从服务器中移除 u 盘),并检查系统中的引导顺序是否正确配置。
你的第一个 Rocky Linux 8 现在已经准备好了!
在虚拟机或物理中安装 Rocky 还是很简单的,并且我们可以用它来运行服务。在公有云上,安装操作系统的过程与此截然不同,因为机器是从镜像实例化来运行的。在下一章中,我会为大家介绍如何在公有云的虚拟机中运行 Rocky。
1.10 本章总结
Rocky Linux 是一个全新的操作系统,在 CentOS 逐步退出舞台的时候,极有可能成为主流的 Linux 系统。本书中的所有技术点,都会结合本人在生产中积累的 Linux 经验进行讲解。学习这些内容的最好方式就是多做练习。
关于安装,本书讨论了不同的场景:物理机、虚拟机以及云实例。在本章中,我们重点讨论了物理机及虚拟机。
在使用物理硬件时,你可以购买性价比高的二手设备或者 mini 服务器,甚至是使用笔记本电脑作为 Linux 体验的主要安装载体。
在虚拟机的情况下,我介绍了如何在虚拟化工具中运行 Linux 系统。
在本章之后,你已经有了 Rocky Linux 8 操作系统了,这是一个好的开始,可以用来学习和练习以后章节中的知识和技巧。
在下一章中,我会讨论一些安装 Linux 系统的高级选项,如自动安装、使用云实例,以及相关的最佳实践。
本篇文章来源于微信公众号: 魏文第