我有一个通过 ovf 模板部署的应用程序。我对其进行了设置,以便客户可以将网络设置输入 vSphere,并通过 ovfTools 进行设置。一切都很好。我的问题是当我尝试将网络设置设置为操作系统时。我编写了一个脚本,将值提取到变量中,然后写出 /etc/network/interfaces 文件。
按照此回答,我在 network-pre.target 期间调用我的脚本,新的 /etc/network/interfaces 文件被写出,但是当网络出现时,旧值仍然设置为接口。如果我发出 systemctl restart 服务将重新启动,并且新值将反映在界面中。
在我看来,网络驱动程序正在调用我的脚本之前加载接口文件(早于预网络?)。我认为在预网络阶段要求重新启动网络接口是没有意义的,那么强制网络服务器使用新值的正确方法是什么?
编辑:这是我的服务定义:
[Unit]
Description=Updates network information from the OVF
Before=network-pre.target
Wants=network-pre.target
[Service]
Type=oneshot
ExecStart=/seven10/bin/setEnvFromOvf
[Install]
WantedBy=multi-user.target