Files

116 lines
2.6 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
set -euo pipefail
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_err() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查 root 权限
if [ "$EUID" -ne 0 ]; then
log_err "请使用 root 权限执行此脚本(如: sudo bash $0)"
exit 1
fi
log_info "=========================================="
log_info "开始初始化实验环境..."
log_info "=========================================="
REPO_DIR="/etc/yum.repos.d"
BACKUP_DIR="/etc/yum.repos.d.bak"
# 首次运行时备份原有软件源
if [ ! -d "$BACKUP_DIR" ]; then
log_info "备份原有 yum 软件源..."
cp -a "$REPO_DIR" "$BACKUP_DIR"
fi
# 配置 CentOS 7.9 基础源
log_info "配置 CentOS 7.9 阿里云软件源..."
cat > "$REPO_DIR/CentOS-Base.repo" <<'EOF'
[base]
name=CentOS-7 - Base - Aliyun
baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/
gpgcheck=0
enabled=1
[updates]
name=CentOS-7 - Updates - Aliyun
baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/
gpgcheck=0
enabled=1
[extras]
name=CentOS-7 - Extras - Aliyun
baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/
gpgcheck=0
enabled=1
EOF
# 配置 QEMU EV 源
cat > "$REPO_DIR/CentOS-QEMU-EV.repo" <<'EOF'
[centos-qemu-ev]
name=CentOS-7 - QEMU EV - Aliyun
baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/virt/$basearch/kvm-common/
gpgcheck=0
enabled=1
EOF
# 配置 OpenStack Rocky 源
cat > "$REPO_DIR/CentOS-OpenStack-rocky.repo" <<'EOF'
[centos-openstack-rocky]
name=CentOS-7 - OpenStack Rocky - Aliyun
baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/cloud/$basearch/openstack-rocky/
gpgcheck=0
enabled=1
exclude=sip,PyQt4
EOF
# 删除不再需要的 Ceph 源,避免 yum 读取其元数据
rm -f "$REPO_DIR/CentOS-Ceph-Luminous.repo"
# 清除旧仓库元数据,保留已下载的软件包缓存
log_info "刷新软件源元数据..."
yum clean metadata > /dev/null 2>&1
# 安装 KVM / libvirt
log_info "安装/检查虚拟化软件包..."
yum install -y \
qemu-kvm \
libvirt \
virt-install \
bridge-utils \
qemu-img
# 启动 libvirtd
log_info "启动 libvirtd 服务..."
systemctl enable --now libvirtd > /dev/null
# 验证服务状态
if systemctl is-active --quiet libvirtd; then
log_info "libvirtd 状态正常。"
else
log_err "libvirtd 启动失败!"
exit 1
fi
log_info "=========================================="
log_info "实验环境初始化完成!"
log_info "=========================================="