Problem bei profil basierter Installation UCS 4.0.3 - opsi

Hallo allerseits,

wir arbeiten gerade daran durch opsi UCS automatisiert zu installieren.
Das Grundprinzip entspricht der Anleitung:
docs.software-univention.de/inst … file:intro

wesentlicher Unterschied ist, das zunächst das opsi-bootimage gestartet wird,
dieses stellt die preseed zusammen, injeziert die preseed.cfg in die ucs-netboot initrd und der UCS netboot kernel und die gepatchte initrd werden per kexec gestartet.
Der angegeben Mirror ist ein UCS 4.0.3 mit Repository von der Installations CD.

Zunächst läuft alles gut - Grundinstallation läuft weit gehend durch: Es wird eine fülle von Paketen gezogen (sieht man im access.log)
dann werden diese Pakete installiert. Nachdem der kernel installiert wurde soll busybox installiert werden und da hängt es dann (busybox wurde auch nicht per http vom repository angefordert)

Das Ende der syslog im Installationsimage sieht so aus:

------------------------------------- Nov 6 16:35:35 debconf: --> GET base-installer/kernel/image Nov 6 16:35:35 debconf: <-- 0 linux-image-3.16.0-ucs135-amd64 Nov 6 16:35:35 base-installer: info: Using kernel 'linux-image-3.16.0-ucs135-amd64' Nov 6 16:35:35 debconf: --> PROGRESS SET 115 Nov 6 16:35:35 debconf: <-- 0 OK Nov 6 16:35:35 debconf: --> PROGRESS INFO base-installer/section/install_kernel Nov 6 16:35:35 debconf: <-- 10 base-installer/section/install_kernel does not exist Nov 6 16:35:35 debconf: --> GET base-installer/kernel/linux/initrd-2.6 Nov 6 16:35:35 debconf: <-- 0 true Nov 6 16:35:35 debconf: --> GET base-installer/kernel/linux/link_in_boot Nov 6 16:35:35 debconf: <-- 0 false Nov 6 16:35:35 base-installer: info: Setting do_initrd='yes'. Nov 6 16:35:35 base-installer: info: Setting link_in_boot='no'. Nov 6 16:35:35 debconf: --> GET base-installer/install-recommends Nov 6 16:35:35 debconf: <-- 0 true Nov 6 16:35:35 debconf: --> GET mirror/protocol Nov 6 16:35:35 debconf: <-- 0 http Nov 6 16:35:35 debconf: --> GET mirror/http/proxy Nov 6 16:35:35 debconf: <-- 0 Nov 6 16:35:35 debconf: --> GET debconf/priority Nov 6 16:35:35 debconf: <-- 0 critical Nov 6 16:35:35 debconf: --> GET debian-installer/locale Nov 6 16:35:35 debconf: <-- 0 de_DE.UTF-8 Nov 6 16:35:36 in-target: Paketlisten werden gelesen... Nov 6 16:35:36 in-target: Nov 6 16:35:36 in-target: Abhängigkeitsbaum wird aufgebaut.... Nov 6 16:35:36 in-target: Nov 6 16:35:36 in-target: Die folgenden NEUEN Pakete werden installiert: Nov 6 16:35:36 in-target: busybox Nov 6 16:35:36 in-target: 0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Nov 6 16:35:36 in-target: Es müssen 451 kB an Archiven heruntergeladen werden. Nov 6 16:35:36 in-target: Nach dieser Operation werden 801 kB Plattenplatz zusätzlich benutzt. Nov 6 16:35:36 in-target: WARNUNG: Die folgenden Pakete können nicht authentifiziert werden! Nov 6 16:35:36 in-target: busybox Nov 6 16:35:36 in-target: E: Es gab Probleme und -y wurde ohne --force-yes verwendet. Nov 6 16:35:36 debconf: --> SUBST base-installer/kernel/failed-package-install PACKAGE busybox Nov 6 16:35:36 debconf: Adding [PACKAGE] -> [busybox] Nov 6 16:35:36 debconf: <-- 0 Nov 6 16:35:36 base-installer: error: exiting on error base-installer/kernel/failed-package-install Nov 6 16:35:36 debconf: --> PROGRESS stop Nov 6 16:35:36 debconf: <-- 0 OK Nov 6 16:35:36 debconf: --> INPUT critical base-installer/kernel/failed-package-install Nov 6 16:35:36 debconf: <-- 0 question will be asked ---------------------------------------------------

Any Idea ?

