Bonjour !
Alors voilà, cette semaine j’ai installé un serveur DHCP afin de délivrer automatiquement des IP à mes PC Client et j’ai écrit des scripts pour copier et lancer des machines virtuelles sur mes clients (le script propose des VMs et on choisit depuis le serveur laquelle copier sur le client avec read et scp). ça fonctionne, je suis content.
Maintenant j’aimerais pouvoir lancer mon script juste après que le client ai reçu son adresse ip (par le dhcp).
J’ai trouvé des pistes et je pense que je suis assez proche de réussir mais je bloque.
J’ai modifier mon fichier /etc/dhcp/dhcpd.conf pour ajouter:
on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
execute("/usr/sbin/dhcpevent", "commit", clip, clhw, host-decl-name);
}
et j’ai copier mon script dans /usr/sbin/ en l’appelant dhcpevent.
Après reboot et connexion du client, rien ne se passe. Et en regardant le fichier /var/log/syslog je vois :
Oct 15 09:22:04 serveur dhcpd: execute_statement argv[0] = /usr/sbin/dhcpevent
Oct 15 09:22:04 serveur dhcpd: execute_statement argv[1] = commit
Oct 15 09:22:04 serveur dhcpd: execute_statement argv[2] = 192.168.0.12
Oct 15 09:22:04 serveur dhcpd: execute_statement argv[3] = 54:ee:75:4f:c9:e6
Oct 15 09:22:04 serveur dhcpd: data: host_decl_name: not available
Oct 15 09:22:04 serveur dhcpd: execute: bad arg 4
Oct 15 09:22:04 serveur dhcpd: DHCPREQUEST for 192.168.0.12 from 54:ee:75:4f:c9:e6 via eth0
Oct 15 09:22:04 serveur dhcpd: DHCPACK on 192.168.0.12 to 54:ee:75:4f:c9:e6 (debian-portable) via eth0
Donc mon script se lance avant que l’ip du client soit définie et j’aimerais qu’il se lance après… Et puis normalement si mon script s’execute un terminal devrait s’ouvrir et afficher au minima des lignes echo “quelquechose” qui sont dans mon script. Peut être en changeant l’ordre execute_statement argv[X] = tatata, pour l’instant je cherche de se coté.
EDIT1: Je viens de tester, enfaite je ne pense pas que mon script soit lu, car j’ai ajouté une commande touch CAMARCHE.txt au début du script, mais le fichier n’est pas créé ce qui montre que mon script n’est pas parcourue.
J’ai aussi essayé de mettre mon script dans /etc/dhcp/dhclient-enter.hook.d/ apparement le dhcp lance tout les scripts contenus dans le dossier. Mais pareil, rien ne s’affiche ou ne semble se lancer.
J’en appelle donc à votre aide car je ne sais pas trop comment résoudre mon problème.
Je précise que mon serveur ainsi que mes PC clients sont sous debian 8 (Jessie), le serveur est sous Gnome, les clients aussi mais boot juste sur les consoles tty (et les scripts lance le serveur X après transfert de la VM ou bien si le client n’est pas connecté il lance la VM présentent sur son systeme).
Mon serveur et mes PC Clients sont reliés en local seulement via un switch, je n’utilise pas de dns ni de routeur et aucun de mes PC ou de mon serveur n’a d’accès à internet (c’est fais exprès
). Pour le DHCP j’utilise isc-dhcp-server.
Merci pour vos conseils et votre aide (en avance). 