The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

    BigIP::ParseConfig - F5/BigIP configuration parser

SYNOPSIS

    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' );

DESCRIPTION

    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.

CONSTRUCTOR

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' );

METHODS

monitors
nodes
partitions
pools
profiles
routes
users
virtuals

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

Example

  @pools = $bip->pools();

  @virtuals = $bip->virtuals();
members ( POOL )

List the members of a specified pool.

Examples

  @members = $bip->pools( 'Production_LDAP_pool' );
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.

Examples

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

AUTHOR

    Scott Schneider <sschneid@gmail.com>