in reply to Re^3: How do I use a template, csv file and script to generate multiple switch configurations
in thread How do I use a template, csv file and script to generate multiple switch configurations

I can also add that my .csv now looks like this:

# ip,hostname,location 172.30.240.1,CUSOM-176-SWI-001,1st Fl N IDF 172.30.240.2,CUSOM-176-SWI-002,1st Fl N IDF
and my config template looks something like this:
hostname ##hostname## interface Vlan1 ip address ##ip## 255.255.255.0 snmp-server location ##location##
or at least, those are the lines from it that contain the variables.

  • Comment on Re^4: How do I use a template, csv file and script to generate multiple switch configurations
  • Select or Download Code

Replies are listed 'Best First'.
Re^5: How do I use a template, csv file and script to generate multiple switch configurations
by hdb (Monsignor) on Apr 16, 2013 at 06:06 UTC

    A missing ; and a bit of re-ordering was all to be done. Now it should do the job but a lot of it is implicit and not obvious to the Perl starter. So be careful when expanding on it...

    #!/usr/bin/perl use strict; use warnings; use autodie; # usage: perl makeconfig.pl < host-ip.csv my $template_file_name="configtemplate.txt"; while(<>) { next if /^#/; chomp; my ($ip, $hostname, $location) = split (/,/); my $ofile_name=$hostname . ".txt"; open(TFILE, "< $template_file_name") || die "config template f +ile $template_file_name: $!\n"; $ofile_name = $hostname . ".txt"; open(OFILE, "> $ofile_name") || die "output config file $ofile +_name: $!\n"; while (<TFILE>) { s/##location##/$location/; s/##hostname##/$hostname/; s/##ip##/$ip/; printf OFILE $_; } close OFILE; close TFILE; }

      Thank you! Thank you! Thank you! That worked. I really appreciate the help.

      Its perfectly working. Thanks a lot..