尝试使用 sshfs 从 puppet exec 挂载目录

尝试使用 sshfs 从 puppet exec 挂载目录

Ununtu 16.04 和 18.04(两者存在同样的问题)

我正在尝试使用 sshfs 在另一个系统上挂载一个目录,它在命令行上运行良好,但是当我从 puppet“exec”执行相同的命令时,它似乎成功了,但挂载点不可用:

rful011@secmonprd10:~$ ls -l ~传感器/规则/
ls:无法访问‘/home/sensors/Rules/source’:权限被拒绝
共 4
drwxr-xr-x 2 个传感器 传感器 4096 6月 5 日 13:03 原始
lrwxrwxrwx 1 传感器 传感器 33 8 月 21 日 12:32 传感器 -> /usr/local/var/lib/suricata/rules
d????????? ? ? ? ? ? 来源

其中“源”是相关目录

用于挂载它的命令是: sshfs -o idmap=user sensors@<host>:Rules/raw /home/sensors/Rules/source

Puppet 说执行成功了,但我在日志中找不到任何与此相矛盾的内容。

我想知道 sshfs 是否正在等待设置一些环境变量?

傀儡代码:

exec{"rule-source-share":
 command => "sshfs -o idmap=user sensors@<host>:Rules/raw  /home/sensors/Rules/source",
 user => "sensors",
  path        => "/usr/bin:/bin:/usr/local/bin",
  unless => "test -f /home/sensors/Rules/source/updated"
}

'除非' 应该检查安装是否到位但不起作用

有没有更好的方法来确保目录已被挂载?

答案1

添加:

     environment => ['USER=sensors', 'HOME=/home/sensors'],

puppet 中的 exec 似乎已经修复了挂载问题,为了检测磁盘是否已挂载,我现在正在使用

 unless => "mountpoint -q /home/sensors/Rules/source"

看起来效果不错

相关内容