是否可以通过引导提示将variables添加到Debian安装程序中,以便variables可以用于预定义文件?
特别是,我试图解决以下问题:
我们有一个非常广泛的安装后的脚本,通常从服务器上下载。 但是现在我想创buildPacker映像,并将版本控制中的安装后脚本与其他Packer文件一起保存。 为了访问preseed,我可以在启动命令中执行“preseed / url = http:// {{.HTTPIP}}:{{.HTTPPort}} / preseed.cfg”。 但是现在我希望安装程序从同一位置下载安装后的脚本。
目前,安装后的钩子看起来像这样:
di preseed/late_command string wget -q -O /tmp/postinstall.sh http://our.public.server/postinstall.jessie.sh ; sh /tmp/postinstall.sh
理想情况下,我想要做一些事情:
di preseed/late_command string wget -q -O /tmp/postinstall.sh http://{{ .HTTPIP }}:{{ .HTTPPort }}/postinstall.jessie.sh ; sh /tmp/postinstall.sh
但是,Debian安装程序当然不会取代那些所需的值。 所以我在想,可以将类似环境variables的variables传递给我们可以在预先定义的文件中使用的安装程序。
任何提示或技巧,表示赞赏!
编辑:试图将late_command添加到启动命令,但没有拿起。
编辑:尝试preseed /运行,但它运行在不允许in-target命令的不同的环境。
编辑:这可以是一个解决方法: 如何在一个debian preseed文件中一起pipe道命令? 但我宁愿将脚本放在单独的文件中。 如果这是不可能的,但这是不可能的。
好的,我自己解决了(在@lieter_的帮助下)。 不是太自豪,但它的作品:
di preseed/late_command string wget -q -O /tmp/postinstall.sh http://`cat /proc/cmdline | sed 's/.*url=\([^ ]\+\).*/\1/'`/di/jessie/postinstall.sh ; sh /tmp/postinstall.sh
这就是我所需要的,因为我们总是在安装时在我们的命令行中添加一个url =。