Estou executando jessie/sid com systemd 208 e tento converter a seguinte configuração curinga de autofs para uma definição /etc/fstab
ou .mount
/ ..automount
$ cat /etc/auto.master
/home/* -fstype=nfs homeserver:/exp/home/&
(homeserver executa um Solaris com cada subdiretório sendo /exp/home/
um compartilhamento separado.)
Existe uma maneira de emular mapas curinga com o systemd?
Responder1
Suponho que não. O nome da unidade .mount/.automount deve ser igual ao caminho de montagem, escapado com systemd-escape --path
. E a única maneira no systemd de instanciar unidades é a "sintaxe do modelo" de um formulário [email protected]
. Portanto, pelo menos não é possível ter uma unidade de montagem instanciada dinamicamente.
Basta usar o autofs. systemd não é um substituto para tudo.
Responder2
Você poderia usar o systemdinterface do gerador. Basicamente, ele cria arquivos de serviço dinamicamente ao iniciar ou recarregar.
Temos uma variedade de máquinas (chamadas "dema" mais algum número) em nosso cluster, todas exportando o mesmo diretório (seu disco físico). Usei a interface do gerador para criar um.montare um.montagem automáticaarquivo para cada máquina:
#!/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
O script deve ser colocado em/usr/lib/systemd/system-generatorse executável. Depois de colocá-lo lá, liguesystemd daemon-reloade você deve encontrar as unidades em/executar/systemd/gerador. Eles são ativados na próxima reinicialização e podem ser iniciados manualmente, é claro, chamandosystemd inicia um dos nomes.automount.