管理镜像

缘起

对于客户来说,开发板会用在不同的产品中,不同的产品对应不同的镜像,产品越多,需要管理的镜像越多,如何高效的管理诸多镜像及诸多设备变成了我们需要解决的问题。
在使用过几款镜像、磁盘管理工具后,诸如clonezilla,diskgenius等,我们最终选择FOG作为镜像管理及设备工具。个人开发者可忽略此文档。

关于FOG

FOG(Free Open-source Ghost)是一款基于Linux用于镜像管理的开源软件,它允许管理员轻松地管理和部署大量计算机的操作系统和应用程序。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

安装选项介绍

在安装过程中,会出现以下几个选项:

安装完成

配置完选项后,安装脚本会自动下载所需要的软件包并且进行系统配置,当我们看到下图红框中的提示代表安装完成。
安装完成

初始化

安装完成后,在浏览器中访问http://<fog_server_ip>/fog/management,按照提示创建数据库和管理员账号。
初始化

登录服务端

登录

服务器安装tips

由于网络环境问题,安装过程可能会卡在下面步骤:
安装障碍
其原因是所在网络环境从github下载文件缓慢或者超时,可以修改文件加入代理服务器,再重新安装。
文件fogproject-1.5.10/lib/common/functions.sh 2405-2407行
download
修改为:
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客户端,也不需要注册,镜像部署完成后其内容与模板机的系统完全一致。

由于我们并未注册设备,需要输入用户名密码获取访问镜像权限。用户名:fog,密码:password