利用虚拟机搭建一个apt服务器

服务器 0

目录

目录

项目背景

项目名词

项目开发过程

项目开发的难点/坑点

总结


项目背景

由于公司新增生产车间,而生产车间距离公司总部很远,且要求不能使用外网,因此有了一个搭建私有apt服务器的需求,将生产所需软件安装包全部放在apt服务器上。

所以我在自己电脑上利用虚拟机现行尝试了一下,并记录过程。

项目名词

1.虚拟硬盘文件格式:VDI、VHD和VMDK

  •   VDI(VirtualBox Disk Image):是由Oracle VirtualBox虚拟化软件使用的虚拟硬盘文件格式,包含虚拟机的硬盘数据,包括操作系统、应用程序和用户数据。VDI文件可以动态增长,即在虚拟机使用空间时才会增长文件大小,通常用于Oracle VirtualBox虚拟机环境。
  • VHD(Virtual Hard Disk):是由Microsoft Hyper-V和Virtual PC虚拟化软件使用的虚拟硬盘文件格式,包含虚拟机的硬盘数据,可以存储操作系统和数据。VHD文件可以是固定大小的,也可以是动态增长的,通常用于Microsoft的虚拟化软件环境。
  • VMDK(Virtual Machine Disk):是由VMware虚拟化软件使用的虚拟硬盘文件格式,也存储虚拟机的硬盘数据,包括操作系统和数据。VMDK文件可以是单个文件或多个文件组成,通常用于存储虚拟机的硬盘数据,适用于VMware虚拟化软件环境。

2. 网络模式:NAT模式(Network Address Translation)和桥接模式(Bridge mode)

  • NAT模式:

        NAT模式是一种网络模式,其中虚拟机的网络流量被路由器或虚拟网络设备转发和转换,虚拟机的网络流量会被转换为宿主机的IP地址,然后再通过宿主机的网络接口进行网络通信。通常用于在虚拟化环境中创建私有网络,使虚拟机可以访问外部网络,同时隐藏虚拟机的真实IP地址。

  • 桥接模式:

        桥接模式是一种网络模式,其中虚拟机直接连接到物理网络中,并通过物理网络中的网络设备(如交换机)来进行通信。在桥接模式下,虚拟机会获得物理网络中的一个独立IP地址,可以直接与物理网络中的其他设备进行通信,就像是物理设备一样。通常用于需要虚拟机与外部网络直接通信的场景,例如虚拟机作为服务器提供网络服务时。

项目开发过程

  1. 首先,安装virtualbox。virtualbox网站:https://www.virtualbox.org/
  2.  使用virtualbox安装Ubuntu server。
  •  打开virtualbox,选择新建;      
  •  填写名称以及目录、类型、版本; 
  • 下一步,选择内存大小;

  •  选择现在创建虚拟硬盘;                
  •  虚拟硬盘文件类型选择VDI即可; 
  •  选择动态分配; 
  • 文件位置和大小;  
  • 然后点击创建。 
  •  创建之后,点击设置; 
  •  设置中,可以在系统选择项中增加处理器的数量; 
  • 选择存储, 选择镜像文件;  
  • 点击确定,并启动;
  •  然后按照提示安装即可。

 3. 安装完成之后启动UbuntuServer。

使用nginx服务器:

sudo apt install nginx -y

nginx -v  //安装后查看版本号,是否安装成功

 提示

nginx version: nginx/1.18.0 (Ubuntu)      //表示安装成功

 可以查看是否运行

curl 'http://127.0.0.1'

 如图所示: 

 修改nginx配置

sudo  vim /etc/nginx/sites-enabled/default

 图片中所示位置添加

autoindex on;    //开启目录列表功能

 保存,并重启服务;

sudo systemctl restart nginx.service

 在nginx服务器默认目录(/var/www/html/)下放置安装包,此处我新建了一个“setup”目录来放安装包

scp  test-gateway_1.0.2_amd64.deb w@192.168.2.19:/var/www/html/setup

//创建一个包含软件包信息的 Packages 文件,并将其压缩成 Packages.gz 文件

sudo dpkg-scanpackages .|gzip -c9>Packages.gz

自此,服务器搭建完成,可以测试了。

本机浏览器测试: 

 本机上添加apt服务器源地址

echo "deb [trusted=yes] http://192.168.2.19/setup ./" | sudo tee -a /etc/apt/sources.list > /dev/null 

sudo apt update   //更新源文件

安装测试:

 sudo apt install test-gateway

 

 可以正常安装,完成。

项目开发的难点/坑点

1. 保证虚拟机与物理机能够正常通信。

     虚拟机默认的网络模式是NAT网络地址转换模式,但此时我们需要虚拟机与本机通信,所以我们选择桥接模式。

设置虚拟机的IP地址:

在虚拟机中,

sudo nano /etc/netplan/00-installer-config.yaml     //编辑网络配置

network:  version: 2  ethernets:    enp0s3:      addresses:        - 192.168.1.100/24      gateway4: 192.168.1.1      

保存,并使用新配置

 sudo netplan apply

 查看是否成功设置

ip a

  

2. 拷贝安装包到服务器。

scp: /var/www/html/setup/zh-XXX00_1.0.0_arm64.deb: Permission denied

拷贝安装包的时候可能会遇到这个问题。

有两个地方需要注意,一个是可能虚拟机没有设置ssh权限访问;

 此处默认是注释掉的,去掉注释,保存,并重启服务。

systemctl  restart sshd

 另一点,可能就是,nginx的默认目录(/var/www/html)具有权限问题

sudo chmod 777  /var/www/html/setup

 之后就可以正常拷贝了。

总结

动手才能发现问题,希望我的搭建过程能够帮上你。

也许您对下面的内容还感兴趣: