相关说明

RedHat每一个大版本变化都是蛮大的,经典的5系列,逐渐臃肿和刚刚适应的6系列,以及现在的7,跟windows一个鸟样…
我们通过下载阿里云镜像站的CentOS7的系统ISO来搭建部署模板机
地址为:https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1708.iso
本次虚拟机搭建部署使用VMware软件。

部署安装

打开VMware,新建一个虚拟机
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
根据自己的主机的硬件资源分配合适的CPU和内存
X宝上可以捡垃圾,用机架服务器配件拼凑一个多CPU大内存的实验机

这里写图片描述
网络桥接,尽可能还原真实环境

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
选择下载好的ISO镜像,然后将声卡打印机之类的无用虚拟部件删掉,USB控制器也是可以删掉的,用到的可能性不大

打开虚拟机电源
这里写图片描述
这里写图片描述
安装过程保持英文,将系统安装成英文,加装对中文的显示支持即可,生产主机装成中文的话,那就林黛玉了…

这里写图片描述
这里写图片描述
时区是要调整的,还有一个重要的配置就是ntp时间同步,系统部署后优化的时候使用ntpdate同步阿里云的时钟服务器进行校正

这里写图片描述
这里写图片描述
加装中文支持

这里写图片描述
这里写图片描述
手动配置分区
这里写图片描述
这里写图片描述
这里写图片描述
第7代系统对boot分区的容量需求更大,然后xfs的文件系统特别好,特别优秀,各种优点,推荐给你,我继续用ext

这里写图片描述
继续分出根分区和swap分区,swap分区暂定内存的两倍大小,具体生产要根据实际需求调整,原则和第6代第5代一样
这里写图片描述
真实的生产环境上,如果没有特殊的应用上的需求,一般也不必将/home 或者 /var 在系统安装的时候单独分区
现在的生产环境多使用企业级虚拟化技术和云主机,如果需要单独将某个目录分区,可以后期加盘手动再次分区格式化挂载

这里写图片描述
这里写图片描述
关掉 kernel dump,一般用不上

这里写图片描述
这里写图片描述

IPV4

这里写图片描述

配置好网络,系统安装完成后直接使用SCRT连接到虚拟机进行下一步的优化部署

这里写图片描述
这里写图片描述
安全策略关掉,如果有需求,后期再进行配置

这里写图片描述
这里写图片描述
配置好root密码即可,不需要创建其他账号,如果密码强度不够,需要两次点击Done完成修改

这里写图片描述
点Reboot按钮,重启虚拟机,完成安装

这里写图片描述
系统安装后会自动推掉挂载的ISO镜像,需要手动设置连接,优化配置的时候需要用到

优化配置

使用Scrt连接到模板机,相应的连接配置步骤可以参考《CentOS6实验机模板搭建部署》

关闭selinux:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sed -i 's/vmlinuz.*/& selinux=0/g' /boot/grub2/grub.cfg
setenforce 0

关闭防火墙:

systemctl disable firewalld.service
systemctl disable iptables-services
# 第7代的防火墙有两种软件,默认安装firewalld代替掉原来的iptables
# 第7代的系统守护服务的开机启动关闭使用systemctl命令,代替原来的chkconfig

优化sshd服务:

echo 'UseDNS no'>>/etc/ssh/sshd_config
echo 'PermitRootLogin yes'>>/etc/ssh/sshd_config

优化网卡配置文件:

cat >/etc/sysconfig/network-scripts/ifcfg-ens33<<EOF 
TYPE="Ethernet"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.77.10"
PREFIX="24"
GATEWAY="192.168.77.1"
DNS1="223.5.5.5"
DNS2="8.8.8.8"
EOF
systemctl restart network.service
ping -c 3 223.5.5.5
# 查看是否能够连接到公网

配置主机名和/etc/hosts文件:

HOSTNAME=centos7
hostnamectl set-hostname "$HOSTNAME"
# 临时配置主机名
echo "$HOSTNAME">/etc/hostname
# 永久配置主机名
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts

配置本地yum源:

mkdir /iso
echo -e '/dev/sr0\t/iso\tiso9660\tdefaults\t0 0'>>/etc/fstab
mount -a
cd /etc/yum.repos.d/
rm -rf *
cat >/etc/yum.repos.d/p.repo<<EOF
[p]
name=p
baseurl=file:///iso/
enabled=1
gpgcheck=0
EOF
yum clean all
yum makecache
yum -y install wget

配置网络yum源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 使用阿里云镜像站的网络yum源
yum clean all
yum makecache
yum -y install nc net-tools vim tree dstat ntpdate
yum -y update
# 加装一些通用的软件,然后将系统各个软件升级到最新版本

还原/etc/rc.local的开机执行脚本的能力:

# 第7代系统将/etc/rc.local的执行权限去掉了
# 写入到该文件中的一些想要在开机启动执行的脚本就无法正常执行
# 还原方法就是把权限改回去即可
# 该文件 /etc/rc.local 是 /etc/rc.d/rc.local 文件的软连接
# 因此要修改 /etc/rc.d/rc.local 的权限
chmod +x /etc/rc.d/rc.local

配置ntpdata时钟校正任务:

ntpdate -u ntp1.aliyun.com
echo '/usr/sbin/ntpdate -u ntp1.aliyun.com'>>/etc/rc.local
crontab -l>/tmp/crontab.tmp
echo '#OS Time Sync'>>/tmp/crontab.tmp
echo '0 * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com>>/root/ntpdate.log 2>&1;/sbin/hwclock -w'>>/tmp/crontab.tmp
cat /tmp/crontab.tmp |crontab
rm -rf /tmp/crontab.tmp
# 生产环境要考虑时钟服务器是否选择阿里云时钟服务器

