Existe-t-il un outil pour valider les fichiers / etc / network / interfaces?


26

J'aime toujours tester de nouveaux fichiers de configuration avant de les déployer - avec des outils comme apachectl configtestet named-checkconf.

Il est rare que des erreurs surviennent, mais les rattraper avant le déploiement élimine tout impact. Celui qui m'a mordu à l'arrière plusieurs fois est /etc/network/interfaces; Je n'arrive pas à trouver un outil pour le tester, et redémarrer le réseau sur une machine distante seulement pour découvrir qu'il n'est plus accessible est assez ennuyeux - surtout lorsque nous utilisons beaucoup de liaisons et de ponts.

Réponses:


24

Pour développer la réponse de @ jdthood ...

Si l'interface est déjà active, vous pouvez toujours utiliser cette méthode pour valider le /etc/network/interfacesfichier. Par exemple, en supposant que vous avez une erreur, vous pouvez voir quelque chose comme ceci:

$ sudo ifup --no-act eth0
/etc/network/interfaces:11: unknown method
ifup: couldn't read interfaces file "/etc/network/interfaces"

Apparemment, il y a une erreur sur la ligne 11. Génial. Dieu merci, je n'ai pas fait rebondir le réseau uniquement pour perdre l'accès SSH!

Si tout va bien, vous verrez:

$ sudo ifup --no-act eth0
ifup: interface eth0 already configured

9

Les éléments suivants peuvent faire partie de ce que vous voulez.

ifup --no-act eth0

6

Si vous n'avez pas de eth0, cela ne fonctionnera pas, par exemple:

Ignoring unknown interface eth0=eth0.

Mais si vous aimez ça:

ifup -a --no-act ; echo "status: $?"

Avec ok config:

ifup -a --no-act ; echo "status: $?"
run-parts  /etc/network/if-pre-up.d
run-parts  /etc/network/if-up.d
status: 0

Avec une configuration non ok:

ifup -a --no-act ; echo "status: $?"
/etc/network/interfaces:12: option with empty value
ifup: couldn't read interfaces file "/etc/network/interfaces"
status: 1
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.