Chef 未在第一个 bootstrap 上执行 "mount"

Chef not executing "mount" on first bootstrap

我正在尝试使用 Chef 挂载 s3fs。我无法让 mount 资源为 s3fs 工作,而 s3fs 的供应商说明书想要给 mount 起一个与我们想要命名的不同的名字(我们的 s3 存储桶的名称中有“.”)。

所以我手动创建了 fstab 记录和 运行 一个 "mount" 命令来挂载它。然而,坐骑不是 运行ning。没有错误,厨师日志文件说它执行了块。

bash 'mount_s3fs' do
  code <<-EOF 
  mount -a
  EOF
  user 'root'
  not_if "df -kh | grep s3fs -q"
end

这是打印到日志文件的内容

[2016-12-29T21:29:02+00:00] INFO: Processing bash[mount_s3fs] action run (cookbook::recipe line 66)
[2016-12-29T21:29:03+00:00] INFO: bash[mount_s3fs] ran successfully

如果我 运行 第二次安装食谱,它就可以正常安装了。如果我在 bootstrap 之后添加食谱,它 运行 没问题。我非常困惑。由于此行为仅出现在 bootstrap.

我正在 运行在 AWS 的 Debian Jessie 8.4 上使用 Chef 12.12.15。

虽然这似乎与 Chef 无关,但您可能应该修复食谱代码以改用 mount 资源。

好吧,经过数小时的故障排除,我认为问题出在 Debian 本身。如果我 运行 使用 Debian 8.0 AMI 的同一个脚本,它工作正常,如果我升级到 8.4 或更高版本的图像,它就不起作用。我没有使用 8.1、8.2 或 8.3 进行测试,因为我已经厌倦了这个问题。