我正在通过 bash 脚本(在 cron 作业上)从各种 ubuntu 机器向中央服务器发送一些信息,并且我需要唯一地标识每台机器,以便我知道哪些统计数据与每台机器有关。
我可以在每台机器上强制执行某种令牌,但我更喜欢自动化的东西。
从表面上看,它/etc/machine-id
在大多数情况下都会起作用,但有一种情况下它不起作用——如果克隆虚拟机并启动新实例(例如在 AWS 或 Digital Ocean 中),那么我假设我们会有重复的机器 ID?
还有其他我可以使用的替代方案吗?
答案1
您可以使用 machine-id。/etc/machine-id
从您的 VM 模板映像中删除。请注意,如果您再次启动映像,systemd 将重新创建它,这在克隆中是可取的,但在模板映像中则不是。如果缺少它,您可以使用 在克隆实例上生成一个systemd-machine-id-setup
。
uuidgen
或者生成您自己的标识符。将(来自 util-linux)的输出写入安装脚本或初始化脚本中的文件非常简单。