BigIP::ParseConfig - F5/BigIP configuration parser
use BigIP::ParseConfig;
# Module initialization
my $bip = new BigIP::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' );
BigIP::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.
- new ( FILE )
- Create a new BigIP::ParseConfig object.
"FILE" refers to the
bigip.conf configuration file, usually found at /config/bigip.conf.
Example
$bip = BigIP::ParseConfig->new( '/config/bigip.conf' );
- 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' );
Scott Schneider <sschneid@gmail.com>