class="markdown_views prism-dracula">
做实验,离不开虚拟机,虚拟机保存成标准的模板,需要的时候可以进行克隆和快速部署,进而提高实验效率,这是一个我自己的CentOS6实验机模板搭建部署笔记。
环境相关
主机:Win7
虚拟机软件:VirtualBox4.3.10
虚拟机系统软件:CentOS-6.8-x86_64-minimal.iso
局域网192.168.1.0
畅通的网络
SecureCRT,虚拟机ssh客户端连接工具
- 主机安装,虚拟机软件安装(略)
- 新建虚拟机,相关步骤截图:
虚拟内存大小,个人习惯对2048M取个整,2100M
动态分配会根据使用情况动态增长虚拟机磁盘文件的大小,固定大小则是一开始就会将虚拟机磁盘文件完全格式化成对应大小,一般固定大小用在如RAC共享存储创建的时候,系统安装选择动态增长即可
这个地方可以调整虚拟机相关文件的存储路径,当然将磁盘大小调整的大一点,50G做为系统盘足以,因为是动态分配,不必一开始就担心磁盘会被虚拟机文件撑满
调整启动顺序,将硬盘调整到第一位,其次是光驱,勾掉软驱的选择
显存调整到最大,方便一会虚拟机启动部署的时候操作
选择下载到本地的ISO镜像文件
桥接网卡,相当于在你主机的网络中又出现了一台主机(实际上就是该虚拟机)
启动虚拟机,新建虚拟机的操作就完成了,下面进行虚拟机安装系统的配置
- 虚拟机安装配置
不必进行media test,直接skip掉
请务必保持英文!!!
主机名此时可以不配置,如果配置建议小写字母开头的小写字母和数字15字符以内的组合
选择定制
选择空闲的磁盘创建一个标准的分区
第一个分区是/boot,200M大小的ext4分区
第二个分区是swap,8200M大小,4G以内的内存,swap分区建议是两倍,8G建议8G,16G建议8或者16G,此时考虑虚拟机今后可能将内存增加到8G,因此直接将swap设置成8G
剩下的权分配给根分区,一个简单的虚拟机磁盘分区这样分即可,复杂的应用要做相应的调整,当然虚拟机装机后也是可以再次调整的
如果你是U盘安装linux,这个地方要注意,boot loader要放在根分区所在磁盘设备
- 虚拟机系统安装后配置和优化
输入root密码登录,右ctrl键将鼠标从虚拟机跳出到主机
网络配置:
编辑网卡配置文件
网卡配置文件参数
[root@centos6u8 ~]
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=223.5.5.5
DNS2=8.8.8.8
重启网络服务
主机名和hosts文件配置
HOSTNAME=centos6u8
hostname $HOSTNAME
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ifconfig eth0|grep inet|awk -F'[ :]' '{print $13}') $(hostname)">>/etc/hosts
sed -i "s/^HOSTNAME.*$/HOSTNAME=$HOSTNAME/g" /etc/sysconfig/network
ping -c 3 $(hostname)
关闭防火墙和selinux
sed -i 's/^ kernel.*$/& selinux=0/g' /boot/grub/grub.conf
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
chkconfig iptables off
配置本地yum源和阿里云yum源
这里使用3.65GB大小的ISO光盘,安装系统的光盘容量较小,很多软件是没有的
mkdir /iso
echo '/dev/sr0 /iso iso9660 defaults 0 0'>>/etc/fstab
mount -a
# 屏幕出现挂载信息 mount: block device /dev/sr0 is write-protected, mounting read-only
# 表示已经挂载
mkdir /etc/yum.repos.d/bak/
mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/bak/
# 将原来的配置文件移动走
cat >/etc/yum.repos.d/p.repo<
优化关闭开机启动项
# 还有一些开机启动优化项可以在今后做优化选择
chkconfig blk-availability off
chkconfig ip6tables off
chkconfig lvm2-monitor off
chkconfig netfs off
chkconfig postfix off
chkconfig mdmonitor off
chkconfig kdump off
chkconfig NetworkManager off
chkconfig abrt-ccpp off
chkconfig abrtd off
chkconfig acpid off
chkconfig certmonger off
chkconfig cpuspeed off
chkconfig cups off
chkconfig nfslock off
chkconfig portreserve off
chkconfig rpcbind off
chkconfig rpcgssd off
chkconfig rpcidmapd off
sshd服务优化
echo 'UseDNS no'>>/etc/ssh/sshd_config
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
/etc/init.d/sshd restart
设置自动任务校准时间
yum -y install ntpdate
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
cp -av /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
部署dstat脚本监控(个人的一个系统监控脚本,可以不进行部署)
#安装dstat
cd /tmp
rpm -ivh dstat-0.7.2-1.el6.rfx.noarch.rpm
rm -rf dstat-0.7.2-1.el6.rfx.noarch.rpm
#修改脚本,输出主机名
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='
#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 +
/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 '
#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 '+
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 '+
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 '+
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 '+
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
chattr +i *.sh
多线程下载加速优化
参照《Linux多线程下载命令axel编译安装 支持断点续传 Yum加速改造》,安装配置axel。
系统升级关机克隆出另外一台实践机
yum -y update
init 0
# 使用阿里云的yum源升级,关机

因为克隆时重新初始化了网卡,因此要修改该文件内容,将原来的eth0所在行删除,将eth1改成eth0,然后重启虚拟机

重启后就可以使用192.168.1.10的IP再次连接到虚拟机了。
[TOC]