如何使用 Cloud-init 创建具有特定磁盘大小的 Ubuntu 20 服务器?

如何使用 Cloud-init 创建具有特定磁盘大小的 Ubuntu 20 服务器?

如何设置初始磁盘大小对于由 Cloud-init 配置的 Ubuntu 20 虚拟服务器,何时进行自托管?

我一直在研究 cloudinit文档,但我没有看到设置磁盘大小的选项。Cloud-init 磁盘尺寸属性名称看起来很糟糕,因为文档将该属性描述为磁盘空间总量的百分比分区将占用的空间。因此,大小 30 将使分区占用整个磁盘的 30%。

另外,文档中可能提到在首次启动时将文件系统大小调整为磁盘的 100%,但我不知道如何指定该分区要调整大小的初始磁盘大小。

只有在其他进程创建初始磁盘之后,Cloud-init 才可以发挥预期的作用吗?

我的用例是自动创建我自己托管的 Ubuntu 20 虚拟服务器。多年来,我一直使用 Virtualbox 和自定义 shell 脚本的组合成功地做到这一点。在我看来,Cloud-init 框架增加了复杂性,而对于简单的家庭安装却没有明显的好处。从逻辑上讲,必须有一个扩展点,在这个扩展点上,使用 Cloud-init 所投入的时间和精力开始偿还债务。所以我试图采用与 Ubuntu 捆绑在一起的系统配置框架。它似乎有很多很酷的功能,比如创建用户、在首次启动时调整磁盘大小。系统只需要在开始时配置得更大。当然,我可以向系统添加额外的磁盘,但这会增加备份等的额外管理。

答案1

只有在其他进程创建初始磁盘之后,Cloud-init 才可以发挥预期的作用吗?

是的 - 就是这样。Cloud init 运行”里面“客户机,它不能改变提供的实际磁盘大小。它只能影响其上的文件系统将消耗多少磁盘。

工作流程顺序:

  1. 主持人一个工具会创建一个一定大小的 qcow 映像文件(通常你会有一个云映像并将新文件设为 COW 克隆,以加快初始部署速度;根据专业级,你可以根据需要变得更加复杂,但这个解决方案很好用)
  2. 当。。。的时候客人启动 cloud-init 有助于对其进行自定义,以将其与从同一映像实例化的其他数千次进行区分。作为此操作的一部分(默认),它将磁盘上的 FS 扩展为磁盘大小的 100%,因为大多数情况下都需要这样做(或者,如果 100% 不是您需要的,则扩展为您设置的百分比)。

要更改创建的各种客户机的磁盘大小,您必须在主机上的步骤#1 中创建不同的大小。

如果你愿意,可以看看紫外线工具执行上述两个步骤即可了解更多信息。

PS 如果您认为 cloud-init 更像是一个安装程序...那就是科廷。但要明确的是 - 在虚拟环境中仍然无法改变实际磁盘的大小 - 这将始终处于提供所述磁盘的虚拟机管理程序级别。

相关内容