1

我无法找到如何在 linux 中只用厨师安装一次设备。这意味着在其他厨师客户端上,该资源不应执行,因为那里的设备已安装到特定路径。我如何使用厨师的幂等性来做到这一点?...

这是我在 chef-client 日志末尾看到的日志堆栈跟踪

[2013-11-06T23:12:28+00:00] ERROR: Running exception handlers
[2013-11-06T23:12:29+00:00] FATAL: Saving node information to /var/chef/cache/failed-run-data.json

[2013-11-06T23:12:29+00:00] ERROR: Exception handlers complete

[2013-11-06T23:12:29+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out

[2013-11-06T23:12:29+00:00] FATAL: Mixlib::ShellOut::ShellCommandFailed: mount[/testpath] (mycookbook::myrecipe line 53) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '32'


STDOUT: 

STDERR: mount: /dev/xvdb already mounted or /testpath busy
mount: according to mtab, /dev/xvdb is already mounted on /testpath

---- End output of mount -t auto -o defaults /dev/xvdb /testpath ----

Ran mount -t auto -o defaults /dev/xvdb /testpath returned 32
4

4 回答 4

4

使用挂载资源:

mount '/testpath' do
  device '/dev/xvdb'
  action [:mount, :enable]
end
于 2013-11-07T02:52:37.990 回答
0

所以问题是我没有把'/'放在我的测试路径前面......因此安装资源无法识别/testpath是否已经创建......简单的语法错误很可能失败: D...谢谢

于 2013-11-09T04:43:29.807 回答
0

首先执行 :umount 然后执行 :mount 操作

mount /srv/nfs do device "nfsserver://remotepath/subdir" fstype 'nfs' action [:umount, :disable] end

mount /srv/nfs do device "nfsserver://remotepath/subdir" fstype 'nfs' action [:mount, :enable] end

完毕

于 2016-02-10T13:09:05.680 回答
0

万一有人登陆这里在 Amazon Linux (ALAMI) 上安装 nfs (或EFS// )卷,诀窍是在设备路径前加上. 您会注意到mountALAMI 上的输出包括该内容。请注意,如果您挂载在 EFS 的根目录,则只会/显示一个并且您的配方应该匹配。

这是一个工作示例:

mount /mnt/mydev do
  device "nfsserver://remotepath/subdir"
  fstype 'nfs'
  action [:mount, :enable]
end

这是mountALAMI 的输出:

. . .
us-west-2a.fs-XXXX.efs.us-west-2.amazonaws.com://remotepath/subdir /mnt/mydev nfs defaults 0 2
. . .
于 2015-08-21T06:51:43.240 回答