cloud-init不适用于NoCloud DataSource

时间:2017-04-28 07:03:05

标签: cloud datasource cloud-init

我正在尝试使用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(host =' 169.254.169.254',port = 80):使用url超出最大重试次数:/ 2009-04-04 / meta-data / instance- id(引起:[Errno 111]拒绝连接)]

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

元数据:
instance-id:iid-local01
local-hostname:cloudimg

用户数据:

#云配置
write_files:
   - 路径:/test.txt
    内容:|
      这是一行

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

2 个答案:

答案 0 :(得分:0)

我怀疑你的问题是没有正确创建附加的磁盘,所以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

答案 1 :(得分:0)

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

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

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

使用当前的ubuntu和CentOS云映像进行了测试。

https://github.com/BrHal/CloudInit