我正在尝试使用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联系元数据服务。
答案 0 :(得分:0)
我怀疑你的问题是没有正确创建附加的磁盘,所以cloud-init会识别它。 documentation中有更多信息。
cloud-localds是cloud-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云映像进行了测试。