IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation et administration système Perl Discussion :

Comment modifier dhcpd.conf avec le module Net::ISC::DHCPd::Config


Sujet :

Programmation et administration système Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Comment modifier dhcpd.conf avec le module Net::ISC::DHCPd::Config
    Bonjour,

    J'utilise le module Net::ISC:HCPd::Config pour parser la configuration du fichier de conf dhcpd donc voici un extrait :

    subnet 192.168.10.0 netmask 255.255.255.0 {
    option routers 192.168.10.1;
    range 192.168.10.100 192.168.10.200;

    host pnom {
    hardware ethernet D0:AA:12:BC:13:65;
    fixed-address pnom.domain.net
    }
    host pnom2 {
    hardware ethernet D0:AA:12:BC:13:66;
    fixed-address pnom2.domain.net
    }
    }
    subnet 192.168.20.0 netmask 255.255.255.0 {
    option routers 192.168.10.1;
    range 192.168.10.100 192.168.10.200;
    host pnom3 {
    hardware ethernet D0:AA:12:BC:13:67;
    fixed-address pnom.domain.net
    }
    host pnom4 {
    hardware ethernet D0:AA:12:BC:13:68;
    fixed-address pnom2.domain.net
    }
    }
    subnet 192.168.30.0 netmask 255.255.255.0 {
    option routers 192.168.10.1;
    range 192.168.10.100 192.168.10.200;
    host pnom5 {
    hardware ethernet D0:AA:12:BC:13:69;
    fixed-address pnom.domain.net
    }
    }
    et le début du script…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #! /usr/bin/perl
     
    use sctrict; 
    use warnings;
    use utf8;
    use Data::Dumper;
     
    use Net::ISC::DHCPd::Config;
     
    my $config = Net::ISC::DHCPd::Config->new(file => './dhcpd.conf');
    $config->parse;
     
    print Dumper \$config;
    Jusque là tout va bien, mon fichier de conf est parfaitement bien parsé.

    Maintenant je souhaite ajouté pnom6 dans le subnet 192.168.20.0:

    host pnom6 {
    hardware ethernet D0:AA:12:BC:13:6A;
    fixed-address pnom.domain.net
    }
    Comment faire?

    Sachant que pour ajouter un host je peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $config->add_host({
        name => 'pnom6',
    )}
    mais l'host ajouté n'a pas les attributs hardware ethernet et fixed-address, et il est ajouté à la racine du fichier de conf, je ne sais pas comment l'ajouter dans un subnet.

    Je ne vois pas de méthodes documentées dans le CPAN me permettant de faire çà.

    Ensuite pour réécrire le fichier de conf il me resterai plus qu' à faire $config->generate …

    Merci d'avance pour ceux qui voudront bien apporter leur aide

  2. #2
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Après avoir fouillé dans le code du module je me suis retrouvé à faire quelque chose comme çà :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $host = Net::ISC::DHCPd::Config::Host->new(name=>'pnom6');
    my $ipadress = Net::ISC::DHCPd::Config::Host::FixedAddress->new(name=>'pnom6.domain.net');
    my $macadress = Net::ISC::DHCPd::Config::Host::HardwareEthernet->new(name=>'D0:AA:12:BC:13:6A');
     
    $host->_add_child("Net::ISC::DHCPd::Config::Host::FixedAddress",$ipadress);
    $host->_add_child("Net::ISC::DHCPd::Config::Host::HardwareEthernet",$macadress);


    Il me reste juste à trouver comment ratacher tout çà au bon subnet.

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [RESOLU]
    J'ai trouvé la solution avec un peu d'aide.
    Au cas où, si çà peut servir à quelqu'un voici le code (à modifier pour rendre le script un peu plus utile) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
        #! /usr/bin/perl
     
        use strict;
        use warnings;
        use utf8;
        use Net::ISC::DHCPd::Config;
     
        my $ipsubnet = '192.168.20.0';
     
        my $config = Net::ISC::DHCPd::Config->new(file=>'./dhcpd.conf');
     
        my @subnets = $config->find_all_children('subnet');
     
        foreach my $subnet (@subnets) {
            if ($subnet->{address} =~ /$ipsubnet/) {
                my $host = $subnet->add_host( {name => 'pnom6'} );
                $host->add_fixedaddress({value => 'pnom6.domain.net'});
                $host->add_hardwareethernet({value => 'D0:AA:12:BC:13:6A'}); 
                last; 
            }
        }
     
        print $config->generate;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/06/2009, 19h31
  2. Réponses: 0
    Dernier message: 18/03/2009, 09h44
  3. Comment modifier un PDF avec iText?
    Par adrielo dans le forum Documents
    Réponses: 6
    Dernier message: 07/11/2008, 16h27
  4. Réponses: 1
    Dernier message: 16/03/2007, 17h30
  5. se connecter avec le module Net::MySQL
    Par vbcasimir dans le forum SGBD
    Réponses: 5
    Dernier message: 27/07/2006, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo