[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