第一部分 概述
初始版本:CentOS 8.0.1905
继 RHEL 8 发布之后,CentOS 社区也发布了让人期待已久的 CentOS 8,并发布了两种模式:
- CentOS stream:滚动发布的 Linux 发行版,适用于需要频繁更新的开发者
- CentOS:类似 RHEL 8 的稳定操作系统,系统管理员可以用其部署或配置服务和应用
CentOS 8 系列只有 64 位系统,没有 32 位。
1 | CentOS-8-x86_64-1905-boot.iso 16-Aug-2019 05:22 534M |
由于首个版本没有分享类似于 CentOS 7 的 Minimal 版本,这里使用 CentOS-8-x86_64-1905-boot.iso 进行安装,安装过程中选择 Minimal 安装,不过需要指定 repo 地址 (sysin)。
更新:CentOS 8.2.2004 终于增加了 Minimal iso。
因 CentOS 8 生命周期已于 2021.12.31 终结,本文更新加入了 AlmaLinux 8、Rocky Linux 8 的内容,笔者在后续文章尽量以 RHEL 8 兼容发行版
或者 RHEL 8 系列
来概称这集中发行版,因为它们是二进制兼容的发行版,仅仅在某些软件包名称和少量配置上略有差异。
1. CentOS 8 的新特性
-
DNF 成为了默认的软件包管理器,同时 yum 仍然是可用的
-
使用网络管理器(
nmcli
和nmtui
)进行网络配置,移除了网络脚本 -
使用 Podman 进行容器管理
-
引入了两个新的包仓库:BaseOS 和 AppStream
-
使用 Cockpit 作为默认的系统管理工具
-
默认使用 Wayland 作为显示服务器 (sysin)
-
iptables
将被nftables
取代 -
使用 Linux 内核 4.18
-
动态编程语言、Web 和数据库服务器
Python 3.6
是默认的 Python 环境,有限支持 Python 2.7Node.js
是在 RHEL 最新包含的,其他动态语言更新包括:PHP 7.2
,Ruby 2.5
,Perl 5.26
,SWIG 3.0
- RHEL 8 分享的数据库服务包括:
MariaDB 10.3
,MySQL 8.0
,PostgreSQL 10
,PostgreSQL 9.6
,和Redis 5
- RHEL 8 分享
Apache HTTP Server 2.4
以及首次引入的,nginx 1.14
Squid
版本升级到 4.4 ,同时也首次分享Varnish Cache 6.0
2. 版本历史
RHEL 8 | CentOS Linux 8 | AlmaLinux 8 | Rocky Linux 8 |
---|---|---|---|
RHEL Source Version | Release (YYMM) | Based on RHEL Source (Version) | Based on RHEL Source (Version) |
8.0 | 8.0.1905/ | N/A | N/A |
8.1 | 8.1.1911/ | N/A | N/A |
8.2 | 8.2.2004/ | N/A | N/A |
8.3 | 8.3.2011/ | 8.3 | N/A |
8.4 | 8.4.2105/ | 8.4 | 8.4 |
8.5 | 8.5.2111/ | 8.5 | 8.5 |
8.6 - 2022.05 | EoL | 8.6 | 8.6 |
3. 安装要点
详细步骤参看 CentOS 8 安装截图,这里列出几个注意点。
推荐使用 Minimal 安装介质(8.0 和 8.1 未发布 Minimal iso)。
先配置网络,否则某些项目无法配置。
-
Network & Hostname:点击 OFF 按钮为 ON,点击 Configure… 按钮,General 页面注意勾选 “Connect automatically with priority”,根据需要手动配置 IP 地址和 DNS。
-
Keyboard:默认 English (US)。
-
Language Support:下拉到最下面 “中文”,勾选 “简体中文” 和两个 “繁体中文”。
-
Time & Date:点选 Asia/Shanghai,Network Time 自动 ON(前面先配置了网络)。
-
Installation Source:如果是 Minimal 或者 DVD 介质,默认是 Local media。
如果是 boot 安装介质 (sysin),配置网络后自动修改为 Cloest mirror,也可以根据需要手动指定,比如可以使用 163 或者阿里云镜像:
https://mirrors.aliyun.com/CentOS/8/BaseOS/x86_64/os/
https://mirrors.163.com/CentOS/8/BaseOS/x86_64/os/如果已经发布新版,安装旧版需要使用手动填写 vault 地址:https://vault.centos.org/8.0.1905/BaseOS/x86_64/os/,URL Type 为 repository URL。
-
Software Selection:Minimal Install,请勿勾选 “Development Tools”(实际上安装的组件有限,需要手动安装),虚机勾选 “Guest Agent”(Rocky Linux 和 AlmaLinux 无此选项)。
-
Installation Destination:创建分区,可选两种参考方案。
-
默认分区方案:点选 Custom,默认使用 LVM,点击 “Click here to create them automatically” 自动创建,手动调整:删除 /home,将 SWAP 修改为整数 4 GiB,/boot 默认 1024 MiB,剩余分配给 /。
-
在 VM 环境中,简化分区方便调整大小:
-
新建虚机,默认磁盘可以根据需要调整大小,比如 60G,这个直接用于 / 目录(可以合并 /boot),本例创建独立
/boot
(容量 2G,默认 1G)。 -
新增一块磁盘用作 SWAP,比如默认 4G。或者不创建 swap 分区,进入系统后创建文件如
/swap.img
作为 swap 分区。这样扩容就非常方便,虚机环境可能用不上 LVM 的便利。
-
-
-
KDUMP:默认启用。
-
Security Policy:暂无,忽略。
-
Root Password:创建 root 密码。
-
User Creation:新建额外的(管理员)账号,可选。
“Development Tools” 有哪些软件?
1 | dnf groupinfo "Development Tools" |
手动安装开发工具命令:dnf groupinstall "Development Tools"
第二部分 配置
1. 创建文件作为 SWAP 分区
如果在安装时候没有创建 SWAP 分区,知识兔手动创建。
这是最简单的方式,直接在 / 目录下创建一个文件作为交换分区,可以非常灵活完美的启用和禁用 swap 并在线调整大小。
(1)创建要作为 swap 分区的文件 (sysin):
增加 4GB 大小的交换分区,则命令写法如下,其中的 count 等于想要的块的数量(bs*count = 文件大小)。
1 | 这里定义为 /swap.img |
(2)创建 SWAP 分区文件系统:
1 | mkswap /swap.img #mkswap - set up a Linux swap area |
(3)启用交换分区文件:
1 | swapon /swap.img #启用 swap 文件 |
此时使用 free -m
命令可以看到 Swap 的容量等于原有容量加上上述创建文件容量之和。
(4)编辑 /etc/fstab
开机自动加载上述 swap 文件:
增加如下一行。
1 | /swap.img none swap defaults 0 0 |
直接命令添加:
1 | sudo sh -c "echo'/swap.img none swap defaults 0 0'>> /etc/fstab" |
(5)取消 swap 文件
1 | swapoff /swap.img |
然后编辑 /etc/fstab
,删除上述添加的一行即可。
Ubuntu 20.04 中默认使用 /swap.img
文件作为 SWAP 分区,可以直接 swapoff 并删除原文件,然后重新创建同名文件来简单扩容。知识兔这里借鉴了 Ubuntu 的做法,并推荐使用该种方式。
2. 格式化网卡命名
即禁用 consistent interface device naming
(1) 编辑 grub 配置文件
1 | 直接用 sed 命令替换 |
(2) 运行如下命令重建 grub.cfg 文件
1 | legacy boot mode: |
(3) 重命名网卡配置文件
1 | 重新对文件进行命名: |
(4) 重启生效
1 | reboot |
参考:官方文档
3. 配置网络
RHEL 8 系列完全使用 nmcli 来管理网络 (sysin),虽然仍然保留了旧版的 network-scripts
及 network.service,但是将在 RHEL 9 中废弃。
推荐使用 nmcli 命令行工具,另外有文本图形界面的 nmtui 操作比较简单,这里不再赘述。
nmcli 命令帮助:
命令不支持自动补全,但是可以通过 - h 参数逐步获得帮助
1 | # 说明 nmcli 后面的命令关键字都可以用第一个字母简写来标识,例如: |
创建一个完整的配置文件:
1 | IFACE=`nmcli dev|grep ethernet|awk '{print $1}'` |
可以配置的参数选项:
ipv4.[method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, never-default, may-fail, dad-timeout]
重启网络:
比如配置了静态路由,使用 nmcli c reload
无法生效,需要重启网络
1 | systemctl restart NetworkManager.service |
备注:CentOS 8 (默认安装) 重启网络 “systemctl restart network” 已经不可用。
RHEL 8 系列也可以手工配置 ifcfg,使用 nmcli 来生效新的网络配置(不推荐)
4. 修改主机名
说明:与 CentOS 7 方法相同
- 即时生效
1 | hostname sysin #设置主机名为 sysin |
- 永久生效
1 | vi /etc/hostname #编辑配置文件 |
5. 激活 cockpit web console
CentOS 8 默认集成了 cockpit,登录画面提示激活方法(模板未启用):
1 | systemctl enable --now cockpit.socket |
然后通过浏览器访问:http://
6. 关闭 SELinux
SELinux 是 Linux 中最古老的一种 MAC(强制访问控制,Mandatory Access Control)模型,它是美国国家安全局的产品。除了在一些对安全有强制的要求的行业,SELinux 更多的以难以管理和排错而 “闻名”,通常认为其 “弊大于利”,许多应用安装文档中都要求关闭 SELinux。
编辑配置文件 /etc/selinux/config
:
1 | 修改 SELINUX=enforcing 为 SELINUX=disabled,即替换行 |
使配置生效:
1 | setenforce 0 #0=permissive, SELinux prints warnings instead of enforcing. |
7. 配置 firewalld
关闭 firewalld(模板配置)
CentOS 8 主要改动和 RedHat Enterprise Linux 8 是一致的,基于 Fedora 28 和内核版本 4.18
,其中网络方面的主要改动是 用 nftables 框架替代 iptables 框架作为默认的网络包过滤工具。
1 | systemctl stop firewalld.service #停止 firewall |
8. 安装 EPEL
EPEL 的全称叫 Extra Packages for Enterprise Linux。EPEL 是由 Fedora 社区打造,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集。EPEL 适用于 RHEL 及衍生发行版如 CentOS 等。
1 | yum -y install epel-release |
9. 更换国内镜像
示例更换为阿里云镜像:
1 | 替换 |
10. 排除不需要的更新包
修改配置文件:
1 | echo 'exclude=kernel* centos-linux-release' >> /etc/yum.conf |
1 | 备注:安装某些软件包需要新版内核支持,需要删除以上配置。 |
11. 更新软件包
1 | 清理 |
12. 安装一些必备工具
1 | # 一些基本工具最小化安装可能没有 (经测 vim 和 wget 等没有安装) |
fd 命令(fd-find,强烈推荐)
1 | musl libc 编译版本 (推荐) |
13. 配置网络时间同步 NTP
CentOS 7 开始默认使用 chrony 时间同步,可以使用恢复使用 ntp。
默认配置文件:
1 | cat /etc/chrony.conf |
查看状态:
1 | chronyc sources -v |
14. 安装 SNMP
1 | yum -y install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils |
15. 虚机安装 VM-tools
在系统安装时候勾选了 “Guest Agent”,将自动安装 open-vm-tools
1 | 手动安装 open-vm-tools: |
16. 安装图形界面
基于特定场景需要,一般不用安装
1 | yum grouplist #查看可安装的组件 |
17. Shell 配置
Zsh
这里是针对当前用户配置。全局配置请参看其他文章,这里直接使用全局配置文件即可。
1 | Zsh |
18. 清理并制作镜像模板
清理 dnf/yum 缓存
1 | dnf autoremove |
清理临时文件夹
1 | 正确方式两句命令 |
清空历史记录
第三部分 OVF 下载
下载体验:
下载仅供下载体验和测试学习,不得商用和正当使用。
下载体验