I updated the Stingray Traffic Manager Puppet Module last week with two great new features.  The first is the ability to manage TrafficScript rules with Puppet.  The second is web_app manifest that greatly simplifies the work needed to configure Stingray to manage a web application.

 

TraficScript Rules

I created a rule manifest to import a TrafficScript rule to Stingray using Puppet.  The syntax is pretty simple:

 

stingray::rule { 'My rule':

    file => 'puppet:///modules/stingray/rule.ts'

}


Where rule.ts is the TrafficScript code for the rule.  rule.ts would live in the files/ directory of the Stingray Puppet Module (typically /etc/puppet/modules/stingray/files) and then you can use the three slash shorthand to refer to it. 


Then to use the rule in a Virtual Server, you can use the request_rules and response_rules directive.


stingray::virtual_server { 'My Virtual Server':

    ...

    request_rules  => 'My rule',

    response_rules => 'My response rule'

}


Using the name of the rule specified when creating the rule using the rule manifest.

 

Simplified Web Application Management

If you just want to get up and running quickly with a simple web application I created a web_app manifest where you only have to specifiy a few things and then all the virtual servers, pools, and health monitors are automatically created behind the scenes.

 

stingray::web_app { 'My Web Application':

      nodes => ['192.168.22.121:80', '192.168.22.122:80'],

      trafficips => '192.168.1.1'

}


Just specify a list of the backend nodes and the traffic ip you wish to use.  In the background the virtual server, pool, a transparent session affinity persistence profile, and an HTTP health monitor are automatically created.  You can also do SSL decryption with the web_app manifest.

 

stingray::web_app { 'My Other Web Application':

      nodes            => ['192.168.22.121:80', '192.168.22.122:80'],

      trafficips       => '192.168.1.1',

      ssl_decrypt      => 'yes'

      certificate_file => 'puppet:///modules/stingray/cert.public',

      private_key_file => 'puppet:///modules/stingray/cert.private'

}


This will do all of the above and will create an additional virtual server to handle the SSL decryption using the specified certificate and private key.  The manifest will automatically enable the virtual servers so you'll be up and running as quickly as possible.


For more details on the web_app and rule manifest please refer to the reference guide.  If you're not using Stingray yet download and try it for free.