如何使用 MAAS 创建 Debian 映像?

如何使用 MAAS 创建 Debian 映像?

如何在 MAAS 中创建 Debian 映像?我发现只有一些 ubuntu 版本和 CentOS,有没有办法创建 debian 映像?如果可以,我该怎么做

答案1

更完整的答案:

下载原始格式的 Debian 云镜像。

装载映像Mount the image

sudo mkdir /mnt/loop
sudo mount -o ro,loop,offset=1048576 <nameofdebianimage.raw> /mnt/loop

转换为 gzip 压缩包

cd /mnt/loop
sudo tar czvf ~/debian.tgz .
sudo umount /mnt/loop

将此上传至 maas

cd ~
maas login your.user http://<maasserver>:5240/MAAS 'user:credentials'
maas your.user boot-resources create name=custom/debian title="debian" architecture=amd64/generic content@=debian.tgz

编辑 /etc/maas/preseeds/curtin_userdata_custom 并在注释行之后和 debconf_selections 之前添加以下内容以覆盖要安装的内核:

kernel:
  fallback-package: linux-image-amd64
  package: linux-image-amd64

答案2

好吧,对于那些和我一样陷入困境的人来说,这就是你要做的事情。

wget http://cdimage.debian.org/cdimage/openstack/8.7.1-20170215/debian-8.7.1-20170215-openstack-amd64.raw

maas login your.user http://<maasserver>:5240/MAAS 'user:credentials'
maas your.user boot-resources create name=custom/debian title="debian-8.7.1" architecture=amd64/generic content@=debian-8.7.1-20170215-openstack-amd64.raw

答案3

根据之前的回答和我自己的研究,我做了一个使用 UEFI SecureBoot 在 MaaS 上运行 Debian 9 的简短指南。 有对源代码进行一些修改以便能够成功完成部署。我将在下面几行中总结这些内容。

如果要使用 UEFI 和安全启动,主要步骤是包括 buster debian 存储库图像科廷将能够安装软件包grub-efi-amd64-签名垫片签名(在 stretch repos 中不存在)。

root@maas:~/custom-oses# mkdir /mnt/custom-os-loop
root@maas:~/custom-oses# mount -o rw,loop,offset=1048576,sync debian-9.7.0-openstack-amd64.raw /mnt/custom-os-loop
root@maas:~/custom-oses# chroot /mnt/custom-os-loop
root@maas:/# echo "deb http://ftp.debian.org/debian buster main contrib non-free" >> /etc/apt/sources.list
root@maas:/# apt update
root@maas:/# exit
root@maas:~/custom-oses# umount /mnt/custom-os-loop

不用担心破坏系统,因为 cloud-init 将取代来源列表第一次启动时的文件。

除此之外,为了不覆盖镜像包含的源,必须更改 MaaS 的行为。检查代码后,你会发现无法修改 cloud-init 指令的值保留源列表, 这将是错误的总是。解决方案是修改函数获取存档配置在文件中compose_preseed.py

archives['apt']['preserve_sources_list'] = True if node.osystem == 'custom' else preserve_sources

此时 Debian 操作系统将成功安装,但无法自动启动。MaaS 不支持 Debian,因此在提供启动所需的 EFI 指令时会缺少一些东西。找到文件配置.本地.amd64.模板在下面UEFI 系统目录,并在 ubuntu 目录下添加以下几行。

debian/shimx64.efi \
debian/grubx64.efi \

就是这样!

请记住,如果你编辑正在运行的 Python 文件,则必须删除pycache并重新启动服务才能看到更改

相关内容