NAME

BigIP::GTM::ParseConfig - F5/BigIP GTM configuration parser

SYNOPSIS

 use BigIP::GTM::ParseConfig;
  
 # Module initialization
 my $bip = new BigIP::GTM::ParseConfig( '/config/bigip.conf' );
  
 # Iterate over pools
 foreach my $pool ( $bip->pools() ) {
     # Iterate over pool members
     foreach my $member ( $bip->members( $pool ) ) {
         # Change port from 80 to 443
         if ( $member /^(\d+\.\d+\.\d+\.\d+):80/ ) {
             push @members, "$1:443";
             my $change = 1;
         }
     }
     # Commit the change above (80->443)
     if ( $change ) {
         $bip->modify(
             type => 'pool',
             key  => $pool,
             members => [ @members ]
         );
     }
 }
  
 # Write out a new config file
 $bip->write( '/config/bigip.conf.new' );

DESCRIPTION

BigIP::GTM::ParseConfig provides a Perl interface to reading, writing, and manipulating configuration files used on F5 (BigIP) LTM network devices.

This module is currently a work-in-progress. Please e-mail with problems, bug fixes, comments and complaints.

CONSTRUCTOR

new ( FILE )

Create a new BigIP::GTM::ParseConfig object.

FILE refers to the bigip.conf configuration file, usually found at /config/bigip.conf.

Example

 $bip = BigIP::GTM::ParseConfig->new( '/config/bigip.conf' );

METHODS

monitors
nodes
partitions
pools
profiles
routes
rules
users
virtuals

List the names of all found objects of the referring method.

Examples

 @pools = $bip->pools();

 @virtuals = $bip->virtuals();
monitor ( MONITOR )
node ( NODE )
partition ( PARTITION )
pool ( POOL )
profile ( PROFILE )
route ( ROUTE )
rule ( RULE )
user ( USER )
virtual ( VIRTUAL )

Return a hash of the object specified.

Examples

 %sschneid = $bip->user( 'sschneid' );

 $monitor = $bip->pool( 'Production_LDAP_pool')->{'monitor'};
members ( POOL )

List the members of a specified pool.

Example

 @members = $bip->members( 'Production_LDAP_pool' );

Note that this is identical to using the pool method:

 @members = @{$bip->pool( 'Production_LDAP_pool' )->{'members'}};
modify ( OPTIONS )

Modify the attributes of a specified object. The following options are required:

type

The type of object being modified. Allowed types are: monitor, node, partition, pool, profile, route, user, virtual.

key

The key (name) of the object being modified.

Following type and key should be a string or a reference to an array of strings. See the example below for more details.

Examples

 $bip->modify(
     type => 'virtual',
     key  => 'Production_LDAP_vip',
     persist => 'cookie'
 );
  
 $bip->modify(
     type => 'pool',
     key  => 'Production_LDAP_pool',
     members => [ '192.168.0.1:636', '192.168.0.2:636' ]
 );
write ( FILE )

Write out a new configuration file. FILE refers to the bigip.conf configuration file, usually found at /config/bigip.conf.

Example

 $bip->write( '/config/bigip.conf.new' );

AUTHOR

WENWU YAN <careline@126.com>