Montagens automáticas curinga com systemd

Montagens automáticas curinga com systemd

Estou executando jessie/sid com systemd 208 e tento converter a seguinte configuração curinga de autofs para uma definição /etc/fstabou .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.

informação relacionada