目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

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 模块,可以使用现成的自动化工作流来处理常见的复杂系统管理员任务,增强了自动化运维功能
  • 使用网络管理器( nmclinmtui )进行网络配置,移除了网络脚本
  • 使用 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 安装参数

ASD
ASD

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/

cockpit

网络配置管理

 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

nmtui

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)

PXE


作者:Soulboy