[Spacewalk-list] How to update running applications?

Michael DeHaan mdehaan at redhat.com
Thu Oct 9 18:57:08 UTC 2008


Adrián Márques wrote:
> Thanks a lot Michael.
> I'd never heard of condrestart before and your other suggestions also 
> seem to be more than worth checking out.
>
> If I understood you correctly though, the advice you are giving me is 
> geared towards updating services and in the process 
> starting/stopping/restarting them based on conditions (I'll be looking 
> into the links you provided to verify whether this is right). The 
> conundrum I'm facing is that this is a desktop app, picture ooffice as 
> an example, and I can't restart it while the users are logged in it.
>
office doesn't have a backend service, so that may not be the best example.

In either case, you'd want to deploy your new software in a window where 
it made since to do it.    

> The hosts were this app will be running will be dedicated, so I'm 
> leaning towards the idea of hacking the spacewalk client as I 
> mentioned before (so it won't install the updates until told to) and 
> periodically install downloaded rpms either at boot time or whenever I 
> can ensure that no users are logged into this app. Do you consider 
> this a terrible solution? Am I trying to defeat RPM with this? Is 
> there a better alternative?
>
For starters, RPM is a package format, yum is the updater.     Deciding 
when you want to do updates is a good thing to be thinking about.   

Configuring spacewalk to /not/ pull down updates automatically is I 
presume doable (spacewalk folks?), in which case you can just push them 
out when you want (Spacewalk also have a facility to do this as well and 
can probably explain better).



> Thanks.
>
> Adrián.
>
> Michael DeHaan escribió:
>> Gerhardus.Geldenhuis at gta-travel.com wrote:
>>> Hi Adrián,
>>> The question is probably more suitable on a rpm list.
>>> We don't distribute our jar's with rpm but I appreciate your dillema.
>>>
>>> I don't personnally think that for such complex applications, rpm is 
>>> the right way to upgrade with. I see rpm has a way to distribute 
>>> "core" stuff, and not suitable for distributing weird and wonderfull 
>>> applications that requires restarts and database upgrades etc. There 
>>> is application servers and frameworks that is better suited for this 
>>> type of thing and that sits on a logically higher level. JBoss, 
>>> Wesphere and I think even tomcat has some basic stuff build in.
>>>
>>> Regards
>>>
>>>   
>>
>> This is generally true only for applications that are packaged 
>> /poorly/.   Properly packaged RPMs can be configured to do 
>> "condrestart" as needed.
>>
>> If you need something more advanced, this is typically where you 
>> would want to look at something like puppet/cfengine/bcfg2 where you 
>> can describe the state you want your services to be (and remain) in.
>>
>> Also you may be interested in a simple tool such as Func 
>> (http://fedorahosted.org/func) for restarting services remotely.   It 
>> is in many ways easier to deploy than SSH and also provides you a way 
>> of defining arbitrary groups of systems to send commands to.
>>
>> --Michael
>>>> -----Original Message-----
>>>> From: spacewalk-list-bounces at redhat.com 
>>>> [mailto:spacewalk-list-bounces at redhat.com] On Behalf Of Adrián Márques
>>>> Sent: 06 October 2008 18:45
>>>> To: spacewalk-list at redhat.com
>>>> Subject: [Spacewalk-list] How to update running applications?
>>>>
>>>> Dear all,
>>>>
>>>> I'm having a difficult time in finding the correct forum to pose 
>>>> this question since I guess it's part spacewalk, part RPM, part 
>>>> basic aplication design.
>>>>
>>>> Being an RPM end-user for years I had always assumed that updating 
>>>> running apps was a piece of cake with RPM. After all, I always did 
>>>> it and the most I got were occasional messages such as "Firefox 
>>>> restart required", never encountering other side-effects.
>>>>
>>>> However, after reading through the RPM guide, getting my hands 
>>>> dirty trying to package an app, scouring the internet for info and 
>>>> asking around in the RPM mailing list, I'm still not sure how to 
>>>> write my RPM so updating won't be an issue.
>>>>
>>>> The scenario is the following: I'd like to use spacewalk to 
>>>> distribute a custom desktop app. Hence, it's unavoidable that some 
>>>> users will be working at the time of an update. So far I've 
>>>> identified two problems with this, 1) If I have to modify the app's 
>>>> database schema as part of the update, the running app might break 
>>>> down if it's not aware of the change 2) This happens to be a java 
>>>> app, so in case a jar gets updated a class might get loaded that is 
>>>> not compatible with those already loaded by the running app.
>>>>
>>>> I understand that what I've explained so far might be outside of 
>>>> the scope of the subjects treated in this mailing list, if so, 
>>>> please just treat it as a detailed background problem description.
>>>>
>>>> What I would like to know from you guys is whether you've had any 
>>>> problems when updating apps through Satellite/Spacewalk due to them 
>>>> being running at the time or what precautions (if any) you take 
>>>> when doing so.
>>>>
>>>> Finally, I suppose that as a last resort I could hack the spacewalk 
>>>> client to only download updates and not install them until it is 
>>>> told to do so from the command line. Is this already possible? If 
>>>> not, where's the place to start with hacking this?
>>>>
>>>> I thank you all for your time and attention. It'd be amazing if you 
>>>> had any comments regarding my background issue, but I'll be more 
>>>> than satisfied and grateful if you could just provide any feedback 
>>>> on those questions strictly spacewalk-related.
>>>>
>>>> Thanks.
>>>>
>>>> Adrián.
>>>>
>>




More information about the Spacewalk-list mailing list