.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "FAPI 1" .TH FAPI 1 "2014-04-16" "fapi 0.0.5" "User Commands" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" fapi \- A humble command line tool to manage F5 BigIP loadbalancers .SH "SYNOPSIS" .IX Header "SYNOPSIS" Just run .PP .Vb 1 \& fapi \-h .Ve .PP or .PP .Vb 1 \& f \-h .Ve .PP because it's shorter to type. .SH "ABOUT" .IX Header "ABOUT" This is a simple command line client to do basic stuff with the iControl F5 \s-1API\s0 such as: .PP .Vb 4 \& Managing Nodes \& Managing Monitors \& Managing Pools \& Managing Virtual Servers .Ve .PP 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 . .SH "BIGSUDS" .IX Header "BIGSUDS" .SS "Requirement of bigsuds" .IX Subsection "Requirement of bigsuds" This tool depends on bigsuds. Please install this library from F5 dev central manually. Otherwise this script will not work. .PP You can download bigsuds from here: .PP https://devcentral.f5.com/d/bigsuds\-python\-icontrol\-library .PP Unzip it and run .PP .Vb 1 \& sudo python setyp.py install .Ve .PP You may also install bigsuds from the contrib dir of the fapi source tree. .SS "iControl reference" .IX Subsection "iControl reference" Through bigsuds you can do everything what iControl can do: .PP .SH "QUICK START" .IX Header "QUICK START" Update your sources list: .PP .Vb 4 \& curl http://deb.buetow.org/apt/pubkey.gpg | sudo apt\-key add \- \& echo \*(Aqdeb http://deb.buetow.org/apt wheezy main\*(Aq > \e \& /etc/apt/sourcees.list.d/buetoworg.list \& aptitude update .Ve .PP And run .PP .Vb 3 \& aptitude install fapi \& cp /usr/share/fapi/fapi.conf.sample ~/.fapi.conf \& vim ~/.fapi.conf .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" .SS "Listing" .IX Subsection "Listing" If you want to list all configured objects on your partition just run .PP .Vb 3 \& f node # To list all nodes \& f pool # To list all pool \& ... # etc .Ve .SS "Setting up a simple pool" .IX Subsection "Setting up a simple pool" .Vb 4 \& # 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 .Ve .SS "Setting up a simple nPath Service" .IX Subsection "Setting up a simple nPath Service" A simple nPath service can be created as follows. .PP .Vb 3 \& # Create a nPath HTTP vserver, \*(AqnPath\*(Aq 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 .Ve .PP And everything can be deleted as folows: .PP .Vb 2 \& # 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 .Ve .SS "Setting up simple \s-1NAT\s0 Services" .IX Subsection "Setting up simple NAT Services" .Vb 1 \& (Docu to be written) .Ve .SS "Setting up simple \s-1SNAT\s0 Services" .IX Subsection "Setting up simple SNAT Services" .Vb 1 \& (Docu to be written) .Ve .SH "AUTHOR" .IX Header "AUTHOR" Paul C. Buetow \- .PP Also see