【问题标题】:cloud-init not working for NoCloud DataSourcecloud-init 不适用于 NoCloud 数据源
【发布时间】:2017-09-26 04:58:25
【问题描述】:

我正在尝试使用 NoCloud 数据源启动实例。 但每次实例出现时,它都会尝试连接到网络和元数据服务。

日志: 2015-08-17 15:48:58,115 - url_helper.py [警告]:调用 'http://169.254.169.254/2009-04-04/meta-data/instance-id' 失败 [0/120s]:请求错误 [HTTPConnectionPool(主机='169.254.169.254',端口 = 80):最大重试次数超出 url: /2009-04-04/meta-data/instance-id (Caused by : [Errno 111] Connection denied)]

我创建了一个包含元数据和用户数据的驱动器:

元数据:
实例 ID:iid-local01
本地主机名:cloudimg

用户数据:

#cloud-config
写入文件:
- 路径:/test.txt
内容:|
这是一行

但是文件没有被创建。你能帮忙解决这个问题吗?或者禁用 cloud-init 联系元数据服务。

【问题讨论】:

    标签: cloud datasource cloud-init


    【解决方案1】:

    旧的,但我今天遇到了同样的问题,因为 CentOS7 仍在使用 cloud-init 18.2。小心在 cloud-init 文档上选择正确的版本(我没有先),我发现标签必须是小写的“cidata”。

    如果标签错误或没有标签,您的设备将被忽略,cloud-init 将回退到基于网络的数据源(EC2、OS 等...)。

    请随意使用我的示例脚本,因为它会生成一个包含您的用户数据和元数据文件的 vfat img。然后将其附加到您的虚拟机。

    用当前的 ubuntu 和 CentOS 云镜像测试。

    https://github.com/BrHal/CloudInit

    【讨论】:

    • 感谢脚本。它没有解决我的问题,unix.stackexchange.com/questions/673736/…,但它确实消除了潜在错误的一个来源,所以现在我可以继续对我的流程的其他部分进行故障排除。
    【解决方案2】:

    我怀疑您的问题是没有正确创建附加磁盘,以便 cloud-init 识别它。 documentation有更多信息。

    cloud-localdscloud-utils 包中提供的一个非常独立的工具,可以帮助创建可用的 NoCloud 数据源。它的用法如下所示,提供了一个“disk1.img”文件,其中包含安装了 cloud-init 的图像。

    $ cat my-user-data
    #cloud-config
    password: passw0rd
    chpasswd: { expire: False }
    ssh_pwauth: True
    
    $ echo "instance-id: $(uuidgen || echo i-abcdefg)" > my-meta-data
    $ cloud-localds my-seed.img my-user-data my-meta-data
    $ qemu-system-x86_64 -enable-kvm \
        -net nic -net user,hostfwd=tcp::2222-:22 \
        -drive file=disk1.img,if=virtio -drive file=my-seed.img,if=virtio
    
    $ ssh -p 2222 ubuntu@localhost
    

    如果这不适合您,请file a bug

    【讨论】:

    猜你喜欢
    • 2014-02-09
    • 2017-04-20
    • 2016-03-26
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多