gerne kann ich auch die komplette syslog der Installation bereitstellen.

gruß
detlef oertel

Hallo,

es sieht so aus, als würde der Installer die Signatur des Repo-Mirrors nicht überprüfen können:

Nov  6 16:35:36 in-target: WARNUNG: Die folgenden Pakete können nicht authentifiziert werden!
Nov  6 16:35:36 in-target:   busybox
Nov  6 16:35:36 in-target: E: Es gab Probleme und -y wurde ohne --force-yes verwendet.

Warum dies nicht bereits bei anderen Paketen angeschlagen hat, kann ich nicht sagen. Eigentlich sollte im Beispiel-Preseed die Zeile

d-i debian-installer/allow_unauthenticated boolean true

dafür sorgen, daß die Signatur gar nicht ausgewertet wird. (der Programmcode ist in der initrd in usr/lib/debian-installer/retriever/net-retriever ab Zeile 89)

Sollte das nicht helfen (oder für diesen Fall nichts wirken), könnte man in dieser Initrd noch den Installer-Skript (bin/apt-install) selbst patchen, während man die Initrd ausgepackt liegen hat. Auf Zeile 61 heißt es:

apt_opts="-q -y"

und danach werden lauter Debconf-Variablen abgefragt, bevor dann apt-get aufgerufen wird. Im Log begintt dies mit der Zeile

    Nov  6 16:35:35 debconf: --> GET base-installer/install-recommends

Die besagte Variable debian-installer/allow_unauthenticated ist da nicht dabei. Die schnellste Lösung wäre es wahrscheinlich, die Zeile zu ändern:

apt_opts="-q -y --force-yes"

viele Grüße
Frank Greif.

Hi,

vielen Dank

d-i debian-installer/allow_unauthenticated boolean true

war gesetzt, hat aber nichts geholfen.
Aber das patchen der /bin/apt-install hat geholfen.

Nun läuft die Installation weiter und stoppt an zwei Punkten:

Dec 7 17:33:19 debconf: --> DATA debconf-apt-progress/info description Holen der Datei 6 von 7 Dec 7 17:33:19 debconf: <-- 0 OK Dec 7 17:33:19 debconf: --> PROGRESS INFO debconf-apt-progress/info Dec 7 17:33:19 debconf: <-- 0 OK Dec 7 17:33:19 in-target: Ign http://security.debian.org ucs403/updates/main Translation-en Dec 7 17:33:19 in-target: W: Fehlschlag beim Holen von http://security.debian.org/dists/ucs403/updates/main/binary-amd64/Packages 404 Not Found [IP: 212.211.132.32 80] Dec 7 17:33:19 in-target: Dec 7 17:33:19 in-target: E: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt. Dec 7 17:33:19 debconf: --> PROGRESS SET 800 Dec 7 17:33:19 debconf: <-- 0 OK Dec 7 17:33:19 debconf: --> DATA debconf-apt-progress/info type text Dec 7 17:33:19 debconf: <-- 0 OK Dec 7 17:33:19 debconf: --> DATA debconf-apt-progress/info description Holen der Datei 7 von 7 Dec 7 17:33:19 debconf: <-- 0 OK Dec 7 17:33:19 debconf: --> PROGRESS INFO debconf-apt-progress/info Dec 7 17:33:19 debconf: <-- 0 OK Dec 7 17:33:19 debconf: --> PROGRESS SET 900 Dec 7 17:33:19 debconf: <-- 0 OK Dec 7 17:33:19 debconf: --> SUBST apt-setup/service-failed HOST security.debian.org Dec 7 17:33:19 debconf: Adding [HOST] -> [security.debian.org] Dec 7 17:33:19 debconf: <-- 0 Dec 7 17:33:19 debconf: --> INPUT critical apt-setup/service-failed Dec 7 17:33:19 debconf: <-- 0 question will be asked

Und am ende

