cloud-init 常见问题

1  日志文件都放在了哪里

  

1  /var/log/cloud-init.log
2 服务的输出
systemd 启动的系统可以查看 journalctl 日志
sysvinit/upstart 启动的系统应该在 /var/log/cloud-init-output.log 里,这块我需要确认下

 如何收集日志

cloud-init collect-logs

执行此命令,会将 cloud-init.log  cloud-init-output.log  dmesg journal.txt 等日志打包成一个 tar.gz包

 

 

2配置文件在哪里

/etc/cloud/cloud.cfg
/etc/cloud/cloud.cfg.d/*.cfg

 

3  数据文件在哪里存放

 

在目录 /var/lib/cloud/  下有两个非常重要的子目录

【1】instance

/var/lib/cloud/instance  这个目录作为链接 链到了最近使用的实例id的目录 ,这个路径包含了cloud-init 从数据源里获取的信息,

包括 vender 和 user-data,这些信息能更好的帮助我们检查 所传入的数据信息是正确的

该目录下 包含了一个 datasource  文件,这个文件存储了数据源是如何被识别并被用来设置系统的。

该目录下的 boot-finished 文件是cloud-init 做的最后一件事了,(创建并写入信息)

【2】data

/var/lib/cloud/data目录包含与上一次引导相关的信息

instance-id  cloud-init发现的实例的id, 更改此文件无效

result.json 结果文件,是一个json文件,里面包含了 被用来设置系统的数据源 和 所有出现的错误信息

{
"v1": {
"datasource": "DataSourceAliYun2Local",
"errors": []
}
}

 

status.json  json文件显示所使用的数据源,如果发生任何错误,则显示所有四个模块的分解以及开始和停止时间。

 

{
"v1": {
"datasource": "DataSourceAliYun2Local",
"init": {
"errors": [],
"finished": 1605448297.1101456,
"start": 1605448296.9718385
},
"init-local": {
"errors": [],
"finished": 1605448296.0323591,
"start": 1605448291.9045517
},
"modules-config": {
"errors": [],
"finished": 1605448297.8589938,
"start": 1605448297.6046104
},
"modules-final": {
"errors": [],
"finished": 1605448298.8025997,
"start": 1605448298.2927012
},
"modules-init": {
"errors": [],
"finished": null,
"start": null
},
"stage": null
}
}

 

4  如何查看我正在使用什么数据源

[root@localhost ~]# cloud-id
aliyun    

 如果现实的 数据源与期望不一致,可以使用debug 模式执行脚本  ds-identify

[root@localhost data]# DEBUG_LEVEL=2 DI_LOG=stderr  /usr/libexec/cloud-init/ds-identify --force
[up 512766.72s] ds-identify --force
policy loaded: mode=search report=false found=all maybe=all notfound=disabled
/etc/cloud/cloud.cfg set datasource_list: [ AliYun ]
DMI_PRODUCT_NAME=Alibaba Cloud ECS
DMI_SYS_VENDOR=Alibaba Cloud
DMI_PRODUCT_SERIAL=ba8aa0d6-3621-4037-ab33-c9440b0a14b3
DMI_PRODUCT_UUID=BA8AA0D6-3621-4037-AB33-C9440B0A14B3
PID_1_PRODUCT_NAME=unavailable
DMI_CHASSIS_ASSET_TAG=
FS_LABELS=
ISO9660_DEVS=
KERNEL_CMDLINE=BOOT_IMAGE=/boot/vmlinuz-3.10.0-1127.10.1.el7.x86_64 root=UUID=3d682a67-edb8-4ac7-ba8b-594f9d146fb6 ro crashkernel=auto spectre_v2=retpoline rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 noibrs
VIRT=kvm
UNAME_KERNEL_NAME=Linux
UNAME_KERNEL_RELEASE=3.10.0-1127.10.1.el7.x86_64
UNAME_KERNEL_VERSION=#1 SMP Wed Jun 3 14:28:03 UTC 2020
UNAME_MACHINE=x86_64
UNAME_NODENAME=jinkang-e2elog
UNAME_OPERATING_SYSTEM=GNU/Linux
DSNAME=
DSLIST=AliYun
MODE=search
ON_FOUND=all
ON_MAYBE=all
ON_NOTFOUND=disabled
pid=31508 ppid=11065
is_container=false
single entry in datasource_list (AliYun) use that.
[up 512766.73s] returning 0

 

5 我应该如何重新执行数据源检测 并 初始化

强制 重新执行ds-identify,清理日志,重新执行cloud-init

$ sudo DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force
$ sudo cloud-init clean --logs
$ sudo cloud-init init --local
$ sudo cloud-init init

 

posted on 2020-11-21 20:20  思此狂  阅读(2368)  评论(0编辑  收藏  举报

导航