Я запускаю jessie/sid с systemd 208 и пытаюсь преобразовать следующую конфигурацию autofs с подстановочными знаками в /etc/fstab
определение ..mount
.automount
$ cat /etc/auto.master
/home/* -fstype=nfs homeserver:/exp/home/&
(домашний сервер работает под управлением Solaris, где каждый подкаталог /exp/home/
является отдельным общим ресурсом.)
Есть ли способ эмулировать подстановочные карты с помощью systemd?
решение1
Полагаю, нет. Имя модуля .mount/.automount должно быть равно пути монтирования, экранированному с помощью systemd-escape --path
. И единственный способ в systemd инстанцировать модули — это «синтаксис шаблона» формы [email protected]
. Следовательно, по крайней мере невозможно иметь динамически инстанцированный модуль монтирования.
Просто используйте autofs. systemd не является заменой всего.
решение2
Вы можете использовать systemdинтерфейс генератора. По сути, он создает служебные файлы «на лету» при запуске или перезагрузке.
У нас есть ряд машин (называемых "dema" плюс некоторое число) в нашем кластере, которые все экспортируют один и тот же каталог (их физический диск). Я использовал интерфейс генератора, чтобы создать один.устанавливатьи один.автомонтированиефайл для каждой машины:
#!/bin/sh
svc_dir=/run/systemd/generator
for i in $(seq 1 99); do
# this must match the mount path, / is converted to -
unit_bn=cluster-dema$i
cat << EOF > "${svc_dir}/${unit_bn}.automount"
[Unit]
Description=dema${i}s localdisks automount point
Documentation=file:///usr/lib/systemd/system-generators/dema-automount-generator
Before=remote-fs.target
[Automount]
Where=/cluster/dema$i
EOF
cat << EOF > "${svc_dir}/${unit_bn}.mount"
[Unit]
Description=dema${i}s localdisks
Documentation=file:///usr/lib/systemd/system-generators/dema-automount-generator
[Mount]
What=dema$i:/localdisks
Where=/cluster/dema$i
Type=nfs
Options=rw,nosuid,nodev,hard,intr,rsize=8192,wsize=8192,noauto,x-systemd.automount
EOF
ln -s "../${unit_bn}.automount" "${svc_dir}/remote-fs.target.requires"
done
Скрипт должен быть помещен в/usr/lib/systemd/системные-генераторыи исполняемый. После того, как вы его туда поместите, вызовитеsystemd daemon-reloadи вы должны найти единицы измерения в/run/systemd/генератор. Они активируются при следующей перезагрузке и могут быть запущены вручную, конечно, вызвавsystemd start oneofthenames.automount.