我尝试为分布式 OVA 设备编写一个网络/环境配置器,类似于 Github Enterprise 所做的,请参阅https://github-images.s3.amazonaws.com/enterprise/Enterprise-QS-Virtualbox-Console.png。我使用 CoreOS 和 Systemd 作为初始化系统。自动登录已停用,我当前的方法是编写一个 .service 单元来设置网络,然后使用这些配置重新启动。这样做的原因是,在 systemd 启动期间,我有足够的权限来更改网络,而不必允许用户登录。缺点是这个过程基本上会挂起/停止 systemd 启动。
我的问题是如何配置 Systemd(在 CoreOS 中),以便在启动后向用户呈现一个交互式程序/脚本,并且用户无法“退出”该程序/脚本?
答案1
如果你想做网络配置你可以一举检查一下点火。它在 systemd 初始化之前运行,这意味着您可以在第一次启动时写出您的网络单元。
至于将 SSH 用户放入安装程序/配置器,您可以使用ForceCommand
它来运行包含安装程序的容器。最佳做法是将其锁定到特定用户。更多信息:https://stackoverflow.com/questions/33713680/ssh-force-command-execution-on-login-even-without-shell
请让我知道结果如何!