BIG-IP v11 Citrix XenDesktop Monitor
Problem this snippet solves:
This TMSH script quickly and easily creates a monitor for Citrix XenDesktop on an LTM running version 11. Instructions for importing and executing this TMSH script are found in the F5 deployment guide. The script takes four inputs, username, password, farm name and domain name , and then automatically calculates the POST Content-Length to create a customized, specialized monitor for your Citrix environment.
Code :
proc script::help { } { tmsh::add_help "Create a monitor for Citrix XenDesktop version 5.x \n\" } proc script::run { } { if { $tmsh::argc < 4 } { puts "Requires four arguments: you have not supplied via the command line. Switching to Interactive Mode.\n" set username [getFeedback "What is the username " "g.washington"] set password [getFeedback "What is the password?" "password"] set farm [getFeedback "What is the name of the Desktop Farm?" "Home"] set domain [getFeedback "What is the domain name?" "corpdomain"] } if { $tmsh::argc == 5 } { set username [lindex $tmsh::argv 1] set password [lindex $tmsh::argv 2] set farm [lindex $tmsh::argv 3] set domain [lindex $tmsh::argv 4] } set ver [tmsh::version] # Create the Web Interface Monitor set wipostcontent " " set length [string length $wipostcontent] set escapes [regexp -all {\B} $wipostcontent] # Adding an extra 4 here for the \r\n\r\n automatically added by TMOS <= 10.1 set contentlength [expr [string length $wipostcontent] - $escapes + 4] # For TMOS >= 10.2, we will now manually add these characters after calculating the content length if { $ver >= "10.2" } { append wipostcontent "\\r\\n\\r\\n" } set xmlbrokermonitor "POST /scripts/WPnBr.dll HTTP/1.1\\r\\nContent-Length: $contentlength\\r\\nContent-Type: text/xml\\r\\nConnection: close\\r\\nHost: citrix\\r\\n\\r\\n$wipostcontent" set monitor_type "http" set monitor_name "$farm-CitrixWICredentials" set monitor_interval "3" set monitor_timeout "19" set send '$xmlbrokermonitor' set receive 'ResponseValidateCredentials' set receive_disabled "failed-credentials" tmsh::create / ltm monitor $monitor_type $monitor_name interval $monitor_interval timeout $monitor_timeout send $send recv $receive recv-disable $receive_disabled puts "Created monitor $monitor_name, please attach to the Web Interface pool." # Create the XenDesktop App Monitor set ddcpostcontent " all $username $password $domain " set length [string length $ddcpostcontent] set escapes [regexp -all {\B} $ddcpostcontent] # Adding an extra 4 here for the \r\n\r\n automatically added by TMOS <= 10.1 set contentlength [expr [string length $ddcpostcontent] - $escapes + 4] # For TMOS >= 10.2, we will now manually add these characters after calculating the content length if { $ver >= "10.2" } { append ddcpostcontent "\\r\\n\\r\\n" } set desktopappmonitor "POST /scripts/WPnBr.dll HTTP/1.1\\r\\nContent-Length: $contentlength\\r\\nContent-Type: text/xml\\r\\nConnection: close\\r\\nHost: citrix\\r\\n\\r\\n$ddcpostcontent" set monitor_type "http" set monitor_name "$farm-CitrixDDCFarm" set monitor_interval "3" set monitor_timeout "19" set send '$desktopappmonitor' set receive "$farm" tmsh::create / ltm monitor $monitor_type $monitor_name interval $monitor_interval timeout $monitor_timeout send $send recv $receive puts "Created monitor $monitor_name, please attach to the Desktop Delivery Controller pool." } proc getFeedback { question default } { puts -nonewline $question puts -nonewline " (Default: $default) " flush stdout set input [gets stdin] if { $input equals "" } { return $default } else { return $input } }
Published Mar 10, 2015
Version 1.0Nojan_Moshiri_4
Historic F5 Account
Joined May 07, 2008
Nojan_Moshiri_4
Historic F5 Account
Joined May 07, 2008
- steve_turnbull_Nimbostratushi will this work with xendesktop 7.8 and is this the latest version of the script?