#!/bin/bash

# 检查是否传入了计算机名
if [ "$#" -ne 1 ]; then
    echo "用法: $0 <计算机名>"
    exit 1
fi

# 检查计算机名是否有效
case $1 in
    server|servera|serverb|serverc|serverd|router)
        ;;
    *)
        echo "错误: 无效的计算机名。必须是 server、servera、serverb、serverc、serverd 或 router 其中之一。"
        exit 1
        ;;
esac

# 设置主机名
HOSTNAME="$1.lab.example.com"
hostnamectl set-hostname $HOSTNAME

# 从 /etc/hosts 获取 IP 地址
IP_ADDRESS=$(grep "$HOSTNAME" /etc/hosts | awk '{print $1}')

# 检查是否成功获取到了 IP 地址
if [ -z "$IP_ADDRESS" ]; then
    echo "在 /etc/hosts 中未找到 $HOSTNAME 的 IP 地址。"
    exit 1
fi

# 配置网卡 ens3
# 注意：此操作将覆盖 ens3 的当前网络配置
cat > /etc/sysconfig/network-scripts/ifcfg-ens3 <<EOF
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens3
DEVICE=ens3
ONBOOT=yes
IPADDR=$IP_ADDRESS
PREFIX=24
GATEWAY=172.25.250.254
DNS1=172.25.250.1
EOF

# 重启网络服务以应用新配置
# 对于 CentOS/RHEL 7+
# systemctl restart network

# 对于 CentOS/RHEL 8+，可能需要使用 NetworkManager
nmcli connection reload
nmcli connection up ens3

echo "网络配置已更新。"
