[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Trigger in package meerdere keren uitgevoerd



Hoi Geert,

>> Ik gebruik Puppet om mijn firewall te beheren. Nou ben ik een pakket (noem
>> het 'xyz') aan het maken, dat een service installeert, waarvoor er een
>> gaatje in de firewall moet worden geprikt. Het pakket levert zelf de
>> firewall rules aan in een file, en na installatie moet Puppet een 'reload'
>> krijgen, om de firewall te reloaden met de nieuwe rules.
>>
>> Ik heb daarom in Puppet een trigger gedefinieerd, genaamd 'puppet-reload'.
>> In de 'triggers' file van Puppet staat:
>  [1]
>>
>>   interest puppet-reload
>>
>> In de triggers file van mijn pakket 'xyz' staat:
>>
>>   activate puppet-reload
>>
>>>    Plus:   SHOW US THE SOURCE CODE!
>>>
>>> Op zijn minst de post install files en de triggerscripts.
>>
>> Dat had ik toch al grotendeels gedaan. De code in het postinst script is
>> niet relevant, want die werkt gewoon, maar voor de volledigheid:
>>
>>   if [ "$1" = "triggered" ]; then
>>           invoke-rc.d puppet reload || true
>>   fi
>>
>> Het probleem is dus, dat tijdens een installatie met aptitude deze code
>> twee keer wordt uitgevoerd, terwijl ik dat eigenlijk maar 1 x zou willen.
>>
>> Bij installatie met 'dpkg -i' treedt dit probleem niet op.
>>
>> Is dit een bug in Apt(itude)?
> 
> 
> Waar de bug zit is mij nog niet duidelijk.

Nee, mij ook niet.

> En eigenlijk is het mij het probleem nog niet duidelijk.

Ik quote mezelf:
"Het probleem is dus, dat tijdens een installatie met aptitude deze code
twee keer wordt uitgevoerd, terwijl ik dat eigenlijk maar 1 x zou
willen."

> Ik ben van mijn mening dat de winst te halen is
> in een goede omschrijving van het probleem.

Sorry, ik waardeer je inzet zeer, en ik geef toe dat mijn eerste mail
voor verbetering vatbaar was, maar als het probleem nu nog niet
duidelijk is, dan weet ik het ook niet meer.

> Misschien moeten we ons ook wel focussen op de oorspronkelijke wens:
>  Een nieuwe service achter de firewall moet bereikbaar worden.

Nee, dat was niet mijn vraag. Ik kan honderdduizend manieren verzinnen
om een firewall te bouwen. Mijn vraag heeft ook helemaal niets met een
firewall te maken, vandaar dat ik die informatie in mijn eerste mail had
weggelaten. Het gaat erom, dat package triggers niet werken zoals ik
verwacht dat ze werken. Welke packages er in het spel zijn, doet er niet
zoveel toe.

> Mijn inschatting is dat een "ssh server" en een "http server"
> _niet_ tegen Puppet aanschoppen (die op zijn beurt tegen de firewall
> schopt )
>
> Enfin, terug naar het trigger probleem.
> 
>>>>   E: Sub-process /usr/bin/dpkg returned an error code (1)
>>>>   A package failed to install.  Trying to recover:
>>>>   Setting up <pakketnaam> (<versie>).
> 
> Wat is <pakketnaam> in bovenstaande situatie?  "Puppet" of "xyz" ???

xyz.

>>   if [ "$1" = "triggered" ]; then
>>           invoke-rc.d puppet reload || true
>>   fi
> 
> In welk package zit die programma code ??

In puppet.postinst. Let wel, die zit niet in het standaard puppet
pakket, het is een toevoeging van mijzelf.

> Ik ben mij er van bewust dat ik nog alleen maar vragen aan het stellen
> ben. Maar ja, ik had ook al gezegd dat het probleem mij niet duidelijk
> is. En jullie zien vast wel dat er nog mee gedacht wordt door mij.

Zoals gezegd, dat wordt gewaardeerd. Maar ik krijg wel de indruk, dat je
niet echt bekend bent met de werking van triggers, in ieder geval niet
met het implementeren ervan. Ik heb het gevoel dat ik nu dingen aan het
uitleggen ben, die gewoon voor de hand liggen, voor iemand met voldoende
kennis van de materie. Het spijt mij als ik me hierin vergis.

> Tussen de regels door heb ik gelezen[2] dat
> 
>    dpkg -i xyz_0.02_all.deb
> 
> goed gaat. Ik heb echter graag de output van dat commando.
> 
> 
> En het schijnt[3] dat
> 
>    aptitude install xyz
> 
> misgaat. Daar ook graag de output van.
> 
> 
> 
> Groeten
> Geert Stappers
> 
> Voetnoten
> [1] Ik lees het als een "puppet trigger". Dit gaat toch over package
> triggers???
> [2] Alleen 'dpkg -i' was te lezen. De rest heb ik moeten verzinnen.
> Ik stel het erg op prijs dat hele commandoregels getoond worden.
> [3] Alleen "Apt(itude)" kwam voorbij. De rest heb ik moeten verzinnen.
> Ik stel het erg op prijs dat hele commandoregels getoond worden.

En ik kies er meestal voor om overbodige informatie zoveel mogelijk weg
te laten.

Ik heb de output niet direct bij de hand nu, maar de relevante regels zijn:


$ sudo aptitude install xyz
...
Unpacking xyz (1.0) ...
Processing triggers for puppet ...
 * Reloading puppet agent
...
Setting up xyz (1.0) ...
Processing triggers for puppet ...
 * Reloading puppet agent


Bij installatie met 'dpkg -i xyz_1.0_all.deb' komen die 'processing
triggers for puppet' maar 1 x voorbij, zoals ik het -ook bij aptitude-
zou verwachten.

Groeten,
Martijn.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


Reply to: