作者:田逸([email protected])
在Redhat RHEL 8发布好一阵以后,centos 8终于正式发布,迫不及待下载其ISO文件,一遍进行安装测试。与centos 7相比,文件体积大了很多。
在取得centos 8 iso镜像文件之后,可将其刻录成光盘或者可引导安装u盘。如果是物理服务器,需要确认是否以UEFI引导。与老前辈BIOS相比较,UEFI方式需要额外做一些工作,比如手动分区时,得创建单独的分区/boot/efi,否则安装可能进行不下去。
安装前的规划
用于生产系统的话,部署前需要先规划,不得一来就开干,鲁莽从事。那么规划哪些项目呢?还真没有一个标准规范。我搬砖前,一般考虑一下几个方面,供大家参考:
磁盘冗余性配置:多磁盘做什么raid级别?
IP地址分配:好的规划能避免管理混乱、避免ip地址跟其它服务器发生冲突。
主机名:主机名最好能望文生义,比如我常用用途名+结尾ip的方式(web118,表示系统是web用途,ip地址最后一个字段为118)。在没有多少经验的年代,曾经管理超过500台物理服务器,主机名都是localhost,维护起来真要命啊!
磁盘分区:强烈建议物理服务器不要搞一根到底!!!分区的好处之一是数据隔离。在长期运维管理过程中,文件系统损坏发生的几率还是有的。如果一根到底,进行文件系统修复就比较棘手了。另外一个情形,假定对日志存放单独分区,就是日志塞爆分区,也不会导致系统挂起(一根到底,日志塞满整个根分区,恐怕远程登录都是问题)。
目录命名:主要是系统盘以外的分区挂接点命名,比如/data、/backup等。
开始系统安装
准备好安装介质并了解清楚设备的基本配置,然后插入可引导安装介质,并保证引导介质被设置为最高优先级。
正常引导的界面如下图所示:
光标键选定第一行“Install Centos Linux 8.0.1905”,回车进入下一步。如果打算用文本模式进行安装,直接按“esc”键,进入boot界面,输入命令:linux text (以前的老版本,可以直接输text)。万一进入不了boot界面,试着更改引导方式为传统的BIOS。
相对于图形界面安装centos 8,文本方式要麻烦很多,反而费时费力,特别是手动分区。
因此,为了更有效率的进行安装,还是改变原来的习惯,从图形界面进行安装吧。
Centos 8定制布局比较合理,全在一个界面,简洁明快。
我需要定制时区(Time & Data)、软件选定(Software Selection)、网络与主机名(Network & Host Name)和必选项系统安装位置(Installation Destination)。为保证安装安装效率,可先鼠标选择系统安装位置,这样做的目的是检查硬盘是否被系统识别。如果硬盘没有被系统识别,而先做了其它方面的定制,浪费时间而又不能继续往下进行。
定制系统安装位置
我的100G的硬盘已经被正确识别。如果是多个磁盘,则以多行多图标显示,鼠标选定一个盘即可。定制分区部分,鼠标单选“Custom”(默认是自动),然后确认无误后,点界面顶部左侧按钮“Done”。进入定制分区界面,点击按钮“+”进行手动分区。
先创建分区/boot/efi,选择后,鼠标点“Add mount point”。
修改分区大小为1G(默认占完全部磁盘空间),确保文件系统类型为“EFI System partition”。确认无误后,鼠标点“Update Setting”。
继续在此界面点击加号“+”添加交换分区、/boot分区、根分区/,系统日志分区/var等。一个定制创建好的磁盘分区布局如下:
鼠标点击按钮“Done”,弹出分区汇总界面,点接受改变“Accept Changes”按钮,完成定制系统安装位置这个操作。
定制时区
返回到安装汇总界面后,鼠标点选“Time & Data”,鼠标选地图上中国的位置,选上以后,左上侧的地区自动填充为“Asia”、城市填充为“Shanghai”。
鼠标点“Done”完成设置并返回主定制界面。
定制安装所需软件包
鼠标点选“Software Selection”,进入包选择界面。可选最小化安装“Minimal Install”或者定制化安装“Custom Operation System”。我一般选定制安装,并选子项“Standard”、“Developmet Tools”、“System Tools”。
centos古老的版本,可以按F2键查看右侧子项所包含软件包的信息。确认无误后,点按钮“Done”完成设置并返回定制主界面。
定制主机名及网络
主界面鼠标点超链接“Network & Host Name”,进入网络定制界面。正常情况,网卡被系统识别,会显示网卡的名字,多块网卡,以多行显示。
(1)修改主机名:输入预先规划好的字符,点按钮“Apply”立即生效;
(2)继续在上一个界面,鼠标点击右下侧按钮“Configure…”,弹出子界面以后,点选“IPv4 Setting”,再继续点下拉列表框“Method”。
继续再此界面点击按钮“Add”,编辑框按事先规划填写相应的内容。
(3)点击右侧滑动按钮,启用网络连接(由OFF变成ON)。
确认无误后,鼠标点“Done”按钮返回定制安装主界面。
正式进行安装
定制完所有项目以后,点击按钮“Begin Installation”,安装程序将进行硬盘格式化、复制文件到相应的目录等系列操作,在此过程中,可进行用户设置,也就是设置root密码。
强烈建议生产环境设置复杂密码,用kepass密码管理工具随机生成密码,是个很不错的选择。
等到界面出现按钮“Reboot”,安装过程就算完成,点击此按钮重启系统,同时弹出安装介质。
后期处理及系统交付
系统安装完毕以后,最起码的要求是能够远程连接。如果在安装过程中没有对网络进行设置或者设置不正确,那么需要在系统重启之后,从控制台(物理服务器是显示器)进入系统,对网络进行设置。
更改主机名
控制台执行如下指令即可生效:
hostnamectl set-hostname mysql116
执行完此条指令,打开文件/etc/hostname 即可看到所做的修改。与直接修改/etc/hostname不同,直接编辑此文件,需要重启系统才会生效。
设置网络
先执行指令ip add,查看网络是否有设置。
再检查网络接口配置文件,看是否有设定,如有设定,需要把BOOT的值设置成yes。
像上图这种没有设置ip地址的情形,手动编辑文件比较容易出错,也不能从别的地方复制粘贴再修改。在以前的centos旧版本里,有工具setup进行各种图形化方式进行设置。Centos 7以后的版本,用nmtui(网络管理文本用户接口)来进行网络设置。
光标选定“Edit a connection”后回车。
光标选定“
按事先的规划,填写好各项值。
确认无误后,光标定位到最右侧最下端“
主界面,光标定位到“Quit”退出到命令行,完成设置。
打开并对网络接口文件进行编辑,看上述的设定是否对此接口文件进行了自动修改。
如用脚本修改,请执行如下指令:
sed –i s#ONBOOT=no#ONBOOT=yes# /etc/sysconfig/network-scripts/ifcfg-ens18
要使修改生效,继续执行下列指令:
service NetworkManager restart
特别注意,centos 8 没network这个服务名存在了!!!
网络重启成功以后,执行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
[email protected] 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
[email protected] 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
安装好ntsysv以后,任意路径执行指令 ntsysv,调出设定界面。
为验证ntsysv的设置是否与systemctl指令操作相一致,我这里先从ntsysv服务列表暂时取消服务“atd”及“firewalld”,点“ok”使其退出生效;然后在命令行输入下列指令:
systemctl list-unit-files |egrep -i 'firewalld|atd'
[root@mysqlq126 ~]# systemctl list-unit-files |egrep -i 'firewalld|atd'
从输出可知,确实就是我们想要的结果。那么再执行ntsysv,进入服务列表,把不要的服务给统统关闭掉,然后重启系统(这样最快)。
关闭selinux
先检查selinux是否开启,用指令 getenforce ,如果输出为“Enforcing”,表明selinux没有被设置成不可使用。
接下来,编辑文件/etc/sysconfig/selinux,使SELINUX的值为disabled,可用下列指令进行修改:
sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/sysconfig/selinux
文件修改以后,并不会生效。如果不打算码上重启系统,可执行指令 setenforce 0 临时关闭让人讨厌的selinux(会不会有板砖飞来?)。