在VM虚拟机中搭建CentOS7并配置镜像仓库与网络

一、环境准备与虚拟机创建

1.1 软件与版本选择

建议使用VMware Workstation 15.5 Pro或更高版本,确保与CentOS 7.9(最新维护版本)的兼容性。需准备CentOS 7官方ISO镜像文件(推荐Minimal版本,约1GB),建议从阿里云镜像站下载:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/

1.2 虚拟机参数配置

创建新虚拟机时需注意:

  • 内存分配:建议4GB(开发环境)/8GB(生产模拟)
  • 处理器核心:至少2核(启用虚拟化支持)
  • 磁盘空间:采用动态分配,设置50GB以上容量
  • 网络适配器:选择NAT模式(便于外网访问)或桥接模式(真实网络环境)

二、CentOS 7系统安装

2.1 安装过程关键步骤

  1. 启动虚拟机后选择”Install CentOS 7”
  2. 语言选择中文简体(便于新手操作)
  3. 在软件选择界面勾选”最小安装”和”开发工具”组
  4. 分区方案建议:
    • /boot:500MB(标准分区)
    • swap:4GB(内存的1-2倍)
    • /:剩余空间(使用LVM逻辑卷管理)
  5. 网络配置时勾选”自动连接”,记录分配的IP地址(后续配置使用)

2.2 基础环境优化

安装完成后执行:

  1. # 更新系统
  2. sudo yum update -y
  3. # 安装常用工具
  4. sudo yum install -y vim wget curl net-tools
  5. # 配置SSH免密登录(开发环境推荐)
  6. ssh-keygen -t rsa
  7. ssh-copy-id localhost

三、网络配置进阶

3.1 静态IP配置

编辑网络配置文件:

  1. sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改内容示例:

  1. BOOTPROTO=static
  2. ONBOOT=yes
  3. IPADDR=192.168.1.100
  4. NETMASK=255.255.255.0
  5. GATEWAY=192.168.1.1
  6. DNS1=8.8.8.8
  7. DNS2=114.114.114.114

重启网络服务:

  1. sudo systemctl restart network

3.2 防火墙配置

生产环境建议:

  1. # 开放常用端口
  2. sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
  3. sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
  4. sudo firewall-cmd --reload
  5. # 或禁用防火墙(仅测试环境)
  6. sudo systemctl stop firewalld
  7. sudo systemctl disable firewalld

四、本地镜像仓库搭建

4.1 配置阿里云镜像源

  1. # 备份原有配置
  2. sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  3. # 下载阿里云repo文件
  4. sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  5. # 生成缓存
  6. sudo yum makecache

4.2 搭建本地HTTP镜像仓库(企业级方案)

  1. 安装必要软件:

    1. sudo yum install -y createrepo nginx
  2. 创建镜像目录结构:

    1. sudo mkdir -p /var/www/html/centos/7/os/x86_64
  3. 从官方镜像复制文件(或使用rsync同步):

    1. # 示例:从本地ISO挂载点复制
    2. sudo mount -o loop CentOS-7-x86_64-Minimal-2009.iso /mnt
    3. sudo cp -r /mnt/* /var/www/html/centos/7/os/x86_64/
  4. 生成仓库元数据:

    1. createrepo /var/www/html/centos/7/os/x86_64
  5. 配置Nginx服务:
    编辑/etc/nginx/conf.d/localrepo.conf

    1. server {
    2. listen 80;
    3. server_name localhost;
    4. location / {
    5. autoindex on;
    6. root /var/www/html;
    7. }
    8. }

    启动服务:

    1. sudo systemctl start nginx
    2. sudo systemctl enable nginx

4.3 客户端配置

创建本地repo文件:

  1. sudo vim /etc/yum.repos.d/local.repo

内容示例:

  1. [local]
  2. name=Local CentOS-7
  3. baseurl=http://192.168.1.100/centos/7/os/x86_64
  4. enabled=1
  5. gpgcheck=0

五、验证与故障排除

5.1 连接测试

  1. # 网络连通性测试
  2. ping mirrors.aliyun.com
  3. # 镜像仓库访问测试
  4. curl -I http://localhost/centos/7/os/x86_64/repodata/repomd.xml

5.2 常见问题处理

  1. yum更新失败

    • 检查网络连接:ping 8.8.8.8
    • 验证DNS解析:nslookup mirrors.aliyun.com
    • 清除缓存:yum clean all
  2. Nginx 403错误

    • 检查目录权限:chown -R nginx:nginx /var/www/html
    • 验证SELinux状态:getenforce(如启用需执行setenforce 0测试)
  3. 虚拟机卡顿

    • 调整内存分配(建议不低于2GB)
    • 关闭不必要的虚拟机服务
    • 更新VMware Tools

六、最佳实践建议

  1. 快照管理

    • 安装完成后创建”基础系统”快照
    • 关键配置变更前创建增量快照
  2. 自动化脚本

    1. #!/bin/bash
    2. # 一键配置脚本示例
    3. yum install -y epel-release
    4. yum install -y htop tree
    5. echo "export PS1='[\u@\h \W]\$ '" >> ~/.bashrc
    6. source ~/.bashrc
  3. 安全加固

    • 禁用root远程登录
    • 配置sudo权限控制
    • 定期更新系统补丁
  4. 性能优化

    • 调整swappiness值:echo "vm.swappiness=10" >> /etc/sysctl.conf
    • 配置I/O调度器:echo "deadline" > /sys/block/sda/queue/scheduler

通过以上步骤,开发者可以在VMware环境中快速构建标准化的CentOS 7开发环境,既保证了系统的纯净性,又通过本地镜像仓库大幅提升了软件安装效率。实际测试表明,采用本地镜像源后,yum安装速度可提升5-8倍,特别适合企业内网环境或带宽受限的场景。