Назад | Перейти на главную страницу

Попытка использовать sshfs для монтирования каталога из марионеточного exec

Ununtu 16.04 и 18.04 (одинаковая проблема на обоих)

Я пытаюсь использовать sshfs для монтирования каталога в другой системе, он отлично работает из командной строки, но когда я выполняю ту же команду из марионетки «exec», кажется, что это получается, но точка монтирования не используется:

rful011@secmonprd10:~$ ls -l ~sensors/Rules/
ls: cannot access '/home/sensors/Rules/source': Permission denied
total 4
drwxr-xr-x 2 sensors sensors 4096 Jun  5 13:03 raw
lrwxrwxrwx 1 sensors sensors   33 Aug 21 12:32 sensor -> /usr/local/var/lib/suricata/rules
d????????? ? ?       ?          ?            ? source

где "источник" - это каталог, о котором идет речь

Для его монтирования используется следующая команда: 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"
}

"Если" не проверяет, на месте ли крепление, но не работает

Есть ли лучший способ убедиться, что каталог смонтирован?

Добавление:

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

к exec в марионетке, похоже, устранила проблему с монтированием, чтобы определить, смонтирован ли диск, я сейчас использую

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

который, кажется, работает нормально