Dec 7 17:38:20 finish-install: info: Running /usr/lib/finish-install.d/10update-initramfs Dec 7 17:38:20 debconf: --> GET mirror/protocol Dec 7 17:38:20 debconf: <-- 0 http Dec 7 17:38:20 debconf: --> GET mirror/http/proxy Dec 7 17:38:20 debconf: <-- 0 Dec 7 17:38:20 debconf: --> GET debconf/priority Dec 7 17:38:20 debconf: <-- 0 critical Dec 7 17:38:20 debconf: --> GET debian-installer/locale Dec 7 17:38:20 debconf: <-- 0 de_DE.UTF-8 Dec 7 17:38:20 debconf: --> PROGRESS STEP 1 Dec 7 17:38:20 debconf: <-- 0 OK Dec 7 17:38:20 debconf: --> PROGRESS INFO finish-install/progress/final-message Dec 7 17:38:20 debconf: <-- 10 finish-install/progress/final-message does not exist Dec 7 17:38:20 debconf: --> SUBST finish-install/progress/fallback SCRIPT final-message Dec 7 17:38:20 debconf: Adding [SCRIPT] -> [final-message] Dec 7 17:38:20 debconf: <-- 0 Dec 7 17:38:20 debconf: --> PROGRESS INFO finish-install/progress/fallback Dec 7 17:38:20 debconf: <-- 0 OK Dec 7 17:38:20 finish-install: info: Running /usr/lib/finish-install.d/20final-message Dec 7 17:38:20 debconf: --> CAPB backup Dec 7 17:38:20 debconf: <-- 0 multiselect backup progresscancel align escape plugin-terminal Dec 7 17:38:20 debconf: --> INPUT critical finish-install/reboot_in_progress Dec 7 17:38:20 debconf: <-- 0 question will be asked

Das system ist nun rebootbar, man kann sich einloggen aber die installation erscheint mir unvollständig:
Es gibt nur 6 Befehle die mit univention Anfangen:

root@vmex10160:~# univention- univention-baseconfig univention-config-registry univention-ldapsearch univention-check-templates univention-keyboardmapping univention-set-logfile-permissions

