何时使用预置文件安装包以及何时使用 Packer 提供包?
When to install packages with a preseed file and when to provision packages with Packer?
所以这几天我一直在忙着调整我的 Packer Ubuntu 配置。
我正忙于安装 Ubuntu 并且到了我需要安装我的机器所需的软件包的地步。最终结果是制作了一个预装包的vagrant box
目前,我将我所有的包配置都放在我的 preseed.cfg 文件中,目前我没有配置块。我的理解是,您可以在 preseed.cfg 或 provision 块中安装软件包(通过脚本或类似 chef 的东西)
这是我的 preseed.cfg
文件中的行:
d-i pkgsel/include string build-essential linux-headers-$(uname -r) openssh-server ubuntu-minimal
所以我的问题是,从打包程序的角度来看,什么时候通过 preseed.cfg 安装软件包是合适的,什么时候使用供应商是合适的?
当您编写配置脚本时,我(我只为自己说话,欢迎其他人提出意见)旨在做两件事:
我安装包但不仅如此,一般我会安装一组配置(例如,我安装Apache但我想配置一个虚拟主机什么的)
我想要跨系统脚本,这样我就可以重新使用它们来配置任何服务器(所以我尽量避免 shell 脚本 - 如果我需要结束如果我开发新的 provisionner 模块,我会写 shell 命令,我会为我可以使用的大多数 linux 系列做这件事)
在我个人使用 packer/vagrant 之后是使用加壳器创建最小盒子,所以我什至不会把我的供应放在那里(只有在供应步骤花费太长时间的情况下我需要创建新的vagrant VM 实例经常从头开始)-我将配置步骤放在 vagrant 中,当 vagrant 旋转新 VM 时它将是 运行。
回到你的问题,我会使用preseed 用于不需要配置并且对系统工作绝对必要的通用包;把剩下的放在配置中
所以这几天我一直在忙着调整我的 Packer Ubuntu 配置。
我正忙于安装 Ubuntu 并且到了我需要安装我的机器所需的软件包的地步。最终结果是制作了一个预装包的vagrant box
目前,我将我所有的包配置都放在我的 preseed.cfg 文件中,目前我没有配置块。我的理解是,您可以在 preseed.cfg 或 provision 块中安装软件包(通过脚本或类似 chef 的东西)
这是我的 preseed.cfg
文件中的行:
d-i pkgsel/include string build-essential linux-headers-$(uname -r) openssh-server ubuntu-minimal
所以我的问题是,从打包程序的角度来看,什么时候通过 preseed.cfg 安装软件包是合适的,什么时候使用供应商是合适的?
当您编写配置脚本时,我(我只为自己说话,欢迎其他人提出意见)旨在做两件事:
我安装包但不仅如此,一般我会安装一组配置(例如,我安装Apache但我想配置一个虚拟主机什么的)
我想要跨系统脚本,这样我就可以重新使用它们来配置任何服务器(所以我尽量避免 shell 脚本 - 如果我需要结束如果我开发新的 provisionner 模块,我会写 shell 命令,我会为我可以使用的大多数 linux 系列做这件事)
在我个人使用 packer/vagrant 之后是使用加壳器创建最小盒子,所以我什至不会把我的供应放在那里(只有在供应步骤花费太长时间的情况下我需要创建新的vagrant VM 实例经常从头开始)-我将配置步骤放在 vagrant 中,当 vagrant 旋转新 VM 时它将是 运行。
回到你的问题,我会使用preseed 用于不需要配置并且对系统工作绝对必要的通用包;把剩下的放在配置中