首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跟踪无人值守升级或cloud-init的进度?

如何跟踪无人值守升级或cloud-init的进度?
EN

Stack Overflow用户
提问于 2019-10-08 03:17:34
回答 2查看 823关注 0票数 1

我希望使用Packer (构建镜像)和Ansible (配置器)来配置Ubuntu AMI。

"name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",

我遇到了一些困难,因为一些任务试图使用apt安装包,但锁被另一个进程持有。我很难确定哪些进程持有锁,最重要的是,该进程的进度如何。

默认情况下,amazon设置的AMI将在启动时安装安全更新,因此我假设这就是它。正如文档所解释的,它可能与cloud-init有关?我相信这也与无人参与的升级有关,因为正如你在这个1粘贴中看到的,有一个无人参与的升级-关机过程正在等待一些其他的过程(apt?)在关机前完成升级的安装。

如果我使用sudo lslocks,我会得到

代码语言:javascript
复制
    amazon-ebs:         "COMMAND           PID  TYPE SIZE MODE  M START END PATH",
    amazon-ebs:         "lvmetad           433 POSIX   4B WRITE 0     0   0 /run/lvmetad.pid",
    amazon-ebs:         "iscsid           1082 POSIX   5B WRITE 0     0   0 /run/iscsid.pid",
    amazon-ebs:         "lxcfs            1110 POSIX   5B WRITE 0     0   0 /run/lxcfs.pid",
    amazon-ebs:         "cron             1134 FLOCK   5B WRITE 0     0   0 /run/crond.pid",
    amazon-ebs:         "atd              1127 POSIX   5B WRITE 0     0   0 /run/atd.pid"

这并没有告诉我很多关于我感兴趣的锁的文件。

如果我执行tail /var/log/cloud-init-output.log,我会看到cloud-init已经完成了工作。

如果我tail /var/log/dpkg.log,我会看到9月13日的日志,而不是今天。

如果我tail /var/log/apt/term.log,我会看到9月13日的日志,而不是今天。

代码语言:javascript
复制
>&1 sudo fuser '/var/lib/dpkg/lock-frontend' || echo aa ;
>&1 sudo fuser -vvv /var/lib/apt/lock || echo a ;
>&1 sudo lsof /var/lib/apt/lists/lock || echo b ;
>&1 sudo lsof /var/lib/dpkg/lock || echo c ;
>&1 sudo lsof /var/cache/apt/archives/lock || echo d ;

正在输出

代码语言:javascript
复制
aa
a
b
c
d

所以我知道这些锁文件并不存在。我很困惑,因为有一个关于锁文件的错误:Failed to lock apt for exclusive operation

我怎么才能找到那是什么锁文件。最重要的是,我如何跟踪持有该锁的进程的进度?

谢谢!

0:security updates docs

1:ps paste

EN

回答 2

Stack Overflow用户

发布于 2019-10-08 03:29:57

从cloud-init v.18.2或更高版本开始,cloud-init status --wait将阻塞,直到cloud-init运行完毕。因此,它是脚本在完成其余工作之前可以利用的一个简单的“钩子”。

票数 1
EN

Stack Overflow用户

发布于 2019-10-16 07:18:19

似乎在Ansible中使用Packer会让事情变得有点复杂。出于某种原因,我在我的打包程序配置中设置了EC2将被ssh到使用ubuntu用户,而Ansible将使用根用户。这导致Ansible不尝试运行"sudo“,因为它认为它已经是root。因此,它无法获得用于安装包的锁。

但是,这并没有回答如何跟踪包的安装进度。我认为通过观察cloud-init可以很好地了解正在发生的事情。Cloud-init已经完成了工作。apt日志显示没有任何进展,所以我相信它没有安装任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58275850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档