Kann eGroupware nicht installieren

Die Installation läuft an, bricht dann aber mit python-Fehlern ab. Hat da jemand einen Tip für mich?

univention-app install egroupware
Going to install EGroupware (20.1.20201028)
Password for Administrator: 
Creating data directories for egroupware...
Registering UCR for egroupware
Marking egroupware=20.1.20201028 as installed
File: /etc/univention/service.info/services/univention-appcenter.cfg
Multifile: /etc/postgresql/9.4/main/pg_hba.conf
File: /usr/share/univention-portal/apps.json
Multifile: /etc/apache2/sites-available/000-default.conf
Multifile: /etc/apache2/sites-available/default-ssl.conf
Going to remove EGroupware (20.1.20201028)
No hostdn for egroupware found. Nothing to remove
Configuring egroupware=20.1.20201028
while scanning a simple key
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 71, column 1
could not find expected ':'
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 72, column 1
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/__init__.py", line 226, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/service.py", line 82, in main
    return docker.stop()
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/docker.py", line 663, in stop
    self._setup_yml(recreate=False)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/docker.py", line 497, in _setup_yml
    content = yaml.load(open(yml_file), yaml.RoundTripLoader, preserve_quotes=True)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 86, in load
    return loader.get_single_data()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 54, in get_single_data
    node = self.get_single_node()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 50, in get_single_node
    document = self.compose_document()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 70, in compose_document
    node = self.compose_node(None, None)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 103, in compose_node
    node = self.compose_sequence_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 133, in compose_sequence_node
    while not self.check_event(SequenceEndEvent):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 116, in check_event
    self.current_event = self.state()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 468, in parse_indentless_sequence_entry
    KeyToken, ValueToken, BlockEndToken):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 1525, in check_token
    while self.need_more_tokens():
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 159, in need_more_tokens
    self.stale_possible_simple_keys()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 303, in stale_possible_simple_keys
    "could not find expected ':'", self.get_mark())
ScannerError: while scanning a simple key
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 71, column 1
could not find expected ':'
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 72, column 1
File: /usr/share/univention-management-console/modules/apps.xml

File: /usr/share/univention-management-console/i18n/de/apps.mo

File: /etc/apt/apt.conf.d/55user_agent

