setup-kolab: augeas.py", line 385, in save raise IOError("Unable to save to file!")

Honza Burian burian.honza at gmail.com
Wed Jul 30 10:42:25 CEST 2014


Hi Brad,

thanks for your answer.
No, I set SELinux into permissive mode.

I also Tried install of kolab on fresh new install of CentOS 6 in
VirtualBox and installation was successful without any error.
Probably my installation of CentOS 6 is in some way changed (I tested
there other stuff - postfix, cyrus, dovecot, amasvid, clamav,
spamassasin, zimbra ...).
So my next step will be reinstall of OS. Because CentOS 7 is out and
next month will be new release of Kolab 3.3 i will wait for new
release and will try it.

Thanks to all.
Best Regards
Honza

On 29 July 2014 16:30, Brad Ralph <brad at ralph.id.au> wrote:
>
> On 28/07/14 8:00 PM, Honza Burian wrote:
>
> Any chance SELinux is still running in enforcing mode instead of permissive
> mode?
>
> see
> http://docs.kolab.org/installation-guide/preparing-the-system.html#selinux
>
> Regards,
> Brad
>>>
>>> On Sunday 27 July 2014 00:04:12 Honza Burian wrote:
>>>>
>>>> After that setup quits.
>>>> no setup.*.log files in /var/log/kolab/
>>>> I really don't know what would I do.
>>>
>>> You could run `setup-kolab -d9` to get more verbose debug logs.
>>>
>>> Kind Regards,
>>> Torsten
>>
>> Thanks for your answer. Ok, I tried this and there is the extra output:
>> --------------------------
>> Cyrus Administrator password [fygLX0XBiNjMyV4]:
>> Confirm Cyrus Administrator password:
>>
>> Please supply a Kolab Service account password. This account is used by
>> various
>> services such as Postfix, and Roundcube, as anonymous binds to the LDAP
>> server
>> will not be allowed.
>>
>> Kolab Service password [9nwu8iDmsypboGe]:
>> Confirm Kolab Service password:
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.set_option
>> ((17, 3), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.set_option
>> ((17, 3), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.simple_bind
>> (('cn=Directory Manager', 'wPrZedZBgTv27xdezHRA', None, None), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((1, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.add_ext
>> (('uid=cyrus-admin,ou=Special Users,dc=elmonto,dc=cz',
>>    [('surname', 'Administrator'),
>>     ('uid', 'cyrus-admin'),
>>     ('objectclass',
>>      ['top', 'person', 'inetorgperson', 'organizationalperson']),
>>     ('userPassword', 'xxxxxxxxxxxxxxxx'),
>>     ('givenname', 'Cyrus'),
>>     ('cn', 'Cyrus Administrator')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((2, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.add_ext
>> (('uid=kolab-service,ou=Special Users,dc=elmonto,dc=cz',
>>    [('nslookthroughlimit', '-1'),
>>     ('surname', 'Service'),
>>     ('uid', 'kolab-service'),
>>     ('objectclass',
>>      ['top', 'person', 'inetorgperson', 'organizationalperson']),
>>     ('userPassword', 'xxxxxxxxxxxxxxxxxxx'),
>>     ('nstimelimit', '-1'),
>>     ('nssizelimit', '-1'),
>>     ('nsidletimeout', '-1'),
>>     ('givenname', 'Kolab'),
>>     ('cn', 'Kolab Service')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((3, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.add_ext
>> (('ou=Resources,dc=elmonto,dc=cz',
>>    [('objectclass', ['top', 'organizationalunit']), ('ou', 'Resources')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((4, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.add_ext
>> (('ou=Shared Folders,dc=elmonto,dc=cz',
>>    [('objectclass', ['top', 'organizationalunit']), ('ou', 'Shared
>> Folders')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((5, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.add_ext
>> (('cn=kolab,cn=config',
>>    [('objectclass', ['top', 'extensibleobject']), ('cn', 'kolab')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((6, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.search_ext
>> (('cn=kolab,cn=config',
>>    0,
>>    '(objectclass=*)',
>>    ['dn', '*'],
>>    0,
>>    None,
>>    None,
>>    -1,
>>    0),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((7, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.search_ext
>> (('cn=kolab,cn=config',
>>    0,
>>    '(objectclass=*)',
>>    ['dn', 'aci'],
>>    0,
>>    None,
>>    None,
>>    -1,
>>    0),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((8, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.modify_ext
>> (('cn=kolab,cn=config',
>>    [(0,
>>      'aci',
>>      '(targetattr = "*") (version 3.0;acl "Kolab Services";allow
>> (read,compare,search)(userdn = "ldap:///uid=kolab-service,ou=Special
>> Users,dc=elmonto,dc=cz");)')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((9, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.add_ext
>> (('associateddomain=elmonto.cz,cn=kolab,cn=config',
>>    [('objectclass', ['top', 'domainrelatedobject']),
>>     ('associateddomain',
>>      ['elmonto.cz',
>>       'email.elmonto.cz',
>>       'localhost.localdomain',
>>       'localhost']),
>>     ('aci',
>>      '(targetattr = "*") (version 3.0;acl "Read Access for elmonto.cz
>> Users";allow (read,compare,search)(userdn =
>> "ldap:///dc=elmonto,dc=cz??sub?(objectclass=*)");)')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((10, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.modify_ext
>> (('cn=config', [(2, 'nsslapd-allow-anonymous-access', 'off')], None,
>> None), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((11, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.modify_ext
>> (('cn=attribute uniqueness,cn=plugins,cn=config',
>>    [(2, 'nsslapd-pluginEnabled', 'on')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((12, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.modify_ext
>> (('cn=referential integrity postoperation,cn=plugins,cn=config',
>>    [(2, 'nsslapd-pluginEnabled', 'on')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((13, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.modify_ext
>> (('cn=Account Policy Plugin,cn=plugins,cn=config',
>>    [(2, 'nsslapd-pluginEnabled', 'on'),
>>     (0,
>>      'nsslapd-pluginarg0',
>>      'cn=config,cn=Account Policy Plugin,cn=plugins,cn=config')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((14, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.modify_ext
>> (('cn=config,cn=Account Policy Plugin,cn=plugins,cn=config',
>>    [(2, 'alwaysrecordlogin', 'yes'),
>>     (0, 'stateattrname', 'lastLoginTime'),
>>     (0, 'altstateattrname', 'createTimestamp')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((15, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.add_ext
>> (('cn=kolab-admin,dc=elmonto,dc=cz',
>>    [('objectClass',
>>      ['top',
>>       'ldapsubentry',
>>       'nsroledefinition',
>>       'nssimpleroledefinition',
>>       'nsmanagedroledefinition']),
>>     ('description', 'Kolab Administrator'),
>>     ('cn', 'kolab-admin')],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((16, 1, -1, 0, 0, 0), {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.modify_ext
>> (('dc=elmonto,dc=cz',
>>    [(2,
>>      'aci',
>>      ['(targetattr = "carLicense || description || displayName ||
>> facsimileTelephoneNumber || homePhone || homePostalAddress || initials
>> || jpegPhoto || l || labeledURI || mobile || o || pager || photo ||
>> postOfficeBox || postalAddress || postalCode ||
>> preferredDeliveryMethod || preferredLanguage || registeredAddress ||
>> roomNumber || secretary || seeAlso || st || street || telephoneNumber
>> || telexNumber || title || userCertificate || userPassword ||
>> userSMIMECertificate || x500UniqueIdentifier || kolabDelegate ||
>> kolabInvitationPolicy || kolabAllowSMTPSender") (version 3.0; acl
>> "Enable self write for common attributes"; allow
>> (read,compare,search,write)(userdn = "ldap:///self");)',
>>       '(targetattr = "*") (version 3.0;acl "Directory Administrators
>> Group";allow (all)(groupdn = "ldap:///cn=Directory
>> Administrators,dc=elmonto,dc=cz" or roledn =
>> "ldap:///cn=kolab-admin,dc=elmonto,dc=cz");)',
>>       '(targetattr="*")(version 3.0; acl "Configuration Administrators
>> Group"; allow (all) groupdn="ldap:///cn=Configuration
>> Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot";)',
>>       '(targetattr="*")(version 3.0; acl "Configuration Administrator";
>> allow (all)
>> userdn="ldap:///uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot";)',
>>       '(targetattr = "*")(version 3.0; acl "SIE Group"; allow (all)
>> groupdn = "ldap:///cn=slapd-email,cn=389 Directory Server,cn=Server
>> Group,cn=email.elmonto.cz,ou=elmonto.cz,o=NetscapeRoot";)',
>>       '(targetattr != "userPassword") (version 3.0;acl "Search
>> Access";allow (read,compare,search)(userdn = "ldap:///all");)'])],
>>    None,
>>    None),
>>   {})
>> *** <ldap.ldapobject.ReconnectLDAPObject instance at 0x12a5bd8>
>> ldap://localhost:389 - ReconnectLDAPObject.result4
>> ((17, 1, -1, 0, 0, 0), {})
>> Traceback (most recent call last):
>>    File "/usr/sbin/setup-kolab", line 42, in <module>
>>      setup.run()
>>    File "/usr/lib/python2.6/site-packages/pykolab/setup/__init__.py",
>> line 43, in run
>>      components.execute('_'.join(to_execute))
>>    File "/usr/lib/python2.6/site-packages/pykolab/setup/components.py",
>> line 170, in execute
>>      execute(component)
>>    File "/usr/lib/python2.6/site-packages/pykolab/setup/components.py",
>> line 202, in execute
>>      components[component_name]['function'](conf.cli_args, kw)
>>    File "/usr/lib/python2.6/site-packages/pykolab/setup/setup_mta.py",
>> line 320, in execute
>>      myaugeas.save()
>>    File "/usr/lib/python2.6/site-packages/augeas.py", line 385, in save
>>      raise IOError("Unable to save to file!")
>> IOError: Unable to save to file!
>> ------------------------------------
>>
>> It looks like there is only adding and modyfing of LDAP entries. No more
>> errors.
>> I found on some blog instructions how to install kolab on CentOS, where
>> is:
>> http://www.archaicbinary.net/howto/installing-kolab-3-2-on-centos.html
>> -------------------------------------
>> Next we can install all the packages Kolab needs.
>>
>> # yum install kolab
>>
>> After all these are installed we (at this time, its a bug that needs
>> fixing) need to fix the template script for amavisd.conf
>>
>> # nano /usr/lib/python2.6/site-packages/pykolab/setup/setup_mta.py
>>
>> Look around line `386` the small block should look like the following
>>
>>          if os.path.isdir('/etc/amavisd'):
>>              fp = open('/etc/amavisd/amavisd.conf', 'w')
>>          elif os.path.isdir('/etc/amavis'):
>>              fp = open('/etc/amavis/amavisd.conf', 'w')
>>              fp.write(t.__str__())
>>              fp.close()
>>
>> Take a look under the second line, it opens the file but does not
>> write and then close it. We need it to do this or we will get a zero
>> byte empty amavisd.conf file.
>>
>> If yours looks like the above make it look like this
>>
>>          if os.path.isdir('/etc/amavisd'):
>>              fp = open('/etc/amavisd/amavisd.conf', 'w')
>>              fp.write(t.__str__())
>>              fp.close()
>>          elif os.path.isdir('/etc/amavis'):
>>              fp = open('/etc/amavis/amavisd.conf', 'w')
>>              fp.write(t.__str__())
>>              fp.close()
>>
>> You see I have added two lines under the second. Save the file and exit.
>>
>> Now we can continue installing Kolab.
>>
>> # setup-kolab
>> -----------------------------------------
>> But my file setup_mta.py is ok (i think so):
>> ----
>> starts at line 386
>> fp = None
>>          if os.path.isdir('/etc/amavisd'):
>>              fp = open('/etc/amavisd/amavisd.conf', 'w')
>>          elif os.path.isdir('/etc/amavis'):
>>              fp = open('/etc/amavis/amavisd.conf', 'w')
>>
>>          if not fp == None:
>>              fp.write(t.__str__())
>>              fp.close()
>> -------------------------------------------
>> Also my error starts in this file at line 320:
>> ---
>> myaugeas.save()
>> ------------------------------------------
>> And then error continue in file augeas.py", line 385, in save:
>> ---
>> starts at line 382:
>>          # Call the function
>>          ret = Augeas._libaugeas.aug_save(self.__handle)
>>          if ret != 0:
>>              raise IOError("Unable to save to file!")
>> ----------------------------------------
>> But I can't figure out what line 383 did:
>> ret = Augeas._libaugeas.aug_save(self.__handle)
>> ------------------------------------
>>
>> Best Regards
>> John
>> _______________________________________________
>> users mailing list
>> users at lists.kolab.org
>> https://lists.kolab.org/mailman/listinfo/users
>
>
>
> --
> Regards,
> Brad Ralph
>
> _______________________________________________
> users mailing list
> users at lists.kolab.org
> https://lists.kolab.org/mailman/listinfo/users


More information about the users mailing list