作者:田逸(sery@163.com)

在Redhat RHEL 8发布好一阵以后,centos 8终于正式发布,迫不及待下载其ISO文件,一遍进行安装测试。与centos 7相比,文件体积大了很多。

 001.jpg

在取得centos 8 iso镜像文件之后,可将其刻录成光盘或者可引导安装u盘。如果是物理服务器,需要确认是否以UEFI引导。与老前辈BIOS相比较,UEFI方式需要额外做一些工作,比如手动分区时,得创建单独的分区/boot/efi,否则安装可能进行不下去。 

002.jpg


安装前的规划


用于生产系统的话,部署前需要先规划,不得一来就开干,鲁莽从事。那么规划哪些项目呢?还真没有一个标准规范。我搬砖前,一般考虑一下几个方面,供大家参考:

  • 磁盘冗余性配置:多磁盘做什么raid级别?

  • IP地址分配:好的规划能避免管理混乱、避免ip地址跟其它服务器发生冲突。

  • 主机名:主机名最好能望文生义,比如我常用用途名+结尾ip的方式(web118,表示系统是web用途,ip地址最后一个字段为118)。在没有多少经验的年代,曾经管理超过500台物理服务器,主机名都是localhost,维护起来真要命啊!

  • 磁盘分区:强烈建议物理服务器不要搞一根到底!!!分区的好处之一是数据隔离。在长期运维管理过程中,文件系统损坏发生的几率还是有的。如果一根到底,进行文件系统修复就比较棘手了。另外一个情形,假定对日志存放单独分区,就是日志塞爆分区,也不会导致系统挂起(一根到底,日志塞满整个根分区,恐怕远程登录都是问题)。

  • 目录命名:主要是系统盘以外的分区挂接点命名,比如/data、/backup等。


开始系统安装


准备好安装介质并了解清楚设备的基本配置,然后插入可引导安装介质,并保证引导介质被设置为最高优先级。

 003.jpg

正常引导的界面如下图所示:

 004.jpg

光标键选定第一行“Install Centos Linux 8.0.1905”,回车进入下一步。如果打算用文本模式进行安装,直接按“esc”键,进入boot界面,输入命令:linux text (以前的老版本,可以直接输text)。万一进入不了boot界面,试着更改引导方式为传统的BIOS。

 006.jpg

相对于图形界面安装centos 8,文本方式要麻烦很多,反而费时费力,特别是手动分区。

 007.jpg

因此,为了更有效率的进行安装,还是改变原来的习惯,从图形界面进行安装吧。


Centos 8定制布局比较合理,全在一个界面,简洁明快。

 

008.jpg

我需要定制时区(Time & Data)、软件选定(Software Selection)、网络与主机名(Network & Host Name)和必选项系统安装位置(Installation Destination)。为保证安装安装效率,可先鼠标选择系统安装位置,这样做的目的是检查硬盘是否被系统识别。如果硬盘没有被系统识别,而先做了其它方面的定制,浪费时间而又不能继续往下进行。


  • 定制系统安装位置

 009.jpg

我的100G的硬盘已经被正确识别。如果是多个磁盘,则以多行多图标显示,鼠标选定一个盘即可。定制分区部分,鼠标单选“Custom”(默认是自动),然后确认无误后,点界面顶部左侧按钮“Done”。进入定制分区界面,点击按钮“+”进行手动分区。

 010.jpg

先创建分区/boot/efi,选择后,鼠标点“Add mount point”。

 011.jpg

修改分区大小为1G(默认占完全部磁盘空间),确保文件系统类型为“EFI System partition”。确认无误后,鼠标点“Update Setting”。

 012.jpg

继续在此界面点击加号“+”添加交换分区、/boot分区、根分区/,系统日志分区/var等。一个定制创建好的磁盘分区布局如下:

 013.jpg

鼠标点击按钮“Done”,弹出分区汇总界面,点接受改变“Accept Changes”按钮,完成定制系统安装位置这个操作。

 014.jpg


  • 定制时区

返回到安装汇总界面后,鼠标点选“Time & Data”,鼠标选地图上中国的位置,选上以后,左上侧的地区自动填充为“Asia”、城市填充为“Shanghai”。

 015.jpg

鼠标点“Done”完成设置并返回主定制界面。


  • 定制安装所需软件包

鼠标点选“Software Selection”,进入包选择界面。可选最小化安装“Minimal Install”或者定制化安装“Custom Operation System”。我一般选定制安装,并选子项“Standard”、“Developmet Tools”、“System Tools”。

 016.jpg

centos古老的版本,可以按F2键查看右侧子项所包含软件包的信息。确认无误后,点按钮“Done”完成设置并返回定制主界面。


  • 定制主机名及网络

主界面鼠标点超链接“Network & Host Name”,进入网络定制界面。正常情况,网卡被系统识别,会显示网卡的名字,多块网卡,以多行显示。

(1)修改主机名:输入预先规划好的字符,点按钮“Apply”立即生效;

 017.jpg

(2)继续在上一个界面,鼠标点击右下侧按钮“Configure…”,弹出子界面以后,点选“IPv4 Setting”,再继续点下拉列表框“Method”。

 018.jpg

继续再此界面点击按钮“Add”,编辑框按事先规划填写相应的内容。

 019.jpg

(3)点击右侧滑动按钮,启用网络连接(由OFF变成ON)。

 020.jpg

确认无误后,鼠标点“Done”按钮返回定制安装主界面。


  • 正式进行安装

定制完所有项目以后,点击按钮“Begin Installation”,安装程序将进行硬盘格式化、复制文件到相应的目录等系列操作,在此过程中,可进行用户设置,也就是设置root密码。

 021.jpg

