ownCloud 6/7 (by it25) als Community Edition betreiben

Hallo,

anlässlich meines 500. Beitrages in diesem Forum starte ich zur Abwechslung auch mal ein Thema.

Die für UCS angebotenen ownCloud -Versionen waren schon von Beginn an “Enterprise Editionen”. Seit der Version 6 liefert ownCloud auch in der “großen” Enterprise Version neben den AGPL-Apps Teilfunktionen unter einer kommerziellen Lizenz. Wenn eine dieser kommerziellen Apps aktiv ist, benötigt man entweder einen dauerhaften Lizenzkey oder das System aktiviert selbständig einen 30 Tage gültigen Demokey.

Wer ownCloud in der Community Edition unter UCS betreiben möchte, kann folgendes Skript für “ownCloud by it25” benutzen:

cd /var/www/owncloud/apps todelete='enterprise_key files_sharing_log files_ldap_home admin_audit windows_network_drive provisioning_api' if [ -n "${todelete}" ] ; then for app in $todelete; do if [ -d ${app} ] ; then echo "${app} exists - disabling..." /var/www/owncloud/occ app:disable {$app} rm -rvf ${app} fi done fi /var/www/owncloud/occ app:list
Hiermit werden alle vorhandenen kommerziellen Apps deaktiviert und gemäß der Lizenzbedingungen aus /var/www/owncloud/apps gelöscht. Das Skript ist für ownCloud 6.0.5, 6.0.6 und 7.0.3 geeignet und von mir auf derartigen Systemen getestet. Ich möchte dennoch verständlicherweise an dieser Stelle keine Garantie übernehmen. Feedback - auch negatives - ist dennoch willkommen.

Auf Systemen unter UCS 3 kann der Aufruf des occ-Tools folgende Meldung erzeugen:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/suhosin.so' - /usr/lib/php5/20100525/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0

Das ist ein Überbleibsel der alten PHP-Version. Siehe auch [bug]35203[/bug]. Abhilfe bringt:

apt-get remove --purge php5-suhosin

Viele Grüße,
Dirk Ahrnke

Hi Dirk,

das Skript hat bei mit die App user_ldap gelöscht, anschließend war kein login mehr möglich…

Gruß

mereh

Hallo,

[quote=“mereh”]
das Skript hat bei mit die App user_ldap gelöscht[/quote]

merkwürdig.

todelete='enterprise_key files_sharing_log files_ldap_home admin_audit windows_network_drive provisioning_api'

Der Code ist eine Zweitverwertung aus der Paketierung. Bislang habe ich weder dort noch bei Tests Probleme mit dem Skript gesehen.

Ohne user_ldap gibts natürlich keine LDAP-Integration. Die App kann man aber problemlos nachinstallieren.

Aber ich sehe momentan außer Fehler beim Abschreiben keine andere Quelle.

Viele Grüße,
Dirk Ahrnke

Hallo, Dirk,

herzlichen Dank für das Script - war genau was ich brauchte.

LG
Helmut

Ab ownCloud 7.0.4 ist das Skript übrigens Bestandteil der Lieferung.
/usr/share/owncloud/remove-enterprise-apps.sh

Ab 7.0.5 werden wir damit auch das Enterprise-Thema entfernen (müssen).

Es kann sein, dass sich das mit ownCloud 8 wieder ändert, aber da haben wir noch ein paar Tage Zeit.

Viele Grüße,
Dirk Ahrnke

Auch von mir ein fettes Dankeschön: Genau das was ich gesucht habe!

Zwei Bitten, beides ist mir im Zusammenhang mit den Tests zu owncloud.it25 aufgefallen:

Könnt Ihr (it25) bitte auf Eurer Seite https://owncloud.it25.de/faq/#faq_038 noch einen Hinweis auf das Skript geben? Das hätte mir zwei Stunden Arbeit gespart.

Das zweite gehört eigentlich in einen eigenen Beitrag: Könnt Ihr Euch die Deinstallationsroutine der App anschauen? Ausgangslage: “Jungfräulicher UCS-Server”, einige User sind angelegt. Dann übers App-Center owncloud(it25) installiert, dann sofort wieder deinstalliert. Symptom: User lassen sich nicht mehr über das Modul Benutzer anlegen, weil dort noch die Owncloud-Einstellungen hinterlegt sind. Fehlermeldung hier beim Anlegen eines Users: Die Anfrage konnte nicht ausgeführt werden. Fehlernachricht des Servers: Eine oder mehrere Optionen für thread udm/validate fehlen: Die Eigenschaft owncloudEnabled wurde nicht gefunden

Gruß
Lutz Willek

Hallo,

vielen Dank für die Erinnerung an das Update der FAQ.

Zum beschriebenen Problem nach der Deinstallation:

