我的理解是,cloud-init 的工作方式是每次实例检索一次元数据和用户数据。是否可以更改此方式,以便 cloud-init 在每次启动时检索数据?
我注意到删除目录 /var/lib/cloud/instances/12345678-1234-5678-1234-567812345678/ 强制进行新的检索,但这也会运行节点的其他初始化。
例如,我想更改我的实例 ntp 服务器 ip,但 cloud-init 似乎无法做到这一点。我遗漏了什么?
答案1
大多数提供商允许更新现有实例的用户数据 [1] [2]。这样,您可以向 cloud-init 提供新的详细信息,cloud-init 将在实例后续重新启动时再次运行。但是,cloud-init 是无状态的,因此您需要将整个用户数据重新传递给实例以进行正确的上下文化,否则您可能会丢失主机名等信息,或者在首次启动时通过用户数据推送的任何信息。