[chef] Re: Re: Re: Re: Re: Re: Deploying .war files?


Chronological Thread 
  • From: "John E. Vincent (lusis)" < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: Deploying .war files?
  • Date: Tue, 21 Jun 2011 14:04:02 -0400
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=neN0KiS5VatLbieQzSf8piGOI9X3kaIiVDP6XOaZnu44FUHD6+vpbwa2y5v3aQNF4t Px+x7K18v5fPuPiWKM2GaiVrx1P98dEsEb8zXITo2JzVL0pEfuMx9JAj+zwrZT8UNf1R Y1dk5K6Rn1JqY01TzoWBEIreZHr0ZyOXr2yOY=

Specifically on the process management front, we're using jetty. We
tried the hot deploy and it pretty much became unreliable after 5 or
so deploys a day.

We've since moved to using supervisord to manage our jetty processes.
We just do a full restart at deploy time. It's sequentially done in
jenkins right now so we don't lose all of our capacity at once. We
pull the war + appropriate configs from S3.

On Tue, Jun 21, 2011 at 1:57 PM, KC Braunschweig
< >
 wrote:
> A couple other thoughts for you:
>
> - We do this by keeping builds as maven (http://maven.apache.org/)
> artifacts in a nexus repository (http://nexus.sonatype.org/) and
> deploy with a custom artifact deployer cookbook. With nexus you have a
> nice API you can use to determine the right build to deploy and
> compare to what was deployed. Although we haven't released that
> cookbook yet, if you're having issues, I'll prod my teammate that
> wrote it to help you.
>
> - Keep in mind if you end up doing live deployments (i.e. don't
> restart tomcat) you may run into memory issues. I've had problems with
> pretty much every java container trying to do live deploys. Basically
> the JVM leaks memory and eventually you hang the JVM. Since the
> failure happens indeterminately, I decided better to deal with
> restarts and have a repeatable process then to attempt a live deploy
> that may fail randomly, if infrequently. However, I've heard tomcat 7
> tries to work around this issues and maybe its better?
>
> KC
>
> On Tue, Jun 21, 2011 at 4:44 AM, Matthew Drobnak
> < >
>  wrote:
>> I appreciate everyone's input so far.
>> Seth, I totally missed the application cookbook. I'll look into that and
>> hopefully can get at least 1 piece running with Chef!
>> I love the premise, but all of the configuration management systems seem to
>> have a bit of a steep climb before it becomes easy and powerful. :)
>> Thanks again.
>> -Matt
>>
>> On Jun 21, 2011, at 12:10 AM, Seth Chisamore wrote:
>>
>> The java_webapp recipe in the application cookbook [0][1] was created to
>> accomplish just this task!
>> The Java Quick Start [1] has a full working example of using this recipe to
>> deploy a Java webapp, including setting up an environment
>> specific context.xml with database connection information.
>> Seth
>> --
>> Opscode, Inc.
>> Seth Chisamore, Senior Technical Evangelist
>> IRC, Skype, Twitter, Github: schisamo
>> [0] http://community.opscode.com/cookbooks/application
>> [1] https://github.com/opscode/cookbooks/blob/master/application/README.md
>> [2] http://help.opscode.com/kb/otherhelp/build-a-java-web-stack
>>
>>
>> On Mon, Jun 20, 2011 at 11:35 PM, Ken Mazaika 
>> < >
>>  wrote:
>>>
>>> could you use something like capistrano for java?
>>>
>>> On Mon, Jun 20, 2011 at 11:32 PM, Edward Sargisson 
>>> < >
>>> wrote:
>>>>
>>>> I need to do the same thing but haven't written it yet. Here's my plan
>>>> - hopefully others can critique.
>>>>
>>>> Firstly, you don't want to stop tomcat. Chef runs every 20 minutes or
>>>> so (or whenever you set it for) so it would stop your server every 20
>>>> minutes. Instead, you should work out if the file on your file server
>>>> has changed and then do the update. In my case, my build artifacts
>>>> have a build id. I plan to store the desired build id in a data bag *.
>>>> The deployed data bag goes into the node data. Then, on the chef run
>>>> it can compare and then run the update if required.
>>>>
>>>> When you do the update you don't need to stop tomcat. Instead you
>>>> download the WAR to a temp directory then go to the webapps dir and
>>>> delete the directory for your webapp as well as the old WAR. Then you
>>>> copy the WAR in. (You can't download directly because then Tomcat
>>>> un-jars it before it's downloaded). Tomcat then un-jars it and starts
>>>> it up for you.
>>>>
>>>> Cheers,
>>>> Edward
>>>>
>>>> * Amusingly, I forgot the name for data bag and my mind came up with
>>>> drop bag. Once a trail runner, always a trail runner... :-)
>>>>
>>>> On Mon, Jun 20, 2011 at 8:25 PM,  
>>>> < >
>>>>  wrote:
>>>> > Hi everyone,
>>>> > I'm fairly new to Chef. I downloaded and deployed the tomcat cookbook
>>>> > to a
>>>> > node, and now I'm trying to add a recipe? or another cookbook, I'm not
>>>> > sure
>>>> > really...to deploy our web app that should run on Tomcat.
>>>> >
>>>> > I basically want the node to stop tomcat, delete everything in the
>>>> > webapps
>>>> > directory, and scp a file to the right spot..then start tomcat.
>>>> >
>>>> > I looked briefly at the deploy resource, but that's from a version
>>>> > control
>>>> > system...we don't keep builds in version control, only the source..the
>>>> > binary
>>>> > builds are on a server, so I don't think that's what I want.
>>>> >
>>>> > If anyone can point me in the right direction to get this going, that
>>>> > would be
>>>> > greatly appreciated.
>>>> >
>>>> > Thanks.
>>>> >
>>>> > -Matt
>>>> >
>>>
>>
>>
>>
>



Archive powered by MHonArc 2.6.16.

§