[Spacewalk-list] How to update running applications?
Adrián Márques
amarques at geocom.com.uy
Thu Oct 9 20:01:13 UTC 2008
Thank you Michael for all of your valuable feedback.
Yes, ooffice is not the best example. I just wanted to illustrate that
operators will be working against a GUI, which can't just restart
apparently out of its own volition whenever there's an update.
> 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).
Maybe I wasn't clear with my previous mail. I do understand the
difference between RPM and YUM. I know that from the spacewalk POV I
could push the updates at specific times, but to the best of my
knowledge this gives me no guarantee the updates will be applied to the
clients at a specific time. Furthermore, I'm thinking of administering
as much as well over a thousand hosts this way, in an environment were
mantainance windows could be quite impractical to enforce. Thus I though
of having the yum-rhn plugin download all rpms in the backgound, while
the app might be running, and have them installed when I know I can
restart the app without inconveniences. I'd also have to ensure that the
app can't be started while an update is taking place.
I hope with this I took care of any preceding ambiguities in my intentions.
So I restate my questions: Do you consider this a terrible solution? Am
I trying to defeat RPM/YUM/Spacewalk design with this? Is there a better
alternative?
Thank you all.
Adrián.
Michael DeHaan escribió:
> 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