Mark, > -----Original Message----- > From: Mark Eggers [mailto:its_toas...@yahoo.com.INVALID] > Sent: Friday, May 19, 2017 10:44 AM > To: Tomcat Users List <users@tomcat.apache.org> > Subject: Re: Tomcat on macOS > > Chris, > > On 5/19/2017 7:33 AM, Christopher Schultz wrote: > > Israel, > > > > On 5/18/17 10:52 AM, Israel Timoteo wrote: > >> Any comments from the community for ... > > > >> 1) What tools is the community using for simultaneous applications > >> deployment on several servers, let’s say more than 20? > > > > I am using neither of these strategies, but... > > > > a. FarmWebDeployer [1] > > Doesn't this require a cluster (and therefore multicast)? That becomes > challenging in a cloud environment where there's no multicast easily > available. > > > b. Auto-deploy + scp > > This would be nice with a little scripting. > > > > > Why in the world are you deploying a web application to 20+ > > macos-based servers? Or do you have a Macos client and 20+ > > non-macos-based servers? > > > >> 4) Is JAVA_OPTS required? > > > > JAVA_OPTS is only required if you require any java opts. Do you > > require such options? Usually, when people set JAVA_OPTS they really > > want to set CATALINA_OPTS instead. > > > > Hope that helps, > > -chris > > > > [1] > > http://tomcat.apache.org/tomcat-8.0-doc/config/cluster-deployer.html > > What I do is use Jenkins, Maven, Nexus, and a little Groovy scripting. > > 1. Maven with the Tomcat Maven Plugin [1] > > The WAR file is customized (context.xml) based on the target environment. > > 2. Jenkins > > The build is run by Jenkins, and the build number (with a little 0 padding > via a > Groovy script) is tacked onto the WAR name as app##0000nn.war.
I don't mean to hijack the thread, but could you expand on this? Could you please provide examples of your Groovy scripts? > > This allows the parallel deploy feature to be used [2]. > > 3. Nexus > > This is where all of the base artifacts are stored. Nexus 2 is used currently > since Nexus 3 doesn't have the REST API needed to cleanly interact with the > Jenkins job via a Groovy script. Maybe I should learn how to write a Nexus > plugin to get lists of artifact versions via REST . . . > > 4. Groovy scripting > > Groovy is used in Jenkins to do the following: > > a. Query Nexus to get a list of artifact versions b. Prevent non-production > artifacts from landing on production platforms c. Create the final number for > parallel deployment > > To expand this to multiple machines, a set of pipeline jobs could be created. > > a. Build the customized WAR for the target environment b. Multiple jobs > deploy to the servers in the target environment c. Multiple jobs validate the > deployment d. Final job sends mail to interested parties with success / > failure > > I know that's a lot of infrastructure. There are certainly things that could > be > done differently. Ant (with Ivy), or gradle could be used for the builds. A > different repository manager could be used (other than Nexus). A different > CI / CD system could be used (other than Jenkins). > > Anything that meets at least the following requirements could be strung > together. > > a. Reliable place to get the WAR file you need to deploy b. Reliable build > system that can be automated c. Build system that can deploy to Tomcat d. > Testing that the deployment actually worked e. Notification > > The end result is that some authorized person can log into Jenkins, select a > version of an application to deploy, deploy it to the target environment, > know that it's been successful (or not), and have notifications automatically > sent out. > > [1] http://tomcat.apache.org/maven-plugin.html > [2] > https://tomcat.apache.org/tomcat-8.0- > doc/config/context.html#Parallel_deployment > > . . . just my (rather lengthy) 2 cents > /mde/