强烈建议生产环境设置复杂密码,用kepass密码管理工具随机生成密码,是个很不错的选择。

022.jpg

等到界面出现按钮“Reboot”,安装过程就算完成,点击此按钮重启系统,同时弹出安装介质。


后期处理及系统交付


系统安装完毕以后,最起码的要求是能够远程连接。如果在安装过程中没有对网络进行设置或者设置不正确,那么需要在系统重启之后,从控制台(物理服务器是显示器)进入系统,对网络进行设置。


  • 更改主机名

控制台执行如下指令即可生效:

hostnamectl set-hostname mysql116

执行完此条指令,打开文件/etc/hostname 即可看到所做的修改。与直接修改/etc/hostname不同,直接编辑此文件,需要重启系统才会生效。


  • 设置网络

先执行指令ip add,查看网络是否有设置。

 023.jpg

再检查网络接口配置文件,看是否有设定,如有设定,需要把BOOT的值设置成yes。

 024.jpg

像上图这种没有设置ip地址的情形,手动编辑文件比较容易出错,也不能从别的地方复制粘贴再修改。在以前的centos旧版本里,有工具setup进行各种图形化方式进行设置。Centos 7以后的版本,用nmtui(网络管理文本用户接口)来进行网络设置。

 025.jpg

光标选定“Edit a connection”后回车。

 026.jpg

光标选定“<Edit …>”,继续回车。下一个界面,ipv4配置左侧用光标选定,回车选“Manual”。然后继续移动光标到本行右侧的“show”,回车,弹出编辑界面。

 027.jpg

按事先的规划,填写好各项值。

 028.jpg

确认无误后,光标定位到最右侧最下端“<OK>”按钮,完成设定并回退到上一个界面,继续用光标定位到最右下侧那个“<Back>”按钮,回车,返回到主界面。

 029.jpg


主界面,光标定位到“Quit”退出到命令行,完成设置。


打开并对网络接口文件进行编辑,看上述的设定是否对此接口文件进行了自动修改。

 031.jpg

如用脚本修改,请执行如下指令:

sed –i s#ONBOOT=no#ONBOOT=yes# /etc/sysconfig/network-scripts/ifcfg-ens18

要使修改生效,继续执行下列指令:

service NetworkManager restart

特别注意,centos 8 没network这个服务名存在了!!!

 032.jpg

网络重启成功以后,执行ip add,或者ping其它主机验证网络设置的正确性。


  • 关闭不必要的服务

用远程管理工具如SecureCRT连接刚安装好的centos 8服务器系统,执行指令看看随系统开机都启动了哪些程序或服务。

systemctl list-unit-files |grep enable

[root@mysqlq126 ~]# systemctl list-unit-files |grep enable

atd.service                                 enabled  

auditd.service                              enabled  

autovt@.service                             enabled  

crond.service                               enabled  

dbus-org.fedoraproject.FirewallD1.service   enabled  

dbus-org.freedesktop.NetworkManager.service enabled  

dbus-org.freedesktop.nm-dispatcher.service  enabled  

dbus-org.freedesktop.timedate1.service      enabled  

firewalld.service                           enabled  

getty@.service                              enabled  

import-state.service                        enabled  

irqbalance.service                          enabled  

kdump.service                               enabled  

libstoragemgmt.service                      enabled  

loadmodules.service                         enabled  

lvm2-monitor.service                        enabled  

mcelog.service                              enabled  

mdmonitor.service                           enabled  

microcode.service                           enabled  

NetworkManager-dispatcher.service           enabled  

NetworkManager-wait-online.service          enabled  

NetworkManager.service                      enabled  

nis-domainname.service                      enabled  

rngd.service                                enabled  

rsyslog.service                             enabled  

selinux-autorelabel-mark.service            enabled  

smartd.service                              enabled  

sshd.service                                enabled  

sssd.service                                enabled  

syslog.service                              enabled  

timedatex.service                           enabled  

tuned.service                               enabled  

vdo.service                                 enabled  

dm-event.socket                             enabled  

lvm2-lvmpolld.socket                        enabled  

sssd-kcm.socket                             enabled  

remote-fs.target                            enabled  

dnf-makecache.timer                         enabled  

unbound-anchor.timer                        enabled

其实有好多服务没必要启动,白白浪费资源,可以给关闭了。可以用指令 systemctl disable firewalld 这样的方式挨个关闭,但嫌太费事,批量关闭多好啊!记得有个工具ntsysv,centos 8没有安装此软件,用下列指令进行安装:

yum install ntsysv

 033.jpg

安装好ntsysv以后,任意路径执行指令 ntsysv,调出设定界面。

 034.jpg

为验证ntsysv的设置是否与systemctl指令操作相一致,我这里先从ntsysv服务列表暂时取消服务“atd”及“firewalld”,点“ok”使其退出生效;然后在命令行输入下列指令:

systemctl list-unit-files |egrep -i 'firewalld|atd'

[root@mysqlq126 ~]# systemctl list-unit-files |egrep -i 'firewalld|atd'

 035.jpg

从输出可知,确实就是我们想要的结果。那么再执行ntsysv,进入服务列表,把不要的服务给统统关闭掉,然后重启系统(这样最快)。


  • 关闭selinux


先检查selinux是否开启,用指令 getenforce ,如果输出为“Enforcing”,表明selinux没有被设置成不可使用。

 036.jpg

接下来,编辑文件/etc/sysconfig/selinux,使SELINUX的值为disabled,可用下列指令进行修改:

sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/sysconfig/selinux


文件修改以后,并不会生效。如果不打算码上重启系统,可执行指令 setenforce 0 临时关闭让人讨厌的selinux(会不会有板砖飞来?)。