我今天早上启动了 AWS OpsWorks 实例,然后收到一条错误消息,提示无法访问 /srv/www 目录。这很奇怪,因为昨天一切都运行正常。该实例运行的是 Ubuntu 14.04.3 LTS。
通过 SSH 进入实例后,我注意到我甚至无法以 root 身份访问 /srv/www。
root@stg-worker1:/srv# ll
total 8
drwxr-xr-x 3 root root 4096 Sep 24 07:17 ./
drwxr-xr-x 23 root root 4096 Sep 24 06:41 ../
drwxrwxrwx 2 root root 0 Sep 24 06:41 www/
root@stg-worker1:/srv# cd www
-bash: cd: www: No such file or directory
奇怪的是,www 目录的大小为 0 字节!然后我检查了 /var/www 目录,发现那里存在同样的问题(尽管这两个目录彼此不相关)
然后我在 /srv 中创建了一个新的测试目录,并且它正常工作。
root@stg-worker1:/srv# mkdir test
root@stg-worker1:/srv# stat test
File: ‘test’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: ca01h/51713d Inode: 164068 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-09-24 07:19:53.160462520 +0000
Modify: 2015-09-24 07:19:53.160462520 +0000
Change: 2015-09-24 07:19:53.160462520 +0000
Birth: -
Stat 命令显示它在正确的设备 ca01h 上,而 www 目录在另一个设备上
root@stg-worker1:/srv# stat www
File: ‘www’
Size: 0 Blocks: 0 IO Block: 1024 directory
Device: 1bh/27d Inode: 8970 Links: 2
Access: (0777/drwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-09-24 06:41:29.128571000 +0000
Modify: 2015-09-24 06:41:29.128571000 +0000
Change: 2015-09-24 06:47:56.392966341 +0000
Birth: -
我没有对 Opsworks 配置或任何手册进行任何更改。
有什么想法可能导致该问题或如何进一步调查?
答案1
实际上是食谱中发生了变化,导致 OpsWorks 设置失败。
该食谱在编译期间试图访问 /srv/www,并且看起来只有在食谱成功编译后 Opsworks 才会设置 /srv/www。