gpt4 book ai didi

centos - 带有 Centos7/8 的 Google Compute Engine (GCE) 上的 Cloud Init 在首次启动时无法正常运行,但在任何其他重启后都正常

转载 作者:行者123 更新时间:2023-12-04 19:40:56 25 4
gpt4 key购买 nike

我们有一个 CentOS 8(也试过 7)镜像,我正在添加一些配置来充当路由器。
问题是,由于某种原因,第一次创建实例时,云初始化不会读取我们使用用户数据元数据传递的网络配置

#cloud-config
network
version: 1
etc...
我们将 eth1 配置为使用 dhcp 并让 cloud-init 对其进行管理,并添加一个路由。
每次初始启动后都能完美运行(并停止>重新启动)。
对我来说,感觉 cloud-init 不知道配置,但是当我进入机器并执行 cloud-init query userdata 时我可以看到数据,即使我看到 cloud-init clean && cloud-init init它什么也没做。如果机器重新启动,相同的命令可以正常工作

最佳答案

尝试运行 cloud-init analyze show两次(实例创建和连续重启)并检查是否有任何差异。
可悲的是,云提供商有点滥用 cloud-init 的能力。 ,而不是完全错误。 cloud-init允许自定义供应商/用户提供的配置(谁覆盖什么),更改引导阶段的顺序等。
这样做主要是因为不同的云提供商在不同的时间需要网络/供应/存储。例如,AWS 在网络之后附加存储(仅限 EBS),Azure 仅在附加存储后提供 VM,并且它本身作为 NTFS 提供(如果您需要其他任何东西,它们会真正格式化驱动器)等等。
这些恶作剧虽然是可以理解的(数据中心基础设施定义了用户可用性),但使 cloud-init的文档只是供用户调查的建议。
根据我的经验,Azure 是最接近原始实现的。可能他们还没有学会如何利用对他们有利的潜力。
对于任何实例定制(几乎总是有效),我的一般建议是使用 write_files 编写脚本。并使用 bootcmd/runcmd 执行它们,因为这些运行在 final阶段,并提供最佳覆盖机会。编辑 hosts ,更改防火墙规则 - 大多数东西都不需要重新启动。

关于centos - 带有 Centos7/8 的 Google Compute Engine (GCE) 上的 Cloud Init 在首次启动时无法正常运行,但在任何其他重启后都正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62848325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com