开机启动项优化:

systemctl disable dbus-org.freedesktop.NetworkManager.service
systemctl disable dbus-org.freedesktop.nm-dispatcher.service
systemctl disable NetworkManager-dispatcher.service
systemctl disable NetworkManager
systemctl disable postfix.service
# 关闭一些不需要的开机启动项
systemctl list-unit-files --type=service|grep 'enabled'
# 查看目前处于开机启动状态的系统服务

部署dstat脚本监控(个人的一个系统监控脚本,可以不进行部署):

#修改脚本,输出主机名
sed -i 's/plugin title/Hostname/g' /usr/share/dstat/dstat_helloworld.py
sed -i 's/counter/------------/g' /usr/share/dstat/dstat_helloworld.py
sed -i "s/'Hello world\!'/os.popen('hostname').readlines()[0].split()/g" \
/usr/share/dstat/dstat_helloworld.py
dstat --helloworld 1 3

#创建检测脚本并启动
mkdir -p /root/checkOS
cd /root/checkOS
cat >/root/checkOS/checkOS.sh<<EOF
#!/bin/bash
export DSTAT_TIMEFMT='%Y-%m-%d %H:%M:%S'
#kill dstat
for i in \$(ps -ef|grep '/usr/bin/dstat --helloworld'|grep -v grep|awk '{print \$2}');do kill -9 \$i;done
#start dstat
/usr/bin/dstat --helloworld -tlcp \\
--proc-count -y \\
--top-cpu-adv \\
--top-cputime-avg \\
--top-latency-avg \\
--top-bio-adv \\
--top-io-adv \\
--top-mem \\
--top-childwait \\
-mgsn --net-packets --tcp --udp \\
--fs --lock \\
-dr --aio --disk-tps --disk-util \\
--freespace  --noheaders 10 8640 >>/root/checkOS/checkOS.info_\$(date +%F_%H_%M_%S) &
/usr/bin/find /root/checkOS/checkOS.info_* -mtime +30 -exec rm -rf {} \;
EOF
chmod 700 /root/checkOS/checkOS.sh
/root/checkOS/checkOS.sh &
echo '/root/checkOS/checkOS.sh &'>>/etc/rc.local

#设置自动任务每日启动监控脚本
crontab -l>/tmp/crontab.tmp
echo -e '\n#OS Check Dstat'>>/tmp/crontab.tmp
echo '0 0 * * * /bin/bash /root/checkOS/checkOS.sh'>>/tmp/crontab.tmp
cat /tmp/crontab.tmp |crontab
rm -rf /tmp/crontab.tmp

#生成脚本,输出昨日系统基本信息
cat >/root/checkOS/checkYesterday.sh<<EOF
head -1 /root/checkOS/checkOS.info_\$(date '+%F' -d '1 day ago')*|\\
awk 'BEGIN{OFS="|"}/system/{print "|"\$1,\$2,\$3,\$4,\$5,\$6,\$15,\$16,\$17,\$18,\$24"|"}'>/root/checkOS/result.txt
cat /root/checkOS/checkOS.info_\$(date '+%F' -d '1 day ago')*|grep -v '\----system----'|\\
awk 'BEGIN{FS="|";OFS="|"} !/system/ {print "|"\$1,\$2,\$3,\$4,\$5,\$6,\$15,\$16,\$17,\$18,\$24"|"}'>>/root/checkOS/result.txt
head -2 result.txt ;grep -v '|-' result.txt |sort -t'|' -nrk4|head -30
EOF
chmod +x checkYesterday.sh

#生成脚本,输出今日系统基本信息
cat >/root/checkOS/checkToday.sh<<EOF
head -1 /root/checkOS/checkOS.info_\$(date '+%F')*|\\
awk 'BEGIN{OFS="|"}/system/{print "|"\$1,\$2,\$3,\$4,\$5,\$6,\$15,\$16,\$17,\$18,\$24"|"}'>/root/checkOS/result.txt
cat /root/checkOS/checkOS.info_\$(date '+%F')*|grep -v '\----system----'|\\
awk 'BEGIN{FS="|";OFS="|"} !/system/ {print "|"\$1,\$2,\$3,\$4,\$5,\$6,\$15,\$16,\$17,\$18,\$24"|"}'>>/root/checkOS/result.txt
head -2 result.txt ;grep -v '|-' result.txt |sort -t'|' -nrk4|head -30
EOF
chmod +x checkToday.sh

设置开机启动级别:

# 因为我们是最小化默认安装的系统,因此目前已经是命令行模式的启动级别
# 如果想改成图形化界面,需要加装图形化组件并设置开机启动级别:
# yum -y groupinstall "GNOME Desktop"
# rm -rf /etc/systemd/system/default.target
# ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target

# 还是改回命令行模式,图形界面完全抛弃的gnome2,改用gnome3,更炫丽,更耗资源,更废
rm -rf /etc/systemd/system/default.target
ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

重启主机:

reboot

多线程下载加速优化

参照《Linux多线程下载命令axel编译安装 支持断点续传 Yum加速改造》,安装配置axel。

模板机关机,备用,使用时直接克隆模板机,使用192.168.77.10连入虚拟机
根据 “优化网卡配置文件” 步骤修改IP,使用新IP重新连入虚拟机

[TOC]

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