CentOS 8 《快速部署》
CentOS Linux & CentOS Stream
在 CentOS 官网你可以看到有两大块,一个是 CentOS Linux 和 CentOS Stream,有什么区别呢?
- CentOS Stream 是一个滚动发布的 Linux 发行版,它介于 Fedora Linux 的上游开发和 RHEL 的下游开发之间而存在。你可以把 CentOS Streams 当成是用来体验最新红帽系 Linux 特性的一个版本,尝鲜使用。
- CentOS Linux 就是普通使用的 CentOS 的系统了,如果追求稳定性,和正式使用,日常使用,还是强力推荐使用这个的。
New Featrue
RHEL8 自称是混合云智能操作系统,官方的 slogan:任何云、任何工作负载,一个操作系统就够了,为业务运营而构建,强化对虚拟化技术、容器技术、云端技术、自动化运维及 DevOps 的支持和融合。
- DNF 成为了默认的软件包管理器,同时 yum 仍然是可用的
- Cockpit:新增的 RHEL Web 管理工具,抽象系统管理任务,控制台提供直观的 GUI,用于管理、监控 RHEL 系统,从虚拟机的运行情况到整体系统性能
- Red Hat Insights:用于系统健康状态分析服务,有助于识别和修复从安全漏洞到稳定性等一系列问题
- Red Hat Universal Base Image (UBI):提供自由分发的企业级基础容器镜像,开发人员可以在其上构建和交付应用程序
- Ansible DevOps:系统角色是与配置的 Ansible 模块,可以使用现成的自动化工作流来处理常见的复杂系统管理员任务,增强了自动化运维功能
- 使用网络管理器(
nmcli
和nmtui
)进行网络配置,移除了网络脚本 - 使用 Podman 进行容器管理
- 引入了两个新的包仓库:BaseOS 和 AppStream
- 使用 Cockpit 作为默认的系统管理工具
- 默认使用 Wayland 作为显示服务器
iptables
将被nftables
取代- 使用 Linux 内核 4.18
- 提供 PHP 7.2、Python 3.6、Ansible 2.8、VIM 8.0 和 Squid 4
主流存储设备
DAS (Direct Attached Storage)
外部存储设备直接挂在到服务器内部总线。
- 优点:解决单台服务器的存储空间扩展、高性能传输要求。
- 缺点:DAS 仅供操作系统使使用,不适合存储大量数据,比如:数据库的数据文件。
NAS(Network Attached Storage)
独立于服务器,单独为网络数据存储而开发的一种专业的文件服务器,NAS 服务器中集中连接了所有存储设备,存储容量可以较好的扩展,支持各种网络文件传输协议:FTP、HTTP、SSH、CIFS、WebDAV 等,存储由 NAS 负责,对服务器性能基本没有影响。
- 优点:使得持久化功能与操作系统解耦,成为独立的服务、支持丰富的传输协议。
- 缺点:受限于实际环境中网络性能,由于与操作系统解耦,不支持块级别的操作,网络传输较慢。
- 补充:有些企业级的 NAS 大多支持 iSCSI,一定程度上扩展了 NAS 的功能、这样的 NAS 也可以支持块设备了,尽管如此,其速度依然是瓶颈,用于速度要求不高的场景。(文件共享)
SAN( Storage Area Network)
区域存储网络,将磁盘阵列单独通过光纤交换机连接起来,形成一个光纤通道的网络,然后这个网络再与企业局域网连接,以实现高速存储的目的。
- 优点:光纤交换机可以直接充当块存储设备挂载到服务器系统。
- 缺点:价格昂贵。
iSCSI
iSCSI 又称 IP SAN,利用廉价的以太网以及相关设备替代昂贵的光纤网络及设备,在高速以太网上实现 SCSI 协议的传输,从而以较低的成本获得相对较高的存储性能。
- 优点:价格低。
服务器端存储技术
高频使用 RAID 方案
RAID 0 + 1 或 RAID 1 + 0
LVM
LVM 是建立在物理硬盘和分区之上的一个逻辑层,用来提高磁盘管理的灵活性,形成一个存储池。可以在卷组上随意创建逻辑卷(Logical Volumes),称之为逻辑卷,并可以在逻辑卷上创建文件系统,与直接使用物理存储在管理上相比,LVM 具有更好的灵活性。
服务器文件系统选择
Linux 文件系统的核心是虚拟文件系统 VFS,通过 VFS,Linux 可以支持几乎所有的文件系统。
VFS 是谓语 Linux 内核空间中的一个文件系统的中间层,是用户访问和使用某个具体文件系统的桥梁,上层用户空间访问文件系统实际是访问 VFS,而非具体的某个文件系统,通过 VFS 映射为具体的文件系统格式,因此,Linux 用户空间的应用完全不必关心具体用的是什么文件系统,使用统一的标准接口进行文件操作即可。如有新的文件系统加入则只需要安装相应驱动即可使用,无需重新编译 Linux 内核。
CentOS 8 安装参数
Cockpit
Cockpit 是一个基于 Web 的服务器管理工具,可用于 CentOS 和 RHEL 系统。最近发布的 CentOS 8 和 RHEL 8,其中 cockpit 是默认的服务器管理工具。它的软件包在默认的 CentOS 8 和 RHEL 8 仓库中就有。Cockpit 是一个有用的基于 Web 的 GUI 工具,系统管理员可以通过该工具监控和管理 Linux 服务器,它还可用于管理服务器、容器、虚拟机中的网络和存储,以及检查系统和应用的日志。
# 安装cockpit
[root@master ~]# dnf install cockpit -y
# 启动服务
[root@master ~]# systemctl start cockpit.socket
# 设为开机自启动
[root@master ~]# systemctl enable cockpit.socket
# 访问cockpit管控台:
https://192.168.31.201:9090/
网络配置管理
CentOS 8 默认没有安装 network 服务,只能通过 NetwareManager 管理网络配置,network 已经被废弃,取而代之的是 nmcli 或 nmtui 命令。
nmcli 命令进行网络配置
# 获取网卡列表
[root@master ~]# nmcli device
[root@master ~]# nmcli d
# 查看网卡连接信息
[root@master ~]# nmcli connection show eth0
# 启用网卡连接
[root@master ~]# nmcli c up eth0
# 停止网卡连接
[root@master ~]# nmcli c down eth0
# 删除网卡连接
[root@master ~]# nmcli c delete eth0
# 创建网络连接并配置静态IP地址
[root@master ~]# nmcli connection add type ethernet con-name eth0 ifname eth0 ipv4.addresses 192.168.31.201/24 ipv4.gateway 192.168.31.1 ipv4.method manual
# 修改ip地址
[root@master ~]# nmcli connection modify eth0 ipv4.addresses '192.168.31.221/24'
[root@master ~]# nmcli connection up eth0
nmtui 文本界面进行网络配置
[root@master ~]# nmtui edit eth0
PXE 自动化批量部署 CentOS 8
PXE(preboot execution environment),预启动执行环境,PXE 可以通过网络实现多个计算机的批量部署(无应答式自动批量部署)。
架设 PXE 服务器最为重要的两个服务:DHCP 和 TFTP 服务,DHCP 负责给网络中的计算器分配 IP、NETMASK、GATAWAY 等必要的网络配置,TFTP 负责传输文件。
配置主机名与 IP
# 修改主机名
[root@master ~]# hostnamectl set-hostname master
# 修改hosts文件
[root@master ~]# vim /etc/hosts
192.168.31.201 master
关闭防火墙
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
安装 PXE 套件
# 安装DHCP、TFTP、HTTP
[root@master ~]# dnf install dhcp-server tftp tftp-server syslinux httpd xinetd -y
配置 DHCP
# 修改DHCP服务的主配置文件
[root@master ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 192.168.31.0 netmask 255.255.255.0 {
range 192.168.31.50 192.168.31.80;
option routers 192.168.31.1;
option domain-name-servers 192.168.31.1;
# IP of PXE Server
next-server 192.168.31.201;
filename "pxelinux.0";
}
配置 TFTP 服务
# 修改DHCP服务的主配置文件
[root@master ~]# cat /etc/xinetd.d/tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -v -s /var/lib/tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
创建启动文件目录、复制启动文件
mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir /var/lib/tftpboot/networkboot
cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot
cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot
cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot
cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot
cp -v /usr/share/syslinux/ldlinux.c32 /var/lib/tftpboot
cp -v /usr/share/syslinux/libutil.c32 /var/lib/tftpboot
httpd 管理安装文件
# 挂载镜像文件
[root@master ~]# mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
# 复制镜像安装文件到httpd服务的根文档目录,并将Web服务的默认显示页面删除。
[root@master ~]# cd /mnt/
[root@master mnt]# cp -rf * /var/www/html/
[root@master mnt]# rm -rf /etc/httpd/conf.d/welcome.conf
# 复制镜像的启动文件到相应目录
[root@master mnt]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/networkboot/
[root@master mnt]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/networkboot/
创建 PXE 启动菜单
[root@master mnt]# cat /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 30
MENU TITLE PXE Menu
LABEL centos8_x64
MENU LABEL CentOS 8_X64
KERNEL /networkboot/vmlinuz
APPEND initrd=/networkboot/initrd.img inst.repo=http://192.168.31.201 ks=http://192.168.31.201/centos8.cfg
创建 Kickstart 文件所需密文
启动 DHCP、TFTP、httpd 服务
# 启动服务
[root@master mnt]# systemctl start dhcpd
[root@master mnt]# systemctl start xinetd
[root@master mnt]# systemctl start httpd
# 检测服务端口是否正常
[root@master mnt]# lsof -i:67
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhcpd 9275 dhcpd 11u IPv4 4072680 0t0 UDP *:bootps
[root@master mnt]# lsof -i:69
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 9298 root 5u IPv4 4072825 0t0 UDP *:tftp
[root@master mnt]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 9336 root 4u IPv6 4072891 0t0 TCP *:http (LISTEN)
httpd 9338 apache 4u IPv6 4072891 0t0 TCP *:http (LISTEN)
httpd 9339 apache 4u IPv6 4072891 0t0 TCP *:http (LISTEN)
httpd 9340 apache 4u IPv6 4072891 0t0 TCP *:http (LISTEN)