[Freeipa-devel] [PATCH] 0051 Handle --subject option in ipa-server-install

Rob Crittenden rcritten at redhat.com
Thu Aug 1 14:52:28 UTC 2013


Petr Viktorin wrote:
> On 08/01/2013 02:58 PM, Martin Kosek wrote:
>> On 08/01/2013 02:54 PM, Petr Viktorin wrote:
>>> On 07/31/2013 11:51 AM, Ana Krivokapic wrote:
>>>> On 07/30/2013 06:24 PM, Petr Viktorin wrote:
>>>>> On 07/30/2013 10:27 AM, Ana Krivokapic wrote:
>>>>>> Hello,
>>>>>>
>>>>>> This patch addresses ticket
>>>>>> https://fedorahosted.org/freeipa/ticket/3783.
>>>>>>
>>>>>
>>>>> Thanks for the patch, I have a concern below:
>>>>>
>>>>>> freeipa-akrivoka-0051-Handle-subject-option-in-ipa-server-install.patch
>>>>>>
>>>>>> diff --git a/install/tools/ipa-upgradeconfig
>>>>>> b/install/tools/ipa-upgradeconfig
>>>>>> index
>>>>>> de17c5b23d79f31e8571a3400d44397630cadada..a2625e6198bcff0811c482e479c8af10716dcea1
>>>>>>
>>>>>>
>>>>>> 100644
>>>>>> --- a/install/tools/ipa-upgradeconfig
>>>>>> +++ b/install/tools/ipa-upgradeconfig
>>>>>> @@ -894,6 +895,7 @@ def main():
>>>>>>         configured_constants = dogtag.configured_constants()
>>>>>>         sub_dict = dict(
>>>>>>             REALM=api.env.realm,
>>>>>> +        SUBJECT_BASE=str(DN(('O', api.env.realm))),
>>>>>
>>>>> When certmap.conf.template's version changes again, this will
>>>>> rewrite the
>>>>> subject to the default. Don't we want to use the subject base also
>>>>> here?
>>>>>
>>>>>
>>>>>
>>>>
>>>> You are right. The updated patch uses the current value of subject
>>>> base from
>>>> LDAP to update certmap.conf during upgrades.
>>>
>>> When ipa-upgradeconfig is run while the DS is down, this results in a
>>> small
>>> warning, and very bad configuration:
>>>      certmap ipaca           CN=Certificate Authority,None
>>>
>>>
>>> I'm not sure how this should be handled. I'm adding Rob to the loop.
>>> Rob, can we start the DS in ipa-upgradeconfig? That sounds quite
>>> heavy-handed
>>> for a RPM upgrade script.
>>>
>>> Maybe if the DS is unavailable, we should use the old value from the
>>> config
>>> file itself.
>>
>> Values can be stored/restored using a sysupgrade module.
>
> The problem is that (AFAIK) old instances won't have this particular
> value stored. Upgrading from 3.1 to a future version where certmap.conf
> is modified again would fail.
>
>> I would not be so
>> afraid of starting the DS module, we already do that exercise in
>> ipa-ldap-updater, so adding it in ipa-upgradeconfig too does not
>> change much.
>>
>> Question is, what should we do what DS cannot be started or cannot be
>> read
>> (e.g. when upgrade is run in fedup's chrooted environment) - we must
>> make sure
>> we don't mess the configuration up.
>
> Again AFAIK, if the server is down, certmap.conf is the only place where
> this value is available. I didn't check thoroughly, though.

I think that's right.

So the big problem here is we have no way of alerting users to possible 
problems found during the upgrade unless they happen to sift through 
ipaupgrade.log, which tends to be huge, and most users don't even know 
about.

Part of this is due to not displaying anything during an rpm upgrade. I 
think we should print any exceptional errors found during the upgrade. 
Sure, something may eat the output, but it's a best effort sort of thing.

I don't see us finding a perfect solution here. What I'd propose is this:

- Store the value in sysupgrade from now on, even in new installs
- Look there first on upgrade
- Start dirsrv if necessary get the value
- If we can't get the value, skip changing file and log loudly
- Find out exactly this will present to a user by doing an upgrade from 
an old version to master and create an FAQ entry.

I think that's about the best we can do.

rob




More information about the Freeipa-devel mailing list