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 在系统安装的时候单独分区
现在的生产环境多使用企业级虚拟化技术和云主机,如果需要单独将某个目录分区,可以后期加盘手动再次分区格式化挂载
配置好网络,系统安装完成后直接使用SCRT连接到虚拟机进行下一步的优化部署
配置好root密码即可,不需要创建其他账号,如果密码强度不够,需要两次点击Done完成修改
系统安装后会自动推掉挂载的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<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<#!/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<\$(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<\$(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]