作业:场景练习-答案解析(20210803)
磁盘管理
- 创建两个 LVM , 挂载路径分别为 /data1 和 /data2,要求 /data1 的格式为 ext4, /data2 的格式为 xfs
- 挂载 ISO 镜像,并把 ISO 配置为本地 yum 源(需要开启可以⾃动挂载)
# 1. 创建分区
fdisk /dev/sdb
n
p
1
回车
回车
w
# 2. 创建 pv
pvcreate /dev/sdb1
# 3. 创建vg
vgcreate vgdata /dev/sdb1
# 4. 创建lv
lvcreate -l 100%VG -n lv1 vgdata
# 5. 查看lv
lvscan
# 6. 格式化成 xfs 或 ext4
mkfs.xfs /dev/vgdata/lv1
mkfs.ext4 /dev/vgdata/lv2
# 7. 挂载
mkdir /data
mount /dev/vgdata/lv1 /data
# 8. 修改 /etc/fstab
/dev/mapper/vgdata-lv1 /data xfs defaults 0 0
cat >/etc/yum.repos.d/localyum.repo <<EOF
[localyum]
name=Local Yum From ISO
baseurl=file:///mnt
enable=1
gpgcheck=0
EOF
初始化服务器
-
关闭防⽕墙
-
关闭 SELinux
-
修改最⼤⽂件打开数为 102400
-
修改服务器IP地址为静态IP。
-
修改 DNS,⾸选为 127.0.0.1,备⽤为 114.114.114.114 6. 配置时间同步,时间源为 s1b.time.edu.cn
以上6个操作尝试写成两个脚本,要求: init.sh 脚本为执⾏初始化的操作。check.sh 脚本为检查上述的操作 所有脚本都需要有输出,并且所有的输出都需要输出到 init.log 和 check.log 中。
init.sh
vim init.sh
# 1. 关闭防⽕墙
systemctl stop firewalld
systemdctl disable firewalld
# 2. 关闭 SELinux
setenforce 0
sed -i "/SELINUX=/s/enforcing/disabled/g" /etc/selinux/config
# 3. 修改最⼤⽂件打开数为 102400
# /etc/security/limits.conf
root soft nofile 102400
root hard nofile 102400
# 4. 修改服务器IP地址为静态IP。
# 5. 修改 DNS,⾸选为 127.0.0.1,备⽤为 114.114.114.114
cat > /tmp/ifcfg-eth0 <<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=db89c4ab-4480-4228-943f-b1f339881c5a
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.110.201
PREFIX=24
GATEWAY=192.168.110.1
DNS1=127.0.0.1
DNS2=114.114.114.114
EOF
# 6. 配置时间同步,时间源为 s1b.time.edu.cn
yum -y install chrony # 安装
# 修改配置文件
cat > /etc/chrony.conf <<EOF
server s1b.time.edu.cn iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
EOF
systemctl start chronyd
# 检查
chronyc sources -v
check.sh
vim check.sh
# 1. fiewalld
firewalldStatus=$(systemctl is-active firewalld)
if [ "$firewalldStatus" != "active" ];
then
echo "防火墙未启动"
else
echo "防火墙未关闭"
fi
# 2. selinux
# getenforce
selinuxStatus=$(getenforce)
if [ "$selinuxStatus" != "Enforcing" ];
then
echo "SELinux未启动"
else
echo "SELinux未关闭"
fi
# 3. ulimit
ulimitStatus=$(ulimit -n)
if [ $ulimitStatus -ne 102400 ];
then
echo "ulimit 未设置"
else
echo "ulimit 已设置"
fi
# 4. 静态IP
staticOrNot=$(cat /etc/sysconfig/network-scripts/ifcfg-eth0 \
|grep BOOTPROTO \
|awk -F'=' '{print $2}')
if [ "$staticOrNot" != "dhcp" ];
then
echo "已设置静态IP"
else
echo "未设置静态IP"
fi
# 5. DNS
# 首选
FirstDNS=$(cat /etc/resolv.conf |egrep -v '#|^$' |grep nameserver |head -1 | awk '{print $NF}')
if [ "$FirstDNS" == "127.0.0.1" ];
then
echo "已设置首选DNS 为127.0.0.1"
else
echo "未设置首选DNS 为127.0.0.1"
fi
# 备用
SecDNS=$(cat /etc/resolv.conf |egrep -v '#|^$' |grep nameserver |head -2 |tail -1 | awk '{print $NF}')
if [ "$SecDNS" == "114.114.114.114" ];
then
echo "已设置备用DNS 为114.114.114.114"
else
echo "未设置备用DNS 为114.114.114.114"
fi
# 6. 时间源
ntpServer=$(chronyc sources |grep '\^' |awk '{print $2}')
digResult=$(dig s1b.time.edu.cn +short)
if [ "$ntpServer" == "$digResult" ];
then
echo "已配置时间源服务器"
else
echo "未配置时间源服务器"
fi