Exporte nfs para dispositivos no intervalo de ip local sem especificar o ip local

0

Eu tenho um sistema que contém um número de pi de framboesa, um dos quais é um 'mestre' que deve exportar um nfs para um número de dispositivos 'escravos' no sistema.

O sistema será conectado à rede de usuários finais; o usuário final poderá especificar um intervalo de sub-rede ip no qual os pi's devem se comunicar.

Para reduzir a complexidade de configuração para o usuário final, é possível especificar em / etc / exports para compartilhar apenas com o endereço IP local do pi?

Algo como:

/home      local-ip/255.255.255.0(ro)

Para ser claro: Se o usuário final definir o ip dos pis para estar no intervalo 10.0.1.x ou no intervalo 192.168.5.x, é possível que as exportações utilizem esse intervalo automaticamente sem modificar / etc / exportações? Eu não quero exportar para todos os ip's.

Outras informações: o usuário não tem comunicação com o sistema enquanto estiver em uso. O cartão SD para o pi tem uma pequena partição FAT que o usuário final pode montar em um computador windows e modificar um arquivo de interfaces que é fornecido por / etc / network / interfaces para permitir que eles alterem o ip. O / etc / exports não parece suportar o fornecimento de outro arquivo.

    
por SteevieD 15.01.2018 / 21:33

1 resposta

2

Você está certo, /etc/exports não pode ser originado por métodos convencionais - você pode, no entanto, fazer o script do conteúdo do arquivo:

#!/bin/bash
ip_info=$(ip a | grep inet | grep -v "127.0.0.1" | cut -d " " -f 6)
range=$(echo $ip_info | sed 's/\.[0-9]\+\//\.0\//g')
echo "/home/              $range(ro)" > /etc/exports
exportfs
/etc/init.d/nfs-kernel-server restart

Coloque isso com seu editor favorito em /root/set_nfs_exports.sh e torne-o executável

chmod +x /root/set_nfs_exports.sh

e executá-lo depois que a interface de rede aparecer

ln -s /root/set_nfs_exports.sh /etc/network/if-up.d/export-nfs

Espero que isso ajude

    
por 16.01.2018 / 08:56