Der UCS Teil auf der pressed (entnommen dem opsi-bootimage log

code [7] [Dez 07 17:31:13] >>> ##################### UCS ########################### (Posix.py|836)
(1922) [7] [Dez 07 17:31:13] >>> # (Posix.py|836)
(1923) [7] [Dez 07 17:31:13] >>> # Disable starting “Univention System Setup Boot” (Posix.py|836)
(1924) [7] [Dez 07 17:31:13] >>> # (Posix.py|836)
(1925) [7] [Dez 07 17:31:13] >>> d-i ucr/system/setup/boot/start string false (Posix.py|836)
(1927) [7] [Dez 07 17:31:13] >>> (Posix.py|836)
(1928) [7] [Dez 07 17:31:13] >>> # (Posix.py|836)
(1929) [7] [Dez 07 17:31:13] >>> # Univention System Setup profile (Posix.py|836)
(1930) [7] [Dez 07 17:31:13] >>> # (Posix.py|836)
(1931) [7] [Dez 07 17:31:13] >>> #univention-system-setup-boot uss/root_password string (Posix.py|836)
(1932) [7] [Dez 07 17:31:13] >>> univention-system-setup-boot uss/components string (Posix.py|836)
(1933) [7] [Dez 07 17:31:13] >>> univention-system-setup-boot uss/packages_install string (Posix.py|836)
(1934) [7] [Dez 07 17:31:13] >>> univention-system-setup-boot uss/packages_remove string (Posix.py|836)
(1935) [7] [Dez 07 17:31:13] >>> # Choices: domaincontroller_master domaincontroller_backup domaincontroller_slave memberserver base (Posix.py|836)
(1936) [7] [Dez 07 17:31:13] >>> univention-system-setup-boot uss/server/role string domaincontroller_master (Posix.py|836)
(1937) [7] [Dez 07 17:31:13] >>> univention-system-setup-boot uss/ldap/base string dc=uib,dc=local (Posix.py|836)[/code]

Meine Fragen:
Wie gewöhne ich ihm ab nach
security.debian.org/dists/ucs403
zu suchen ?
Wie kann ich die Abschluß abfrage unterbinden ?
Was muss noch in die preseed rein damit er die fehlenden Pakete installiert und einen master daraus macht ?
Nächster Schritt wäre dann:
Wie erzeuge ich aus dem Inhalt der UCS Installations DVD auf einem beliebeigen Linux (ok zunächst mal ein Debian) ein Repository das verwendet werden kann ?

Weiterhin Danke im Voraus

detlef oertel

Zunächst vorweg: Die in http://docs.software-univention.de/installation.html#profile:example angegebene Profildatei ist alleine nicht vollständig; sie ergänzt lediglich die preseed.cfg, die direkt in der InitRamFS auf der DVD enthalten ist. Falls der opsi-Installer die preseed.cfg-Datei vollständig ersetzt, müssen Sie die Einstellungen aus unserer Version in die ihrige übernehmen. An die Datei kommen Sie in etwa so:

mount -o loop,ro iso/UCS_4.0-3-amd64.iso /media/cdrom
cd "$(mktemp -d)"
gzip -dc </media/cdrom/install.amd/initrd.gz | cpio -i
cp preseed.cfg ...

Ich vermute, das sich etliche der nachfolgenden Probleme dadurch “von Alleine” lösen:

[quote]Meine Fragen:
Wie gewöhne ich ihm ab nach security.debian.org/dists/ucs403 zu suchen ?
[/quote]

Das macht folgende Einstellung in unserer preseed.cfg:

d-i apt-setup/services-select multiselect none

Das sollte folgende Einstellung erledigen:

d-i finish-install/reboot_in_progress note

Ich verweise auch direkt auf https://www.debian.org/releases/wheezy/amd64/apbs04.html.de, wo die ganzen anderen Einstellungsmöglichkeiten des Debian-Installers beschrieben sind. Im Zweifelsfall schaut man in der Logdatei des Debian-Installers nach, welche debconf-Frage gestellt wird und schreibt die dazu passende Antwort dann in die preseed.cfg-Datei

Dafür sorgen folgende Einstellungen:

tasksel tasksel/first multiselect none d-i pkgsel/include string univention-system-setup-boot univention-management-console-web-server univention-management-console-module-setup univention-kernel-image openssh-server

[quote]
Nächster Schritt wäre dann:
Wie erzeuge ich aus dem Inhalt der UCS Installations DVD auf einem beliebeigen Linux (ok zunächst mal ein Debian) ein Repository das verwendet werden kann ?[/quote]

Auf einem UCS-System gibt es dafür /usr/sbin/univention-repository-create aus dem Paket univention-updater, das in etwa folgendes tut:
[ul]
[li] *.deb- und .udeb-Pakete von der DVD kopieren nach …/4.0/maintained/4.0-3/{amd64,all}/[/li]
[li] all/{pre,post}up.sh{,.pgp} Skripte und Signaturen des Updaters kopieren[/li]
[li] Kopieren des Kernels und der zugehörigen initrd des Installers[/li]
[li] Kopieren bzw. generieren der 4.0-3/{amd64,all}/Packages- (und Release-)Dateien relativ zu …/4.0/maintained/ - diese werden vom UCS-Update-Mechanismus verwendet[/li]
[li] Kopieren bzw. generieren der 4.0-3/dists/ucs403/-Struktur - diese wird vom Debian-Installer verwendet[/li][/ul]
Weil die UCS-Releases aufeinander aufbauen, müssen noch einige Verzeichnisse angelegt werden, damit der UCS-Updater seine [i]/etc/apt/sources.list.d/
[/i]-Dateien generieren kann:

cp -lr .../4.0/maintained/4.0-{3,0} cp -lr .../4.0/maintained/4.0-{3,1} cp -lr .../4.0/maintained/4.0-{3,2}

Langfristig wollen wir unseren FTP-Server so umstellen, dass eine Installation auch direkt von http://updates.software-univention.de/ erfolgen kann. Derzeit fehlen dort aber noch die .udeb-Pakete und die dists/main/debian-installer/binary-$ARCH/{Packages,Release}-Dateien

Herzlichen Dank an pmhahn !

Das war der entscheidende Hint.

Jetzt geht es weiter - ich melde mich wieder wenn es klemmt.

Danke und saisonale Grüße

d.oertel

Hallo,

Hi,

ich bin ein gutes Stück weitergekommen und habe jetzt folgenden Status:
Installation läuft nicht interaktiv (mit der Ausnahme von 2 Abfragen zur Tastaur
aber das bekomme ich noch hin) bis zum ersten Reboot durch.
Dabei wird auch der opsi-client-agent schon korrekt installiert.
Nach dem ersten Reboot startet die inertaktive ‘UCS-Einrichtung’
(ich vermute das ist der Prozess ‘/usr/share/univention-system-setup/startxwithfirefox’).
Hier wird dann nach Namen,Domain,Rolle, Passwort, mail-adresse gefragt.
Dinge die (bis auf die mail adresse) schon jetzt in der preseed stehen.

An dem Aufbau des Repostories im opsi Server arbeite ich noch und benutze daher noch
ein UCS als Repository.

Meine Frage:
Wie bekomme ich die ‘UCS-Einrichtung’ nicht interaktiv ?
Die Einstellung ‘d-i ucr/system/setup/boot/start string’ true oder false scheint hier egal zu sein.
An welcher Stelle gibt es ein Log dazu ?

Hier ist meine aktuelle preseed:

[code]# from http://docs.software-univention.de/installation.html#profile:intro

This file overwrites /proc/cmdline overwrites preseed.cfg in the InitRamFs!

The following options are set through the PXE configuration

Delay asking for locale and keyboard layout after pre-seeding via network

#d-i auto-install/enable boolean true

Only ask for critical questions

#d-i debconf/priority select critical

Disable graphical installer

#d-i debian-installer/framebuffer boolean false

Select German as default locale and for keyboard layout

#d-i debian-installer/locale string de_DE.UTF-8
d-i debian-installer/locale string de_DE.UTF-8
#d-i keyboard-configuration/xkb-keymap select de(nodeadkeys)
d-i keyboard-configuration/xkb-keymap de
d-i keyboard-configuration/modelcode string pc105
d-i ucr/xorg/keyboard/options/XkbModel string pc105
d-i keyboard-configuration/layoutcode string de
d-i ucr/xorg/keyboard/options/XkbLayout string de
d-i keyboard-configuration/variantcode string nodeadkeys
d-i ucr/xorg/keyboard/options/XkbVariant string nodeadkeys
#d-i keyboard-configuration/optionscode string
d-i ucr/xorg/keyboard/options/XkbOptions string
#d-i debian-installer/keymap select de-latin1-nodeadkeys
##https://wiki.debianforum.de/Debian-Installation_über_PXE,_TFTP_und_Preseed

Locale / Keymap

##d-i debian-installer/locale string de_DE.UTF-8
d-i debian-installer/language string de
##d-i debian-installer/keymap select de-latin1-nodeadkeys
d-i debian-installer/country string DE
##d-i console-keymaps-at/keymap select de-latin1-nodeadkeys
##d-i languagechooser/language-name-fb select German
##d-i countrychooser/country-name select Germany
##d-i console-setup/layoutcode string de_DE

##d-i console-tools/archs select de-latin1-nodeadkeys

d-i keyboard-configuration/toggle select No toggling

##d-i keyboard-configuration/layoutcode string de-latin1-nodeadkeys
#d-i keyboard-configuration/layoutcode string de-latin1-nodeadkeys
d-i keyboard-configuration/xkb-keymap de
##d-i console-keymaps-at/keymap select de-latin1-nodeadkeys
##d-i console-setup/layoutcode string de_DE
##d-i keyboard-configuration/variantcode string de-latin1-nodeadkeys
##d-i keyboard-configuration console-setup/ask_detect boolean false
##d-i keyboard-configuration console-setup/detected note
##d-i keyboard-configuration keyboard-configuration/model select Generic 105-key (Intl) PC

Configure local repository server

d-i debian-installer/allow_unauthenticated boolean true
d-i mirror/country string manual
d-i mirror/protocol select http
d-i mirror/http/proxy string

The host name of the repository server is filled through the PXE configuration generated by UDM

d-i mirror/http/hostname string detlefvm06
d-i mirror/http/directory string /univention-repository/4.0/maintained/4.0-3/
d-i mirror/codename string ucs403
d-i mirror/suite string ucs403
d-i mirror/udeb/suite string ucs403

d-i debian-installer/allow_unauthenticated boolean true

Base system installation

Configure APT to not install recommended packages by default. Use of this

option can result in an incomplete system and should only be used by very

experienced users.

#d-i base-installer/install-recommends boolean false

Disable password for user ‘root’

d-i passwd/root-login boolean true

Alternative: printf “secret” | mkpasswd -s -m sha-512

d-i passwd/root-password-crypted string $6$i2Gm851cch6jcT7a$Iiy1HrcwQSBoexKuREmNmMlUxfSW1BQsWol13VLXEiitNZIhm7cfHGGHtrN5oGJfJuiP2p13RxQGBmYekWLzf1

Partition hard disk: Use “lvm” and one big “/” partition

Choices: lvm crypto regular

#d-i partman-auto/method string lvm

Choices: atomic home multi

#d-i partman-auto/choose_recipe string atomic
#d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
#d-i partman-lvm/confirm boolean true
#d-i partman-lvm/confirm_nooverwrite boolean true
#d-i partman-partitioning/confirm_write_new_label boolean true
#d-i partman/choose_partition select finish
#d-i partman/confirm boolean true
#d-i partman/confirm_nooverwrite boolean true

To create a normal user account.

d-i passwd/user-fullname string User
d-i passwd/username string user

Normal user’s password, either in clear text

#d-i passwd/user-password password #@myuserpassword*#
#d-i passwd/user-password-again password #@myuserpassword*#

or encrypted using an MD5 hash.

d-i passwd/user-password-crypted password $6$Nd6+Xps6GkJrfjk0$SOg8Bw4nXpBWDBYfOyA3AVL6DQgt7FslEsdO9SoryyQ381J0tr9/UrEHeeff6JRSac/zjnKIUgZTjwvYLZabR0

Create the first user with the specified UID instead of the default.

#d-i passwd/user-uid string 1010

Clock and time zone setup

Controls whether or not the hardware clock is set to UTC.

d-i clock-setup/utc boolean true

You may set this to any valid setting for $TZ; see the contents of

/usr/share/zoneinfo/ for valid values.

d-i time/zone string Europe/Berlin

Controls whether to use NTP to set the clock during the install

d-i clock-setup/ntp boolean true

NTP server to use. The default is almost always fine here.

#d-i clock-setup/ntp-server string ntp.example.com

Partitioning

d-i partman/unmount_active boolean true

d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic

d-i partman-crypto/passphrase string *** confidential ***
d-i partman-crypto/passphrase-again string *** confidential ***

d-i partman-md/device_remove_md boolean true
d-i partman-md/confirm boolean true

d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true

d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

d-i preseed/late_command string /sbin/opsipatchscript.sh ; /sbin/opsi-client-agent.sh

##################### UCS from DVD pressed ###########################

no live installer

d-i live-installer/enable boolean false

Use interfaces with link

d-i netcfg/choose_interface select auto
d-i netcfg/dhcp_timeout string 60

Use dummy hostname and domain

#d-i netcfg/get_hostname string unassigned-hostname
#d-i netcfg/get_domain string unassigned-domain
d-i netcfg/get_hostname string vmex10160
d-i netcfg/get_domain string uib.local

krb5-config krb5-config/default_realm string UNASSIGNED-REALM
krb5-config krb5-config/kerberos_servers string localhost
krb5-config krb5-config/admin_server string localhost

Don’t create a first user

d-i passwd/make-user boolean false

LVM

d-i partman-auto/init_automatically_partition select 60some_device_lvm
d-i partman-auto/init_automatically_partition seen false
d-i partman-auto-lvm/new_vg_name string vg_ucs

Pre-select the standard UCS kernel

d-i base-installer/kernel/image string linux-image-3.16.0-ucs135-amd64
d-i base-installer/includes string less

Only minimal install

d-i apt-setup/use_mirror boolean false
d-i apt-setup/no_mirror boolean true
d-i apt-setup/services-select multiselect none
tasksel tasksel/first multiselect none
d-i pkgsel/include string univention-system-setup-boot univention-management-console-web-server univention-management-console-module-setup univention-kernel-image openssh-server
postfix postfix/main_mailer_type string No configuration
openssh-server ssh/disable_cr_auth boolean false
d-i pkgsel/upgrade select none
popularity-contest popularity-contest/participate boolean false

Install GRUB in MBR by default on new systems

d-i grub-installer/only_debian boolean true
grub-pc grub-pc/install_devices multiselect
grub-pc grub-pc/install_devices_empty boolean true

After installation

d-i finish-install/reboot_in_progress note
#d-i cdrom-detect/eject boolean true

Chain-load other preseed file for additional customization

#d-i preseed/include string custom.cfg

##################### UCS ###########################

Disable starting “Univention System Setup Boot”

d-i ucr/system/setup/boot/start string false
#d-i ucr/system/setup/boot/start string true

Univention System Setup profile

univention-system-setup-boot uss/root_password string $6$i2Gm851cch6jcT7a$Iiy1HrcwQSBoexKuREmNmMlUxfSW1BQsWol13VLXEiitNZIhm7cfHGGHtrN5oGJfJuiP2p13RxQGBmYekWLzf1
d-i uss/root_password string $6$i2Gm851cch6jcT7a$Iiy1HrcwQSBoexKuREmNmMlUxfSW1BQsWol13VLXEiitNZIhm7cfHGGHtrN5oGJfJuiP2p13RxQGBmYekWLzf1
univention-system-setup-boot uss/components string
univention-system-setup-boot uss/packages_install string
univention-system-setup-boot uss/packages_remove string

Choices: domaincontroller_master domaincontroller_backup domaincontroller_slave memberserver base

univention-system-setup-boot uss/server/role string domaincontroller_master
univention-system-setup-boot uss/ldap/base string dc=uib,dc=local
d-i uss/server/role string domaincontroller_master
d-i uss/ldap/base string dc=uib,dc=local [/code]

Vielen Dank im Voraus und saisonale Grüße
d.oertel

Hallo alerseits,

Weitere Fragen (zusätzlich zu den noch offenen):
Hat jemand ein konkretes, funktionierendes Beispiel für die preseed Einträge für eine Deutsche Tastatur die zu einer nicht interaktiven Installation führen (bei Debian und Ubuntu klappt das bei mir aber bei UCS hängt es …) ?

Wie binde ich die App-Center Lizenz auf der Kommandozeile ein ?

Wie starte ich eine App-center Installation auf der Kommandozeile ?

Vielen Dank im Voraus und saisonale Grüße
d.oertel

univention-license-import: import license key for UCS
copyright © 2001-2015 Univention GmbH, Germany

Syntax:
univention-license-import
univention-license-import [–help] [–version]

Options:
'-h | --help | -?: print this usage message
'–version: print version information

Description:
univention-license-import is a tool for importing license keys
for UCS from file.

Usage: univention-add-app --list # OR:
univention-add-app [-a] [-m] [-l] [ …]

Hallo allerseits,

Dank für die die Antworten!

Die weiterhin noch offenen Fragen:
[ul][li]Wie bekomme ich die ‘UCS-Einrichtung’ nicht interaktiv ?
Die Einstellung ‘d-i ucr/system/setup/boot/start string’ true oder false scheint hier egal zu sein.[/li]
[li]An welcher Stelle gibt es ein Log dazu ?[/li]
[li]Hat jemand ein konkretes, funktionierendes Beispiel für die preseed Einträge für eine Deutsche Tastatur die zu einer nicht interaktiven Installation führen (bei Debian und Ubuntu klappt das bei mir aber bei UCS hängt es …) ?[/li][/ul]
Vielen Dank im Voraus und gutes Neues
d.oertel

Zunächst ein paar Anmerkungen: Die von ihnen gepostete “preseed.cfg” enthält einige Problemfälle:
[ul]
[li]Einige Werte werden mehrfach angegeben, teilweise auch nur mit unterschiedlichem “owner” (1. Spalte). debconf nutzt die 1. Spalte nur dazu sich zu merkem, welchem Paket die Antwort gehört, damit diese aus dem Cache gelöscht werden kann, wenn dieses Paket entfernt wird.[/li]
[li]Der Wert für “postfix/main_mailer_type” enthält ein Leerzeichen am Ende, was dazu führt, dass “postfix” seine Fragen stellt. Kann auch ein Problem mit dem Copy&Paste hier aus dem Forum sein.[/li]
[li]Bei “keyboard-configuration/xkb-keymap” fehlt der Typ “select” (3. Spalte). Das führt vermutlich zu ihrem Problem mit dem deutschen Tastaturlayout.[/li][/ul]

“univention-system-setup” (USS) wird noch während der Installation (vor dem Reboot) aufgerufen. Bei der Installation eines DC Masters tritt dann das Problem auf, dass dort die Join-Scripte ausgeführt werden, das System aber zu dem Zeitpunkt nicht funktionsfähig ist: Etliche Skripte laufen dann in einem (unendlichen) Timeout, weil u.a. der LDAP-Server wegen “policy-rc.d” in der chroot-Umgebung nicht läuft.
Man kann das Ausführen der Join-Skripte mit folgendm Eintrag in der “preseed.cfg” unterbinden:

univention-system-setup-boot uss/start/join string false

Nach dem Reboot kann dann “/usr/lib/univention-system-setup/scripts/setup-join.sh” erneut aufgerufen werden, nachdem man dann in “/var/cache/univention-system-setup/profile” das richtige Profil für USS von Hand abgelegt hat.
Wir machen das für unsere Cloud-Tests auch so, wobei wir allerdings auch erst dann die Systemrolle festlegen.
Ggf. kann es notwendig sein, als Systemrolle in der “preseed.cfg” nicht direkt “domaincontroller_master” anzugeben, weil ansonsten diese Rolle beim 2. Setzen nicht richtig funktioniert.

Das Logging an der Stelle ist eher dürftig:
[ul]
[*]"/var/log/syslog" während der Installation[/li]
[li]“chroot /target bin/bash” und danach unter “/var/log/univention/setup.log”[/li]
[li]“loglevel=8” und “DEBCONF_DEBUG=5” als zusätzliche Parameter auf der Kernel-Kommandozeile helfen ein wenig weiter.[/li][/ul]

Siehe http://docs.software-univention.de/installation-4.0.html#profile:example.
Wichtig zu wissen ist, dass “univention-base-files” recht früh installiert wird, was u.a. ein Template für “/etc/default/keyboard” mitbringt. Deshalb muß das Layout per UCR (ucr/xorg/keyboard/options/Xkb…) konfiguriert werden und nicht per “keyboard-configuration/…”: Diese Einstellungen werden sofort überschrieben, was dazu führt, dass die Tastaturkonfiguration ihre Fragen stellt, weil ggf. dann die Werte aus der Datei gelesen werden, damit dann nicht gesetzt sind und zwingend abgefragt werden.
preseed.txt (7.06 KB)

Hi,

das hat sehr geholfen! Danke !

  • die Installation läuft bis zum ersten reboot durch
  • wenn ich nach dem reboot das profile ablege und das join script aufrufe geht es weiter.

Gibt es etwas das Univention im Sinne einer Profilbasierten Installation empfiehlt um diesen Schritt zu automatisieren
oder Ist es aus Univention Sicht so, das die Installation eines masters nicht notwendig vollständig automatisiert ablaufen muss ?
Ist der Ablauf bei der Installation der anderen Rollen genauso oder was sind hier die grundsätzlichen Abweichungen.

gruß
d.oertel

[quote=“opsi4ucs”]Gibt es etwas das Univention im Sinne einer Profilbasierten Installation empfiehlt um diesen Schritt zu automatisieren
oder Ist es aus Univention Sicht so, das die Installation eines masters nicht notwendig vollständig automatisiert ablaufen muss ?[/quote]

Die automatische Installation eines Masters ist nicht Produktbestandteil. Wir gehen davon aus, dass zumindest der Master, der das erste System einer jeden UCS-Domäne ist, per Hand aufgesetzt wird.
Für unsere Test-Umgebungen setzten wir zwar auch komplett neue UCS-Master auf, setzen dafür aber interne Tools ein, die nicht im Produkt UCS enthalten sind.

Das Aufsetzen weiterer Systemrollen funktioniert analog, wobei das direkt in UCS integriert ist:
[ul]
[li]im Profil werden dann andere Rollen angegeben[/li]
[li]es werden andere Pakete installiert[/li]
[li]der Domänenbeitritt muß noch gemacht werden: entweder auch direkt über die Profildatei (erfodert dann aber die Angabe eines Passworts darin) oder manuell im Nachgang nach der Installation[/li][/ul]
In UCS ist das soweit vorbereitet, dass wir einige Pakete für die automatische Installation von weiteren UCS-Systemen mitbringen:
[ul]
[li]univention-net-installer bringt die Listener Module mit, die eine passende PXE-Konfigurationsdatei generieren, wenn über die UMC ein Rechner für die Neuinstallation ausgewählt wird[/li]
[li]univention-tftp enthält weitere Dateien für PXE[/li]
[li]univention-net-installer-daemon enthält noch einen Dienst, der nach dem Durchlauf der Installation den Rechner als erfolgreich installiert markiert, damit beim nächsten Start der Rechner nicht erneut installiert wird[/li]
[li]univention-debmirror richtet ein lokales Repository mit den erforderlichen Paketen ein[/li][/ul]

Hallo allerseits,

Dank für die Hilfe, die Installation des Masters läuft schon fast automatisch.

Wie muß hierfür der Profil Eintrag konkret aussehen ?

Vielen Dank im Voraus
d.oertel

Der Account-Name und dessen Passwort müssen beim Aufruf von setup-join.sh übergeben werden, in etwa so:

cat >/var/cache/univention-system-setup <<__PROFILE__
hostname=backup30
domainname=phahn.qa
windows/domain=PHAHN
server/role="domaincontroller_backup"
root_password="univention"

locale/default="de_DE.UTF-8:UTF-8"
packages_install=""
packages_remove=""

interfaces/eth0/type=""
interfaces/eth0/address="10.200.17.30"
interfaces/eth0/netmask="255.255.255.0"
interfaces/eth0/network="10.200.17.0"
interfaces/eth0/broadcast="10.200.17.255"
gateway="10.200.17.1"
nameserver1="10.200.17.28"

start/join=true
__PROFILE__
printf '%s' univention >/tmp/secret
/usr/lib/univention-system-setup/scripts/setup-join.sh --dcaccount Administrator --password_file /tmp/secret
Mastodon