=head1 NAME fapi - A humble command line tool to manage F5 BigIP loadbalancers =head1 SYNOPSIS Just run fapi -h or f -h because it's shorter to type. =head1 ABOUT This is a simple command line client to do basic stuff with the iControl F5 API such as: Managing Nodes Managing Monitors Managing Pools Managing Virtual Servers This is a private programming project programmed in my spare time. Therefore I didn't bother to put it on a public website and github. Please open bug reports, feature requests and pull requests at L. =head1 BIGSUDS =head2 Requirement of bigsuds This tool depends on bigsuds. Please install this library from F5 dev central manually. Otherwise this script will not work. You can download bigsuds from here: L Unzip it and run sudo python setyp.py install You may also install bigsuds from the contrib dir of the fapi source tree. =head2 iControl reference Through bigsuds you can do everything what iControl can do: L =head1 QUICK START Update your sources list: curl http://deb.buetow.org/apt/pubkey.gpg | sudo apt-key add - echo 'deb http://deb.buetow.org/apt wheezy main' > \ /etc/apt/sourcees.list.d/buetoworg.list aptitude update And run aptitude install fapi cp /usr/share/fapi/fapi.conf.sample ~/.fapi.conf vim ~/.fapi.conf =head1 EXAMPLES =head2 Listing If you want to list all configured objects on your partition just run f node # To list all nodes f pool # To list all pool ... # etc =head2 Setting up a simple pool # Creating two nodes, fapi auto resolves the IP addresses, and use the # FQDN as the node name. f node fooserver1.example.com create f node fooserver2.example.com create # Creating a pool and add the nodes to it. Also specify the node ports to # use by the monitors (and maybe PAT if enabled) f pool foopool create f pool foopool add member fooserver1.example.com:80 f pool foopool add member fooserver2.example.com:80 # Add a monitor to the pool f pool foopool add monitor http_lbtest =head2 Setting up a simple nPath Service A simple nPath service can be created as follows. # Create a nPath HTTP vserver, 'nPath' also auto disables NAT and PAT # fapi auto resolves the IP address. f vserver myvserver.example.com:80 create PROTOCOL_TCP nPath # Add the pool to the vserver. The vservers name inside of BigIP will be # the FQDN followed by _PORT. In this case it would be: # myvserver.example.com_80 (or full: /Partition/myvserver.example.com_80) # The reason is that : are not allowed in vserver names. f vserver myvserver.example.com:80 set pool foopool # Add a nPath HTTPS vserver f vserver myvserver.example.com:443 create PROTOCOL_TCP nPath f vserver myvserver.example.com:443 set pool foopool # Put the VirtualAddress of the vserver into a specific traffic group f vip myserver.example.com set tgroup some-traffic-group And everything can be deleted as folows: # You can also specify the full object name (including the partition) f vserver /Common/myvserver.example.com_80 delete # Or just the way the service was created from command line f vserver myvserver.example.com:443 delete f pool foopool delete f node fooserver1.example.com delete f node fooserver2.example.com delete =head2 Setting up simple NAT Services (Docu to be written) =head2 Setting up simple SNAT Services (Docu to be written) =head1 AUTHOR Paul C. Buetow - Also see L =cut