EVE-NG制作自定义Linux系统,这里以eve-ng community 2.0.3-111、CentOS 7为例。
步骤
1.在EVE-NG的/opt/unetlab/addons/qemu/下新建目录。目录名称以“linux-”开头,后面的字符可自定义,这是EVE-NG的命名规则,这样就能在EVE web界面添加节点时找到Linux节点。
mkdir /opt/unetlab/addons/qemu/linux-centos
2.将Linux安装镜像(ISO文件)上传到刚才新建的目录,可以用XFTP、winscp等工具上传。
3.将iso文件的名称修改为cdrom.iso,这样可以让EVE将iso文件加载到系统中,相当于挂上一个光驱,新建的系统会以这个ISO进行启动并安装系统。
mv CentOS-7-x86_64-DVD-1810.iso cdrom.iso
4.新建一个虚拟机磁盘文件。
/opt/qemu/bin/qemu-img create -f qcow2 virtioa.qcow2 80G
-f 指定虚拟磁盘格式
qcow2 虚拟磁盘格式
virtioa.qcow2 虚拟磁盘文件名,或者命名为hda.qcow2
80G 虚拟磁盘容量(这个是虚拟磁盘的最大容量,新建时有多少数据就占用多少主机的空间,并不是立即分配80G给虚拟磁盘。)
5.在EVE web页面新建一个实验,添加Linux节点。
选择Linux后,在具体版本中会显示刚才新建的目录名称(linux-centos)。
可以添加一个clound0网络,这是EVE连接到主机所在的网络(可以上网),以便对新装的Linux系统进行更新、安装软件等。
6.接下来启动Linux节点,按常规安装、更新Linux系统即可。
7.系统安装、更新完成后,将虚拟机关机,最好在虚拟机中正常关机。将cdrom.iso文件删除,或者修改成其它名称,这样系统重启时就不会加载iso。
8.进入这个实验所在的目录,执行qemu-img commit命令,即提交更改。
实验ID在WEB页面左边的菜单中选择lab details即可看到
cd /opt/unetlab/tmp/0/f49c160d-5457-417d-b4e0-fedf28fa1833/1/
qemu-img commit virtioa.qcow2
f49c160d-5457-417d-b4e0-fedf28fa1833 实验的ID
1 节点的ID
virtioa.qcow2 节点的磁盘文件
qemu-img commit的作用是提交更改。刚才手动创建的磁盘文件/opt/unetlab/addons/qemu/linux-centos/virtioa.qcow2是空的,就像新装的硬盘一样。这个磁盘文件也是以后新建Linux节点的模板文件。安装Linux系统时,新产生的数据都保存在/opt/unetlab/tmp/0/f49c160d-5457-417d-b4e0-fedf28fa1833/1/virtioa.qcow2。执行qemu-img commit就是将新产生的数据提交到模板磁盘文件中。
当我们删除这个实验时,/opt/unetlab/tmp/0/f49c160d-5457-417d-b4e0-fedf28fa1833/这个目录也会被删除,而/opt/unetlab/addons/qemu/linux-centos/目录是节点模板,被保留下来。
9.可以使用现有的模板,再创建另一个模板。
例如从刚才新建的Linux模板再新建一个安装有FTP服务器的Linux模板,以后可以通过添加Linux节点的方法,在实验中添加一个FTP服务器。
新建一个实验,新建节点,节点的镜像使用刚才创建完成的Linux模板。
启动Linux节点,在系统中安装一个FTP服务器,关闭Linux虚拟机。
将安装了FTP的Linux节点保存成另一个磁盘文件。
qemu-img convert -c -O qcow2 /opt/unetlab/tmp/0/752e5443-9d56-45e4-8fa7-51f0b1c05949/1/virtioa.qcow2 /tmp/virtioa.qcow2
新建一个节点模板目录,用于存放新的磁盘模板。
mkdir /opt/unetlab/addons/qemu/linux-ftp
将新生成的磁盘文件移到新的模板目录。
mv /tmp/virtioa.qcow2 /opt/unetlab/addons/qemu/linux-ftp/
新建实验的节点磁盘文件来自模板磁盘文件/opt/unetlab/addons/qemu/linux-centos/virtioa.qcow2,而安装FTP服务器产生的新磁盘数据保存在实验所在的目录中/opt/unetlab/tmp/0/752e5443-9d56-45e4-8fa7-51f0b1c05949/1/virtioa.qcow2,qemu-img convert命令会将模板磁盘文件和新产生的数据合并成一个磁盘文件/tmp/virtioa.qcow2。