Vor der Freigabe einer App führt Univention diverse automatisierte Tests durch. Dabei wird eine App auf den zugelassenen Systemrollen installiert und wieder deinstalliert. Bis auf einen Fehlalarm haben wir bislang noch keine Probleme bei der Freigabe gehabt. Die Tests werden übrigens bei jeder Aktualisierung erneut durchgeführt.

Grundsätzliche Probleme sollte es also nicht geben. Aber wie das so ist…

Die Deinstallation der ownCloud App wird in mehreren Schritten durchgeführt:

im prerm des Paketes wird u.a das Unjoin-Skript 81owncloud-uninstall.uinst nach /usr/lib/univention-install/ kopiert. Dieses Skript wird dann im postrm ausgeführt. Danach wird im postrm auch die ownCloud-Datenbank entfernt und die UCR-Variablen gelöscht.
Aufgabe des Skriptes sind die Aufräumarbeiten im LDAP. Dazu gehören eben auch das Löschen der Extended Attributes. Das dürfte bei Ihnen nicht funktioniert haben.

Ich würde in /var/log/univention/management-console-module-appcenter.log und ggf. auch /var/log/apt/term.log Hinweise zum Fehlschlag erwarten.

Bevor Sie an eine manuelle Deinstallation der Erweiterten Attribute gehen, wäre es sinnvoll, nachzusehen, ob das ownCloud-Paket noch als installiert angezeigt wird.

Nachfolgend noch ein Auszug aus den Remove-Skripten. Achtung, dies dient nur der Illustration, ist ungeeignet für Cut&Paste in die Shell und als Information gedacht, wo man nachschauen muß, wenn doch eine manuelle Deinstallation nötig sein sollte… :

[code]if ucs_isServiceUnused “${SERVICE}” “$@”; then
# remove LDAP tracks
echo “Cleaning up LDAP …”
udm users/user remove “$@” --dn=“uid=owncloudsystemuser,cn=sysusers,cn=owncloud,$ldap_base”
udm settings/extended_attribute remove “$@” --dn=“cn=ownCloudUserEnabled,cn=owncloud,cn=custom attributes,cn=univention,$ldap_base”
udm settings/extended_attribute remove “$@” --dn=“cn=ownCloudGroupEnabled,cn=owncloud,cn=custom attributes,cn=univention,$ldap_base”
udm settings/extended_attribute remove “$@” --dn=“cn=ownCloudUserQuota,cn=owncloud,cn=custom attributes,cn=univention,$ldap_base”
udm container/cn remove “$@” --dn=“cn=sysusers,cn=owncloud,$ldap_base”
udm container/cn remove “$@” --dn=“cn=owncloud,$ldap_base”
udm container/cn remove “$@” --dn=“cn=owncloud,cn=custom attributes,cn=univention,$ldap_base”

...

fi
[/code]

Im postrm ist dann noch:

[code]if [ “$1” = purge ]; then
# really remove ownCloud (except the data-dir in /var/lib/owncloud and the database)
ocmysqldb=$(grep dbname /var/www/owncloud/config/config.php | cut -d"’" -f4)
echo “Removing /var/www/owncloud/ …”
rm -Rf /var/www/owncloud
# we need to remove the database user, if not a new install will fail
mpw=$(cat /etc/mysql.secret)
mysql -u root -p$mpw -e “drop user oc_owncloudadmin@‘localhost’; drop user oc_owncloudadmin; flush privileges;” || true
mysql -u root -p$mpw -e “delete from oc_appconfig” -D $ocmysqldb || true
mysql -u root -p$mpw -e “delete from oc_users where uid=‘owncloudadmin’” -D $ocmysqldb || true

#unset ocr configuration
ucr unset owncloud/directory/data \
	      owncloud/db/name \
	      owncloud/join/users/update \
	      owncloud/join/users/filter \
	      owncloud/join/groups/filter \
	      owncloud/user/quota \
	      owncloud/user/enabled \
	      owncloud/ldap/tls \
	      owncloud/ldap/displayName \
	      owncloud/ldap/loginFilter \
	      owncloud/ldap/userlistFilter \
	      owncloud/ldap/base/users \
	      owncloud/ldap/base/groups \
	      owncloud/ldap/groupFilter \
	      owncloud/ldap/groupMemberAssoc \
	      owncloud/ldap/group/displayName \
	      owncloud/group/enabled \
	      owncloud/group/enableDomainUsers


# this password is no more
rm /etc/owncloudadmin.secret || true

# remove cron job if present
if crontab -lu www-data 2>/dev/null | grep -q owncloud; then
	echo Removing crontab entry for owncloud...
	crontab -lu www-data | \
		grep -vF '# added by owncloud' | \
		grep -vF 'owncloud/cron.php' | \
		crontab -u www-data -
fi

fi
[/code]
Die Zitate sind beide aus der 7.0.4.

Viele Grüße,
Dirk Ahrnke

Mastodon