Montagens automáticas de caracteres curinga com o systemd

5

Estou executando jessie / sid com o systemd 208 e tento converter a seguinte configuração de caractere curinga de autofs em 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 em /exp/home/ sendo um compartilhamento separado.)

Existe uma maneira de emular mapas curinga com o systemd?

    
por Debilski 07.05.2014 / 11:03

2 respostas

2

Eu suponho que não. O nome da unidade .mount / .automount deve ser igual ao caminho de montagem, com escape de systemd-escape --path . E a única maneira de o systemd instanciar unidades é a "sintaxe do modelo" de um formulário [email protected] . Por isso, pelo menos não é possível ter uma unidade de montagem instanciada dinamicamente.

Apenas use o autofs. O systemd não é um substituto para tudo.

    
por 27.12.2014 / 23:03
2

Você pode usar a interface do gerador do systemd. Basicamente, ele cria arquivos de serviço em tempo real ao iniciar ou recarregar.

Temos um conjunto de máquinas (chamadas de "dema" mais algum número) em nosso cluster, que exportam o mesmo diretório (seu disco físico). Eu usei a interface do gerador para criar um arquivo .mount e um .automount 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-generators e executável. Depois de colocá-lo lá, chame systemd daemon-reload e você deverá encontrar as unidades em / run / systemd / generator . Existem ativados na próxima reinicialização e podem ser iniciados manualmente, é claro, chamando systemd para iniciar um dos nomes dos nomes. .

    
por 27.04.2015 / 19:06