管理镜像
缘起
对于客户来说,开发板会用在不同的产品中,不同的产品对应不同的镜像,产品越多,需要管理的镜像越多,如何高效的管理诸多镜像及诸多设备变成了我们需要解决的问题。
在使用过几款镜像、磁盘管理工具后,诸如clonezilla,diskgenius等,我们最终选择FOG作为镜像管理及设备工具。个人开发者可忽略此文档。
关于FOG
FOG(Free Open-source Ghost)是一款基于Linux用于镜像管理的开源软件,它允许管理员轻松地管理和部署大量计算机的操作系统和应用程序。FOG旨在提供一个简单的解决方案来管理和部署大量计算机的操作系统和应用程序。FOG支持自动化硬件发现、操作系统部署、应用程序部署和远程控制,可以极大地简化IT管理员的工作。
- FOG的项目地址是 https://github.com/FOGProject/fogproject,可以在这里获取FOG的最新版本和文档。
- FOG的官方网站是https://fogproject.org/,这里提供了更详细的关于FOG的介绍、文档和社区支持等。
FOG的优点
- 简单易用:FOG提供了一个易于使用的Web界面,使管理员可以轻松地管理和部署计算机。
- 镜像管理:FOG允许管理员创建和管理镜像,包括操作系统、应用程序和配置文件等。管理员可以根据需要创建多个镜像,并将它们部署到不同的计算机上。
- 自动化部署:FOG提供了自动化操作系统部署和应用程序部署功能,大大简化了IT管理员的工作。
- 免费开源:FOG是一款免费开源软件,没有任何商业限制。
使用流程
使用FOG进行镜像管理流程较为简单,有以下四步骤:
1- 安装FOG服务器
服务器是一个webserver,用于管理镜像,管理设备
2- 准备镜像
未来用于批量部署的镜像模板,例如windows系统加私有应用,或者Ubuntu系统加私有应用等等。
3-安装FOG服务端
在安装好批量部署镜像的机器上,安装FOG客户端,主要目的是注册设备到服务器,为抓取镜像做准备。
4- 抓取镜像
服务器发起镜像抓取指令,目标设备会自动重启进入镜像抓取过程,抓取好的镜像将存储于服务器端。
5- 部署镜像
将抓取好的镜像批量部署到裸机上。
安装FOG服务器
在编写本教程时,FOG项目的最新版本是1.5.10,于2023年3月5日发布。
FOG服务器安装仅支持在运行Linux的计算机上进行,如Ubuntu、Debian、Rocky或Alma Linux。
本教程以选取Ubuntu20.04 LTS作为服务器进行项目安装。
下载FOG
请验证您的下载是否与以下sha256校验和之一匹配:
2b347772f7d225aac8ee0a1a4c1c140c3e63199a9aecc070fd3b14d88c4f4758 fogproject-1.5.10.tar.gz
解压项目包
tar xvzf fogproject-1.5.10.tar.gz
安装服务器
注意:安装服务器需要互联网连接。在安装过程中,安装脚本将下载其他二进制文件并安装任何所需的依赖项。
cd fogproject-1.5.10/bin
sudo -i ./installfog.sh
安装选项介绍
在安装过程中,会出现以下几个选项:
- 选择安装类型:选择N(Normal Server)。
- 选择是否更新DHCP配置:如果网络中已经有路由器,已经有DHCP服务器,选择N(No);如果没有DHCP服务器或者想让FOG服务器提供DHCP服务,选择Y(Yes)。建议在已有路由器的网络中使用,免去诸多配置工作。
- 选择是否更改IP地址:如果想更改FOG服务器的IP地址,选择Y(Yes),并输入新的IP地址;如果不想更改,选择N(No)。默认选择No。
- 选择是否更改DNS地址:如果想更改FOG服务器的DNS地址,选择Y(Yes),并输入新的DNS地址;如果不想更改,选择N(No)。默认选择No。
- 选择是否更改网关地址:如果想更改FOG服务器的网关地址,选择Y(Yes),并输入新的网关地址;如果不想更改,选择N(No)。默认选择No。
- 选择是否更改子网掩码:如果想更改FOG服务器的子网掩码,选择Y(Yes),并输入新的子网掩码;如果不想更改,选择N(No)。默认选择No。
- 选择是否启用DHCP服务:如果之前没有DHCP服务器或者想让FOG服务器提供DHCP服务,选择Y(Yes);如果已经有DHCP服务器在运行,选择N(No)。默认选择No。
安装完成
配置完选项后,安装脚本会自动下载所需要的软件包并且进行系统配置,当我们看到下图红框中的提示代表安装完成。
初始化
安装完成后,在浏览器中访问http://<fog_server_ip>/fog/management,按照提示创建数据库和管理员账号。
登录服务端
- 默认账户:fog
- 默认密码:password
服务器安装tips
由于网络环境问题,安装过程可能会卡在下面步骤:
其原因是所在网络环境从github下载文件缓慢或者超时,可以修改文件加入代理服务器,再重新安装。
文件fogproject-1.5.10/lib/common/functions.sh 2405-2407行
修改为:
fosURL="https://ghproxy.com/https://github.com/FOGProject/fos/releases/download"
fosLatestURL="https://ghproxy.com/https://github.com/FOGProject/fos/releases/latest/download"
fogclientURL="https://ghproxy.com/https://github.com/FOGProject/fog-client/releases/download"
创建镜像
创建镜像就是在模板机安装系统,配置环境,部署应用,进行个性化设置的过程,此处不做赘述。个性化镜像准备好之后,FOG系统就抓取并将镜像存储在服务器,等待部署。
例如我们针对通用的Ubuntu版本,安装好显卡驱动及常用软件;针对教育客户安装好学习内容及开发环境;针对机器人项目预装好ROS;针对于行业客户预装好Windows及工具软件。既方便我们内部的镜像管理,也方便客户开机即用,快速使用设备及进行二次开发。
安装FOG客户端
FOG客户端是运行在模板机的一个代理程序,其作用是与FOG服务器通信,进而实现服务器对设备的配置、控制,不仅包含镜像的抓取及部署,还支持应用升级,远程控制等高级功能。所有这些任务都可以从FOG Web UI中心管理,FOG客户端会“轮询”FOG服务器,以查看是否需要执行任务,如果需要,则执行任务。接下来展示安装FOG客户端的过程,并将主机注册到FOG服务器,并让客户端通过FOG Web UI执行一些任务。
Windows
Ubuntu
注册设备
抓取镜像
部署镜像
部署镜像的设备不需要安装FOG客户端,也不需要注册,镜像部署完成后其内容与模板机的系统完全一致。
- 开机上电,F2进入BIOS,选择PXE启动
- 开发板会与服务器通信,进入到FOG功能界面
- 选择Deploy Image,进行镜像部署
由于我们并未注册设备,需要输入用户名密码获取访问镜像权限。用户名:fog,密码:password
- 选择需要部署的镜像
- 等待完成镜像部署
- 修改启动选项