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"
看起来效果不错