egroupware=20.1.20201028: Not running, cannot check further
while scanning a simple key
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 71, column 1
could not find expected ':'
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 72, column 1
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/__init__.py", line 226, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/remove.py", line 56, in main
    return self.do_it(args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/install_base.py", line 143, in do_it
    self._do_it(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/docker_remove.py", line 51, in _do_it
    super(Remove, self)._do_it(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/remove.py", line 64, in _do_it
    if not self._remove_app(app, args):
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/docker_remove.py", line 60, in _remove_app
    return self._remove_docker_container(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/docker_remove.py", line 68, in _remove_docker_container
    Stop.call(app=app)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/__init__.py", line 220, in call
    return obj.call_with_namespace(namespace)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/__init__.py", line 226, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/service.py", line 82, in main
    return docker.stop()
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/docker.py", line 663, in stop
    self._setup_yml(recreate=False)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/docker.py", line 497, in _setup_yml
    content = yaml.load(open(yml_file), yaml.RoundTripLoader, preserve_quotes=True)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 86, in load
    return loader.get_single_data()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 54, in get_single_data
    node = self.get_single_node()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 50, in get_single_node
    document = self.compose_document()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 70, in compose_document
    node = self.compose_node(None, None)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 103, in compose_node
    node = self.compose_sequence_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 133, in compose_sequence_node
    while not self.check_event(SequenceEndEvent):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 116, in check_event
    self.current_event = self.state()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 468, in parse_indentless_sequence_entry
    KeyToken, ValueToken, BlockEndToken):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 1525, in check_token
    while self.need_more_tokens():
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 159, in need_more_tokens
    self.stale_possible_simple_keys()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 303, in stale_possible_simple_keys
    "could not find expected ':'", self.get_mark())
ScannerError: while scanning a simple key
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 71, column 1
could not find expected ':'
  in "/var/lib/univention-appcenter/apps/egroupware/compose/docker-compose.yml", line 72, column 1
egroupware=20.1.20201028: Not running, cannot check further
while scanning a simple key
  in "<byte string>", line 71, column 1:
    ox.phoenix-datentechnik.de
    ^
could not find expected ':'
  in "<byte string>", line 72, column 1:
    odin.phoenix-datentechnik.de,465 ... 
    ^
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/__init__.py", line 226, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/install.py", line 84, in main
    return self.do_it(args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/install_base.py", line 143, in do_it
    self._do_it(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/docker_install.py", line 71, in _do_it
    ret = super(Install, self)._do_it(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/install.py", line 107, in _do_it
    self._register_app(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/register.py", line 433, in _register_app
    updates.update(self._register_docker_variables(app))
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/register.py", line 487, in _register_docker_variables
    updates[app.ucr_image_key] = app.get_docker_image_name()
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/app.py", line 1006, in get_docker_image_name
    content = yaml.load(ucr_run_filter(open(yml_file).read()), yaml.RoundTripLoader, preserve_quotes=True)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 86, in load
    return loader.get_single_data()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 54, in get_single_data
    node = self.get_single_node()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 50, in get_single_node
    document = self.compose_document()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 70, in compose_document
    node = self.compose_node(None, None)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 103, in compose_node
    node = self.compose_sequence_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 133, in compose_sequence_node
    while not self.check_event(SequenceEndEvent):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 116, in check_event
    self.current_event = self.state()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 468, in parse_indentless_sequence_entry
    KeyToken, ValueToken, BlockEndToken):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 1525, in check_token
    while self.need_more_tokens():
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 159, in need_more_tokens
    self.stale_possible_simple_keys()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 303, in stale_possible_simple_keys
    "could not find expected ':'", self.get_mark())
ScannerError: while scanning a simple key
  in "<byte string>", line 71, column 1:
    ox.phoenix-datentechnik.de
    ^
could not find expected ':'
  in "<byte string>", line 72, column 1:
    odin.phoenix-datentechnik.de,465 ... 
    ^
Traceback (most recent call last):
  File "/usr/bin/univention-app", line 91, in <module>
    main()
  File "/usr/bin/univention-app", line 78, in main
    ret = args.func(args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/__init__.py", line 226, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/install.py", line 84, in main
    return self.do_it(args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/install_base.py", line 143, in do_it
    self._do_it(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/docker_install.py", line 71, in _do_it
    ret = super(Install, self)._do_it(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/install.py", line 107, in _do_it
    self._register_app(app, args)
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/register.py", line 433, in _register_app
    updates.update(self._register_docker_variables(app))
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/actions/register.py", line 487, in _register_docker_variables
    updates[app.ucr_image_key] = app.get_docker_image_name()
  File "/usr/lib/python2.7/dist-packages/univention/appcenter/app.py", line 1006, in get_docker_image_name
    content = yaml.load(ucr_run_filter(open(yml_file).read()), yaml.RoundTripLoader, preserve_quotes=True)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 86, in load
    return loader.get_single_data()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 54, in get_single_data
    node = self.get_single_node()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 50, in get_single_node
    document = self.compose_document()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 70, in compose_document
    node = self.compose_node(None, None)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 105, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 164, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 103, in compose_node
    node = self.compose_sequence_node(anchor)
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 133, in compose_sequence_node
    while not self.check_event(SequenceEndEvent):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 116, in check_event
    self.current_event = self.state()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 468, in parse_indentless_sequence_entry
    KeyToken, ValueToken, BlockEndToken):
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 1525, in check_token
    while self.need_more_tokens():
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 159, in need_more_tokens
    self.stale_possible_simple_keys()
  File "/usr/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 303, in stale_possible_simple_keys
    "could not find expected ':'", self.get_mark())
ruamel.yaml.scanner.ScannerError: while scanning a simple key
  in "<byte string>", line 71, column 1:
    ox.phoenix-datentechnik.de
    ^
could not find expected ':'
  in "<byte string>", line 72, column 1:
    odin.phoenix-datentechnik.de,465 ... 

Hi Uwe.

Ich habe auf einem frischen UCS die EGroupware-App erfolgreich installiert. Sowohl über das UI, als auch auf der Kommandozeile. Das machte natürlich keinen Unterschied.

Es besteht also kein generelles Problem. Ich sehe auch täglich Installationen und wir hatten bislang keine derartigen Rückmeldungen.
Aber da muss vermutlich Univention etwas zu sagen. Oder @RalfEGroupware ?

Gruß
Stefan
EGroupware Community Manager

Kannst Du den environment Abschnitt der docker-compose.yml Datei hier mal posten. Sieht so aus als hätten die (automatischen) Ersetzungen darin einen Syntax Fehler produziert.

So sieht das bei einem meiner Testsysteme aus:

    environment:
    # do NOT run install from entry-point, as ldap_root_dn/_pw is created by join-script and that starts install
    - EGW_SKIP_INSTALL=true

    # setting a default language for a new installation
    - LANG=de_DE.UTF-8:UTF-8
    - EGW_LDAP_HOST=tls://ucs.demo.egroupware.org:7389
    - EGW_LDAP_BASE=dc=demo,dc=egroupware,dc=org
    - EGW_LDAP_CONTEXT=cn=users,dc=demo,dc=egroupware,dc=org
    - EGW_LDAP_GROUP_CONTEXT=cn=groups,dc=demo,dc=egroupware,dc=org
    - EGW_LDAP_SEARCH_FILTER=(uid=%user)
    - EGW_ACCOUNT_AUTH=univention,univention
    - EGW_SAMBAADMIN_SAMBASID=S-1-5-21-3700578367-3307461214-1040282166

    # configure mailserver
    # set "use auth with session credentials",tls,"not user editable","further identities"
    - EGW_SMTPSERVER=ucs.demo.egroupware.org,465,,,yes,tls,no,yes

    - EGW_SMTP=,Smtp\Univention
    - EGW_MAILSERVER=ucs.demo.egroupware.org,993,demo.egroupware.org,email,tls

    # add master-user/-pw from /etc/dovecot/master-users: <user>:{PLAIN}<pw>::::::
    - EGW_IMAP=dovecotadmin,***************,Imap\Dovecot

    - EGW_FOLDER=INBOX/Sent,INBOX/Trash,INBOX/Drafts,INBOX/Templates,Spam,,Ham
    - EGW_SIEVE=ucs.demo.egroupware.org,4190,starttls

:stop_sign: Bitte nicht einfach die ganze Datei posten, unter EGW_IMAP steht der Dovecot Master User!!!

Ralf

Schaut ganz so aus,

Da stehen auch “längst gegangene” Server drin. Kein Wunder dass sich das da so verhakt.
Unter EGW_IMAP steht dazu kein Passwort… Das hat schon beim Erstellen aus dem template vermutlich gehakt? offensichtlich steht da im LDAP noch Restmüll der ehemaligen Server drin?

Der passende Server hier wäre immer odin.phoenix…

environment:
    # do NOT run install from entry-point, as ldap_root_dn/_pw is created by join-script and that starts install
    - EGW_SKIP_INSTALL=true
    # setting a default language for a new installation
    - LANG=de_DE.UTF-8:UTF-8
    - EGW_LDAP_HOST=tls://odin.phoenix-datentechnik.de:7389
    - EGW_LDAP_BASE=dc=phoenix-datentechnik,dc=de
    - EGW_LDAP_CONTEXT=cn=users,dc=phoenix-datentechnik,dc=de
    - EGW_LDAP_GROUP_CONTEXT=cn=groups,dc=phoenix-datentechnik,dc=de
    - EGW_LDAP_SEARCH_FILTER=(uid=%user)
    - EGW_ACCOUNT_AUTH=univention,univention
    - EGW_SAMBAADMIN_SAMBASID=xxxxxxx

    # configure mailserver
    # set "use auth with session credentials",tls,"not user editable","further identities"
    - EGW_SMTPSERVER=mail.phoenix-datentechnik.de
ox.phoenix-datentechnik.de
odin.phoenix-datentechnik.de,465,,,yes,tls,no,yes

    - EGW_SMTP=,Smtp\Univention
    - EGW_MAILSERVER=mail.phoenix-datentechnik.de
ox.phoenix-datentechnik.de
odin.phoenix-datentechnik.de,993,hh-kartracing.de phoenix-travel.de phoenix-datentechnik.de,email,tls

    # add master-user/-pw from /etc/dovecot/master-users: <user>:{PLAIN}<pw>::::::
    - EGW_IMAP=,,Imap\Dovecot

    - EGW_FOLDER=INBOX/Sent,INBOX/Trash,INBOX/Drafts,INBOX/Templates,Spam,,Ham
- EGW_SIEVE=mail.phoenix-datentechnik.de
ox.phoenix-datentechnik.de
odin.phoenix-datentechnik.de,4190,starttls


    restart: always
    container_name: egroupware
    # set the ip-address of your docker host AND your official DNS name so EGroupware
    # can access Rocket.Chat or Collabora without the need to go over your firewall
    #extra_hosts:
    #- "my.host.name:ip-address"

Hallo,

gibts dazu neue Erkenntnisse? Denn eigentlich sollte das Installscript nicht abbrechen wenn da z.B. mehrere Mailserver im LDAP vorhanden sind?

Hallo,

man sieht ja hier in der yaml Datei, dass Zeilenumbrüche reingekommen sind. Vermutlich durch den Suchfilter, der hier 3 Server findet:

:~# /usr/bin/univention-ldapsearch -x "(univentionAppID=mailserver_*)" univentionAppInstalledOnServer|sed -n "s/univentionAppInstalledOnServer: \\(.*\\)/\\1/p"

Das zerstört natürlich die yaml Datei.
Die Ausgabe, bzw. ohne den sed Befehl sieht das dann so aus:

# mailserver_10, mailserver, apps, univention, phoenix-datentechnik.de
dn: univentionAppID=mailserver_10,cn=mailserver,cn=apps,cn=univention,dc=phoenix-datentechnik,dc=de
univentionAppInstalledOnServer: mail.phoenix-datentechnik.de
univentionAppInstalledOnServer: ox.phoenix-datentechnik.de

# mailserver_12.0, mailserver, apps, univention, phoenix-datentechnik.de
dn: univentionAppID=mailserver_12.0,cn=mailserver,cn=apps,cn=univention,dc=phoenix-datentechnik,dc=de
univentionAppInstalledOnServer: odin.phoenix-datentechnik.de

Die alten Einträge konnte man dann via

:~# udm appcenter/app remove --dn univentionAppID=mailserver_10,cn=mailserver,cn=apps,cn=univention,dc=phoenix-datentechnik,dc=de
Object removed: univentionAppID=mailserver_10,cn=mailserver,cn=apps,cn=univention,dc=phoenix-datentechnik,dc=de

entsorgen und die Installation lief dann erfolgreich durch.

Mastodon