我已经构建了一个自动安装系统,用于从裸机构建节点,它会生成一个非常基本的安装,然后安装 Puppet 并联系 Puppetmaster 进行其余配置。我希望能够做的是将一个问题注入到预置中,这样我就可以问“这个服务器的作用是什么?”,然后它会将值写入一个临时文件,该文件将解析并包含在 Puppet 目录运行中。
所以基本上,在安装过程中提出一个问题,提供可用答案的列表并将答复写入文件。
这样做可行吗?
答案1
您可以使用d-i preseed/late_command
预置文件的部分来运行一个脚本,该脚本用来debconf
提出自定义问题。
示例脚本:
#! /bin/sh
# This is a debconf-compatible script
. /usr/share/debconf/confmodule
# Create the template file
cat > /tmp/myquestion.template <<'!EOF!'
Template: my-question/ask
Type: select
Choices: First, Second, Third
Description: Custom question
Template for querying a basic text.
Template: my-question/title
Type: text
Description: My question text
!EOF!
# Load your template
debconf-loadtemplate my-question /tmp/myquestion.template
# Set title for your custom dialog box
db_settitle my-question/title
# Ask it!
db_input critical my-question/ask
db_go
# Get the answer
db_get my-question/ask
# Save it to a file
echo "$RET" > /tmp/answer.value
脚本运行后,你会在/tmp/answer.value
文件中找到答案。
更多信息:https://help.ubuntu.com/community/InstallCDCustomization/AccessDebconfFromYourScript