OPSI installieren

,
opsi logo

Einleitung – Software-Verteilung

Software-Installationen bzw. Verteilung von Software auf PCs wird in vielen IT-Netzwerken von Administratoren häufig noch nach der „Turnschuh“-Methode gemacht. Ein IT-Administrator läuft an den betroffenen Rechner (PCs, Notebooks) , installiert die gewünschte Software per CD/DVD, USB-Stick oder über das Netzwerk. In den besseren Fällen erfolgt die manuelle Installation remote über Teamviewer oder andere Fernwartungs-Software. – Alles in allem ist die manuelle Installation von Software bzw. ganzen PCs oder Notebooks vor allem aus zeitlichen Gesichtspunkten nicht effizient.

Besser wäre es einen PC möglichst vollautomatisch zu installieren. Gleiches gilt natürlich für die nachträgliche Installation von Software auf Windows-PCs. Wie lange bräuchte wohl ein IT-Administrator um auf 30 Endgeräten die Aktualisierung der Java-Runtime, des Adobe Acrobat Readers oder einer anderen Software die auf praktisch jedem Endgerät vorhanden ist? Denken Sie etwa an die üblichen Browser wie Google Chrome, Firefox oder Edge.

Die Lösung für diesen Zeitfresser sind Software-Tools, die die Inventarisierung und das Software-Deployment im Idealfall vollautomatisch übernehmen. Zum Glück existieren neben kommerziellen Systemen wie SCCM von Microsoft, PDQ-Deploy oder DeskCenter auch Opensource-Kandidaten aus der Gruppe der Software-Deployment-Tools. Eines davon – OPSI (kurz für Open PC Server Integration) – möchten wir heute vorstellen.

OPSI ist Opensource und wird von der deutschen Firma UIB aus Mainz entwickelt. Da OPSI zur Benutzung nicht lizenziert werden muss, kommt die Software oft bei öffentlichen Verwaltungen (Behörden, Schulen, etc.) vor. Aber auch kleinere mittelständische Firmen nutzen OPSI um PCs zu installieren und Software auszurollen.

Weiter unten beschreibe ich die Installation eines OPSI-Servers mit der OPSI Version 4.2 . Die Installation von OPSI in der Version 4.1 auf einem CentOS Server haben wir in einer separaten Installations-Anleitung bereits einmal beschrieben.

Was kann OPSI

Der Leistungsumfang von OPSI ist durchaus ansehnlich. Mit dem Software-Deployment-Tool kann der IT-Administrator die folgenden Aufgaben erledigen:

  • Betriebssystem-Installationen (via PXE-Boot oder Boot-CD)
  • Software-Installationen – in der Regel als „Silent“ oder unattended Installation
  • De-Installationen von Software-Produkten
  • Updates bestehender Software auf Servern, PCs und Notebooks
  • Betriebssystem-Updates
  • Konfigurationen von Endgeräten (bspw. Domain-Beitritt) etwa in der Registry
  • Inventarisierung von Software und Hardware

Interessant ist hierbei, daß über die Skript-Sprache von OPSI ganz normale cmd Befehle von Windows im Kontext eines Administrators ausgeführt werden können. Damit kann bspw. mit wenigen Zeilen Code etwa die Windows Firewall ein- oder ausgeschaltet werden.

Konzept der Softwareverteilung mit OPSI

OPSI besteht aus einem Linux-Server, auf dem neben mysql (bzw. mariadb) noch Samba installiert sein muss. Der eigentliche Verteilungsmechanismus erfolgt vom Server aus über einen in Java geschriebenen Client, vom den aus der IT-Admin die Software-Pakete auf die Notebooks und PCs der Anwender verteilt. Auf den Endgeräten muss ein Agent als Dienst für OPSI installiert sein.

Wie auch bei kommerziellen Deployment-Produkten muss zunächst aus der Installations-Datei des jeweiligen Software-Herstellers ein „Paket“ zur automatischen Installation erstellt werden. Diese Software-Paketierung erfolgt bei OPSI in einer Skript-ähnlichen Sprache.

Voraussetzungen

Um OPSI zu testen oder produktiv zu nutzen, benötigt man lediglich einen einfachen Linux-Server. Opsi funktioniert unter allen wesentlichen Linux-Distributionen (Debian, Ubuntu, RHEL, SLES, CentOS, etc.). Für Interessierte stellt der Hersteller UIB auch noch eine fertige virtuelle Maschine für VMWare oder Hyper-V zur Verfügung. Diese kann bereits mit nur einer CPU und 1 GB RAM betrieben werden.

Wer OPSI produktiv einsetzen möchte, sollte eher 2 CPUs und 2-4 GB RAM veranschlagen. Die Größe des Festplatte richtet sich je nach Kundensituation nach

  • Der Anzahl an Endgeräten (diese werden in einer mysql Datenbank gespeichert)
  • Der Summe der Software-Pakete, die später auf der lokalen Freigabe /var/lib/opsi/repository liegen.

Insbesondere die Software-Pakete benötigen Platz. Wer also ein ansehnliches Arsenal an Software hat, die automatisch verteilt werden soll, sollte hier großzügig Plattenplatz einplanen. Hier bietet sich die Installation einer eigenen Partition unter LVM für das Verzeichnis /var/lib/opsi an.

Hinweis zur Version 4.2: Seit der Version 4.2 von OPSI wird seitens des Herstellers Centos 7 nicht mehr unterstützt. Da Centos 8 leider nicht mehr den Stabilitäts-Charakter wie vorherigen Versionen hat, nutzen wir für den produktiven Betrieb von OPSI nun Debian. Opsi in der Version 4.2 unterstützt sowohl Debian 10 als auch Debian 11.

Für alles weiter unten Beschriebene verwenden wir deshalb ein aktuelles und frisch installiertes Debian 11 System. Auf diesem haben wir zur Vereinfachung selinx unter /etc/sysconfig/selinux deaktiviert und den firewalld-Daemon deaktiviert. Das Debian System selbst bringen wir mit „apt update; apt –y upgrade“ und einem Reboot auf den aktuellen Stand.

Achtung wichtig: In einer Standard-Installation mit aktiviertem LVM verwendet der Debian Installer sehr wenig Platz auf /var. Da dort später alle Software-Pakete von OPSI liegen sollte man hier statt der üblichen 2-3 GB mindestens 10 (besser mehr) GigaByte einbinden. Noch besser ist es das Verzeichnis /var/lib/opsi auf eine separate Partition – gerne als LVM – zu legen.

Installation von OPSI

Der OPSI-Server sollte unbedingt eine statische IP-Adresse erhalten. In unserem Fall hat der Host die IP 10.42.136.89 aus unserem Testnetz.

Wichtig: Hostname und IP müssen einwandfrei im DNS aufzulösen sein. Wer auf Nummer sicher gehen möchte, der trägt in die /etc/hosts Datei die eigene IP und den Hostnamen ein:

1
10.42.136.89 opsi2.intern.local

 

Im Test störte dabei noch die per dhcp vergebene IPV6 Adresse. Diese deaktivieren wir wie folgt:

vi /etc/sysctl.conf => dort einfügen

1
2
3
net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

anschließend

1
sysctl -p

Vorbereiten der Installation von OPSI

Zum Betrieb braucht OPSI zwingend eine SQL-Datenbank – hier mariadb – und SAMBA für die Dateifreigaben. Außerdem brauchen wir später noch 2-3 kleinere Programme wie wget.

Daher installieren wir:

1
2
3
4
5
apt -y  install wget host pigz

apt -y  install samba samba-common smbclient cifs-utils

apt -y install default-mysql-server

Anschließend starten wir Samba, NMB und mariadb einmal neu:

1
2
3
4
5
systemctl restart smbd.service

systemctl restart nmbd.service

systemctl restart mariadb.service

Da Debian Linux einmal installierte Dienste von alleine aktiviert, braucht man die Dienste bzw. Deamons an sich nicht manuell aktivieren. Nur für den Fall der Fälle:

1
2
3
4
5
systemctl enable smbd.service

systemctl enable nmbd.service

systemctl enable mariadb.service

Mariadb sichern wir anschließend noch ab, setzen ein root-Password für die mysql-Datenbank und unterbrinden außerdem den Zugriff von extern per mysql. Eine ausführliche Anleitung zur Installation von mysql bzw. mariadb finden Sie bei uns im Blog.

1
mysql_secure_installation

Die Ausgabe sieht dann in etwa so aus (gekürzt):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Enter current password for root (enter for none):

<a class="wpil_keyword_link" href="https://www.biteno.com/was-ist-ein-switch/"   title="Switch" data-wpil-keyword-link="linked">Switch</a> to unix_socket authentication [Y/n] y

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] n

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y



Thanks for using MariaDB!

 

Zur Abwärtskompatibilität sollte noch folgendes in die Datei /etc/mysql/mariadb.conf.d/50-server.cnf im Abschnit [mysqld] eingefügt werden:

1
sql_mode=NO_ENGINE_SUBSTITUTION

Danach starten wir mysqld bzw. mariadb einmal neu

1
service mariadb restart

Last but not least installieren wir 4 kleine Helferlein, damit wir gleich OPSI richtig herunter laden und installieren können.

1
<strong>apt -y install wget mlocate net-tools sysstat</strong>

Grafana installieren

Seit der Version 4.2 von OPSI benötigt OPSI die Software Grafana zur Visualisierung von Statistiken. Das installieren wir wie folgt gleich mit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
apt-get -y install -y apt-transport-https software-properties-common wget gnupg

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

echo "deb https://packages.grafana.com/oss/deb stable main" &gt; /etc/apt/sources.list.d/grafana.list

apt update

apt -y install redis-server grafana

systemctl daemon-reload

systemctl enable grafana-server

systemctl start grafana-server

apt dist-upgrade

OPSI Installation

Die eigentliche Installation von OPSI erfolgt durch das Herunterladen eines Repositories und dem anschließenden Installieren von zwei Opsi-Paketen, die ihrerseits gut zwei Dutzend Software-Pakete nach sich ziehen.

1
2
3
4
5
6
7
8
9
10
11
12
13
cd /etc/apt

echo "deb http://download.opensuse.org/repositories/home:/uibmz:/opsi:/4.2:/stable/Debian_11/ /" &gt; /etc/apt/sources.list.d/opsi.list

wget -nv https://download.opensuse.org/repositories/home:uibmz:opsi:4.2:stable/Debian_11/Release.key -O Release.key

apt-key add - &lt; Release.key

apt-key list

apt update

apt install opsi-server-full

Hinweis: Bei den obigen Befehlen werden mehrere GPG-Schlüssel importiert. Das sieht im ersten Moment etwas technisch aus – sollte Sie aber nicht weiter beunruhigen.

Die Ausgabe auf Ihrem Bildschirm wird dann in etwa so aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Holen:1 http://deb.debian.org/debian bullseye/main amd64 libapr1 amd64 1.7.0-6+deb11u1 [106 kB]

Holen:2 http://security.debian.org/debian-security bullseye-security/main amd64 apache2-bin amd64 2.4.52-1~deb11u2 [1.413 kB]

Holen:3 http://download.opensuse.org/repositories/home:/uibmz:/opsi:/4.2:/stable/Debian_11  zsync2 2.0.0-alpha-2 [215 kB]

Holen:4 http://deb.debian.org/debian bullseye/main amd64 libaprutil1 amd64 1.6.1-5 [92,1 kB]

Holen:5 http://deb.debian.org/debian bullseye/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-5 [18,8 kB]

[4] [2022-02-04 12:01:23.575] [               ] Failed to setup backend: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'opsi'@'loca

lhost' (using password: YES)"
)

(Background on this error at: https://sqlalche.me/e/14/e3q8)   (setup.py:219)

[4] [2022-02-04 12:01:24.018] [               ] Failed to get directories from depot: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user

'opsi'@'localhost' (using password: YES)"
)

(Background on this error at: https://sqlalche.me/e/14/e3q8)   (Rights.py:295)

[5] [2022-02-04 12:01:24.102] [               ] Setting rights on '/etc/shadow'   (Rights.py:233)

[5] [2022-02-04 12:01:24.103] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/var/log/opsi/opsiconfd/opsiconfd.log'   (Rights.py:233)

[5] [2022-02-04 12:01:24.104] [               ] Setting rights recursively on '/var/lib/opsiconfd/addons'   (Rights.py:233)

[5] [2022-02-04 12:01:24.104] [               ] Setting rights recursively on '/etc/opsi'   (Rights.py:233)

[5] [2022-02-04 12:01:24.211] [               ] Creating opsi CA   (ssl.py:256)

[5] [2022-02-04 12:01:24.211] [               ] Creating CA keypair   (common.py:72)

[5] [2022-02-04 12:01:25.113] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-key.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:25.115] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-cert.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:25.115] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-key.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:27.273] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-cert.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:27.274] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-key.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:27.275] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsiconfd-key.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:27.276] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-cert.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:27.276] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-key.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:27.277] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsiconfd-cert.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:27.278] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsiconfd-key.pem'   (Rights.py:233)

[4] [2022-02-04 12:01:28.210] [               ] Failed to get directories from depot: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user

'opsi'@'localhost' (using password: YES)"
)

(Background on this error at: https://sqlalche.me/e/14/e3q8)   (Rights.py:295)

[5] [2022-02-04 12:01:28.289] [               ] Setting rights recursively on '/etc/opsi'   (Rights.py:233)

[5] [2022-02-04 12:01:28.290] [               ] Setting rights recursively on '/etc/opsi/ssl'   (Rights.py:233)

[5] [2022-02-04 12:01:28.290] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/etc/opsi/ssl/opsi-ca-cert.pem'   (Rights.py:233)

[5] [2022-02-04 12:01:29.236] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/var/lib/opsi/server_commands_custom.conf'   (Rights.py:233)

Trigger für mailcap (3.69) werden verarbeitet ...

Trigger für libc-bin (2.31-13+deb11u2) werden verarbeitet ...

Trigger für man-db (2.9.4-2) werden verarbeitet ...

[/cc ]
<h1><a name="_Toc519848626"></a>OPSI für den ersten Einsatz konfigurieren</h1>
Opsi wird mit wenigen Befehlen für den Einsatz vorbereitet:
[cc lang="bash"]
[root@opsi02&gt; opsi-setup --configure-mysql
opsi mysqld config

Maske der mysqld / Mariadb Konfiguration für OPSI

In der sich öffnenden Maske lassen Sie die ersten beiden Zeilen so wie sie sind. Geben Sie bei “Database admin password“ das root-Passwort des mysql-Benutzers root ein. (Das sollten sie weiter oben bei mysql_secure_installation eingegeben haben).

Mehr zum Thema:
Endlich verstehen: Was ist DMARC und seine Bedeutung?

Sofern Sie das mysql-Passwort des neuen mysql-Benutzers „opsi“ mit setzen möchten, so geben Sie ein entsprechendes neues Passwort in der letzten Zeile ein. Der mysql-Benutzer „opsi“ mit diesem Passwort wird anschließend automatisch angelegt.

Wenn alles geklappt hat, sehen Sie den folgenden Screen:

OPSI mysql Konfiguration fertig

So war die OPSI mysql / maraidb Konfiguration erfolgreich

Tippen Sie mit der TAB-Taste solange bis Sie auf das Feld “OK” gelangen und drücken Return/Enter.

Neue OPSI Konfiguration erstellen

Die eigentliche Konfiguration von OPSI wird mit dem folgenden Befehl erstellt:

1
[root@opsiserver2 ~] opsi-setup --init-current-config

Die Ausgabe dazu sieht dann in etwa so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[5] [2022-02-04 12:06:06.839] [               ] Creating base path: '/var/lib/opsi/config'   (File.py:215)

[5] [2022-02-04 12:06:06.946] [               ] Creating opsi base   (SQL.py:604)

[5] [2022-02-04 12:06:09.380] [               ] Creating config server 'opsi02.itsc.local'   (InitializeBackend.py:58)

[5] [2022-02-04 12:06:09.474] [               ] Setting up default values.   (ConfigurationData.py:63)

[5] [2022-02-04 12:06:09.539] [               ] Finished setting up default values.   (ConfigurationData.py:70)

[5] [2022-02-04 12:06:09.540] [               ] Configuring client user pcpatch   (opsisetup.py:129)

[5] [2022-02-04 12:06:09.540] [               ]    Creating RSA private key for user pcpatch in '/var/lib/opsi/.ssh/id_rsa'   (opsisetup.py:144)

[5] [2022-02-04 12:06:10.171] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/var/lib/opsi/.ssh'   (Rights.py:233)

[5] [2022-02-04 12:06:10.172] [               ] Setting rights on '/var/lib/opsi/.ssh/authorized_keys'   (Rights.py:233)

[5] [2022-02-04 12:06:10.172] [               ] Setting rights on '/var/lib/opsi/.ssh/id_rsa'   (Rights.py:233)

[5] [2022-02-04 12:06:10.172] [               ] Setting rights on 'https://b7s3m5t7.delivery.rocketcdn.me/var/lib/opsi/.ssh/id_rsa.pub'   (Rights.py:233)

[5] [2022-02-04 12:06:10.172] [               ] Getting current system config   (opsisetup.py:96)

[5] [2022-02-04 12:06:10.224] [               ] System information:   (opsisetup.py:112)

[5] [2022-02-04 12:06:10.225] [               ]    distributor  : Debian   (opsisetup.py:113)

[5] [2022-02-04 12:06:10.225] [               ]    distribution : Debian GNU/Linux 11 (bullseye)   (opsisetup.py:114)

[5] [2022-02-04 12:06:10.225] [               ]    ip address   : 10.51.136.234   (opsisetup.py:115)

[5] [2022-02-04 12:06:10.225] [               ]    netmask      : 255.255.254.0   (opsisetup.py:116)

[5] [2022-02-04 12:06:10.225] [               ]    subnet       : 10.51.136.0   (opsisetup.py:117)

[5] [2022-02-04 12:06:10.225] [               ]    broadcast    : 10.51.137.255   (opsisetup.py:118)

[5] [2022-02-04 12:06:10.225] [               ]    fqdn         : opsi02.itsc.local   (opsisetup.py:119)

[5] [2022-02-04 12:06:10.225] [               ]    hostname     : opsi02   (opsisetup.py:120)

[5] [2022-02-04 12:06:10.226] [               ]    domain       : itsc.local   (opsisetup.py:121)

[5] [2022-02-04 12:06:10.226] [               ]    win domain   : WORKGROUP   (opsisetup.py:122)

[4] [2022-02-04 12:06:10.574] [               ] No password for pcpatch found. Generating random password.   (opsisetup.py:196)

Mit dem folgenden Befehl setzen Sie alle notwendigen Berechtigungen für OPSI:

1
2
3
[root@opsi02 ~] opsi-setup --set-rights

(...)

Danach werden die beiden Services “opsiconfd” sowie “opsipxeconfd” neu gestartet

1
2
3
[root@opsiserver2 ~] systemctl restart opsiconfd

[root@opsiserver2 ~] systemctl restart opsipxeconfd

Samba vorbereiten

Der folgende Befehlt bereitet die für OPSI notwendige Samba-Konfiguration vor.

1
opsi-setup --auto-configure-samba

Anschließend sollten die Samba-Dienste neu gestartet werden. Das erledigen wir mit:

1
2
3
systemctl restart smb.service

systemctl restart nmb.service

Last but not least benötigt OPSI noch zwei Benutzer (pcpatch und „adminuser“) und passende Berechtigungen

1
opsi-admin -d task setPcpatchPassword

Anschließend legen wir einen neuen Benutzer namens “adminuser” an.

1
useradd -m -s /bin/bash adminuser

Wir vergeben nun Passwörter für Unix:

1
passwd adminuser

Ebenso ein Passwort für Samba für den Benutzer „adminuser“

1
smbpasswd -a adminuser

 

Zum Schluss wird die Gruppenmitgliedschaft für den Nutzer „adminuser“ eingerichtet und getestet. Dies erfolgt mit:

1
usermod -aG opsiadmin adminuser

Der getent-Befehl sollte dann so etwas ausgeben wie:

1
2
3
[root@opsi01 ~] getent group opsiadmin

opsiadmin:x:1001:opsiconfd,adminuser

Alle User, die Software packen (opsi-makepackage), installieren (opsi-package-manager) oder Konfigurationsdateien manuell bearbeiten wollen, müssen zusätzlich in der Gruppe pcpatch sein. Daher fügen wir den neuen Benutzer „adminuser“ der Gruppe pcpatch hinzu:

1
usermod -aG pcpatch adminuser

Anschließend lassen wir OPSI noch zwei Dinge anapssen:

1
2
3
opsi-setup --patch-sudoers-file

opsi-set-rights

Seit OPSI 4.2 muss unser Benutzer “adminuser” außerdem in der Gruppe “opsifileadmins” enthalten sein:

1
usermod -aG opsifileadmins adminuser

 

Zu guter Letzt starten wir den OPSI-Dienst einmal neu

1
systemctl restart opsiconfd.service

Anpassung aus der Praxis

Damit später das Pakete erstellen klappt, muss noch ein Verzeichnis angelegt werden:

1
2
3
mkdir /etc/opsi/modules

chown opsiconfd.opsiadmin /etc/opsi/modules

Damit haben Sie die eigentliche Installation von OPSI 4.2  geschafft.

Mehr zum Thema:
Was ist AES?

DHCP für OPSI einrichten

OPSI benötigt an sich keinen eigenen DHCP-Server zur reinen Software-Paketverteilung. Lediglich eine funktionierende Namensauflösung mit DNS ist erforderlich. Wer aber mit PXE (Preboot Execution Environment) ganze Betriebssystem-Installationen auf „nackten“ Endgeräten vornehmen möchte, der muss zumindest die PXE-Boot Option mit einem dhcp-Server vornehmen.

Das geht entweder mit einem bestehenden dhcp-Server in dem die next-Server Option passend eingetragen wird. Oder man installiert auf dem OPSI-Server einen dhcp-Dienst, der PCs und Notebooks das PXE-Boot-Image übermittelt, wenn Sie neu installiert werden sollen.

Die gleiche Konfiguration funktioniert übrigens auch mit einer pfsense Firewall und dort aktiviertem dhcpd-Dienst. Hier muss im Abschnitt „Network Boot“ die IP-Adresse des OPSI-Servers im Feld „Next Server“ eingegeben werden. In das Feld „Default Bios file name“ wird „linux/pxelinux.0“ eingetragen

Übrigens: Mit OPSI lassen sich nicht nur Windows 7,8 sowie Windows 10 installieren. Auch die Server-Betriebssysteme Windows 2008 R2, 2012 und Windows 2016 Server lassen sich mit OPSI von der Pike auf installieren.

OPSI Pakete herunter laden.

Um die öffentlich verfügbaren Vorlagen und fertigen Software-Pakete zu nutzen, müssen diese einmalig aus dem Internet herunter geladen werden. Das erledigen Sie mit dem folgenden Befehl „opsi-package-updater“.

Achtung: das dauert je nach Internet-Anbindung zwischen 15 und 30 Minuten – an einer dünnen DSL-Leitung auch gerne länger.

Auch wichtig: Spätestens jetzt brauchen Sie im Verzeichnis /var/lib/opsi viel freien Platz. Etwa 6-7 GB frei sollten es sein – besser mehr. Am besten prüfen Sie das vorher (!)  noch mal mit „df –h“ nach.

1
opsi-package-updater -v install

Eine bestehende Installation aktualisieren Sie mit:

1
opsi-package-updater -v update

 

Mit der OPSI-Konsole starten

Für den Aufruf der Konsole von OPSI benötigen Sie eine aktuelle Java Runtime (Version 1.8) und einen Browser. Um nun OPSI zu nutzen und die Verwaltungs-Oberfläche aufzurufen, öffnen Sie einen Browser und rufen die nachfolgende URL auf:

https://<servername oder IP>:4447/

Die Zertifikatswarnung bestätigen Sie und geben als Benutzername „adminuser“ und das von Ihnen gewählte Passwort ein. Die Webseite sieht dann in etwa so aus:

Die Übersichts-Webseite ihres OPSI-Servers

Die Übersichts-Webseite ihres OPSI-Servers

Sofern Sie die Software „opsi-configed“ nicht schon herunter geladen haben, klicken Sie rechts außen auf „OPSI Configed“ (1) und laden sich das Programm herunter. Installieren Sie es und starten es anschließend.

Es öffnet sich eine Java-Anwendung, die einige Sekunden braucht bis sie vollständig geladen ist. In der anschließenden Maske geben Sie den Admin-User „adminuser“ als Benutzer ein und das vorhin für den Benutzer „adminuser“ vergebene Passwort.

Die Übersicht der Verwaltungskonsole von OPSI sieht dann wie folgt aus. Hier gibt es allerdings im Moment noch nicht viel zu sehen – es fehlen noch die Laptops und PCs.

Die leere Java-Anwendung zur Verwaltung der PCs in OPSI

Die leere Java-Anwendung zur Verwaltung der PCs in OPSI

OPSI-Client Agent einrichten

OPSI Client auf dem PC installieren

OPSI Client auf dem PC installieren

Das Salz in der Suppe jeder Software-Verteilung sind neben den Software-Paketen die Clients (also PCs und Notebooks) die in den Genuss der installierten Software kommen sollen.

Damit Software-Pakete via OPSI auf den Clients automatisch installiert werden können, benötigt jeder PC einen OPSI-Client. Dieser muss einmal installiert werden und stellt anschließend die Verbindung zwischen PC und OPSI-Server her.

Es gibt dabei zwei Möglichkeiten, wie der OPSI-Client installiert werden kann:

  • Vom PC aus über die Freigabe \\<opsiserver>\opsi_depot
  • Vom OPSI-Server aus über die c$ Freigabe des Clients

Installation des Agenten über die „Opsi_depot“ Freigabe

Dazu verbinden Sie von dem PC, den Sie in Opsi einbinden möchten die OPSI-Freigabe \\<opsiserver>\opsi_depot mit einem freien Laufwerksbuchstaben auf dem PC.

Dort wechseln Sie ins Verzeichnis opsi-client-agent und führen die Datei „service_setup.cmd“ aus. Sobald das abgeschlossen ist, rebooten Sie den PC.

1
C:\Users\&gt;net use z: \\opsi02\opsi_depot /user:pcpatch

Geben Sie das Kennwort für „pcpatch“ ein, um eine Verbindung mit „opsi02“ herzustellen:

1
2
3
4
5
6
7
Der Befehl wurde erfolgreich ausgeführt.

C:\Users\&gt; z:

Z:\&gt;cd opsi-client-agent

Z:\opsi-client-agent&gt;service_setup.cmd (return)

Nach der eigentlichen Installation wird noch der Zugang zu OPSI benötigt. Dazu muss interaktiv am Client der Benutzername (bspw. pcpatch oder adminuser) sowie das dazu passende Passwort eingegeben werden.

Achtung: Direkt danach bootet der PC ohne weitere Rückfragen.

Hinweis: Das Skript „service_setup.cmd“ kann auch mit dem Parameter /u aufgerufen werden und verhält sich dann fast „silent“.

 

Nach dem Reboot sollte der PC mit seinem Clientnamen in der OPSI GUI auftauchen.

Installation des OPSI-Agenten vom Server aus

Mit dem Befehl „opsi-client-agent“ aus dem Verzeichnis „/var/lib/opsi/depot“ können Sie auch vom Server aus einen PC aufnehmen. Voraussetzung ist das Vorhandensein der Datei winexe.exe . Außerdem benötigt der PC eine offene c$ Freigabe. Außerdem brauchen sie ein Benutzerkonto auf dem PC sowie das Passwort dazu.

In unseren Tests hakte es bei der Vorgehensweise deutlich öfter als bei der Installation vom PC aus.

Der Vollständigkeit halber:

1
2
3
[root@] cd /var/lib/opsi/depot/opsi-client-agent

[root@] ./opsi-deploy-client-agent -u &lt;benutzername&gt; -p --h

 

Mit OPSI Software automatisiert auf dem PC installieren

Mit OPSI ein Software-Paket auf den Client installieren

Mit OPSI ein Software-Paket auf den Client installieren

Auch wenn in der nackten Installation von OPSI kaum fertige Pakete für Windows vorhanden sind, kann man doch zumindest das Paket zur Hardware-Inventarisierung sowie das für die Software-Inventarisierung installieren.

Um grundsätzlich eine vorhandene Software als Paket zu installieren muss man

– Den Client links auswählen (1)

– Im Reiter „Produktkkonfiguration“ (2) die gewünschte SW auswählen.

– In der Spalte „Angefordert“ (3) der jeweiligen Zeile der Software „Setup“ auswählen (4) – das ist relativ klein geschrieben.

– Anschließend die Zeile nochmal auswählen (1) und rechts-Klick -> Speichern (2)

– Danach kann ebenfalls mit einem Rechts-Klick die „On demand“ (3) Installation starten (Alternativ: booten)

 

Sofern ein Benutzer angemeldet ist, erscheint nur wenige Sekunden danach beim Anwender ein kleines Popup. Danach startet die jeweilige Installation.

 

Sofern kein Benutzer angemeldet ist, so startet die anstehende Software-Installation oder Software-Änderung nach dem nächsten Reboot vor der ersten Anmeldung

 

Schritt 2 der Software-Zuweisung: Speicher und Starten

Schritt 2 der Software-Zuweisung: Speicher und Starten

 

Für den Administrator ist direkt nach der Installation durch ein erneutes Laden der Daten vom OPSI Server sichtbar, ob die Installation erfolgreich war. Falls ja, wird die Versions-Nummer der Software in grün in der betreffenden Zeile angezeigt.

Wer jetzt auf den Geschmack gekommen ist, der sollte nach Möglichkeit den OPSI-Agenten automatisiert per Group-Policy auf den betroffenen Rechnern einrichten.

OPSI – weitere Schritte

Die eigentliche Arbeit besteht bei OPSi wie auch allen anderen Software-Deployment Tools darin, die genutzte Software zu paketieren und testen.

Um diese anstehenden Aufgaben zu vereinfachen, werden bei OPSI zwei Software-Produkte zur Verfügung gestellt. Dies sind zum einen eine Analyse-Software für bestehende *.exe oder MSI-Installer und eine weitere mit der die eigentliche Paketierung und Veröffentlichung erfolgt.

Der OPSI Setup Detector analysiert bestehende MSI und EXE-Installer

Der OPSI Setup Detector analysiert bestehende MSI und EXE-Installer

Der „opsi Setup Detector“ ermittelt aus bestehenden Installern möglichst viele Informationen um anschließend eine möglichst automatische und Bediener-lose Installation zu ermöglichen.

Mit dem OPSI Package Builder werden die Software-Installationen paketiert.

Mit dem OPSI Package Builder werden die Software-Installationen paketiert.

Mit dem  „Opsi Package Builder“ können IT-Administratoren mit relativ wenig Aufwand die Paketierung der notwendigen Software selbst vornehmen.

Ebenso ist es natürlich möglich bestehende, fertige paketierte (freie) Software aus öffentlichen Repositories herunter zu laden und in den eigenen OPSI Server zu integrieren.

An dieser Stelle sei der Hinweis auf das öffentliche Wiki bzw. das Forum von OPSI für die weitere Lektüre erlaubt.

Mehr Infos zu Opsi

Opsi an sich ist sehr gut dokumentiert. Allein die Doku zur Erst-Installation umfasst fast 100 Seiten. Die Dokumentation zur Paketierung ist ebenfalls mehr als ausführlich.

Darüber hinaus finden sich bei Youtube (https://www.youtube.com/watch?v=KW5J3Ymw9NQ&feature=youtu.be ) einige kurze Videos, die interessierten IT-Entscheidern den ersten Überblick erleichtern:

Wer sich intensiver mit OPSI auseinander setzen möchte, dem rate ich zuerst zur Lektüre des „OPSI Getting Started“ PDF . Dort wird nicht nur die Installation von OPSI beschrieben. Im zweiten Teil wird auch exemplarisch beschrieben, wie eine Software-Paketierung abläuft und welche Schritte man als IT-Administrator durchführen muss um eigene bzw. lizenzierte Software zu paketieren.

Im eigentlichen Handbuch zu OPSI 4.2 wird auf knapp 400 Seiten sehr ausführlich erläutert, wie die Verwaltung der PCs sowie Software mit OPSI funktioniert. Die OPSI-Skript-Sprache zur Paketierung selbst ist ebenfalls mit einem separaten über 200 Seiten langen PDF ausführlich dokumentiert.

Quelle: https://download.uib.de/opsi4.2/documentation/html/opsi-manual-v4.2/opsi-manual-v4.2.html

Unser Fazit zu Opsi

OPSI macht auch in der neuen Version 4.2 als Software-Verteilungs-System einen sehr robusten und ausgereiften Eindruck. Geübte IT-Admins mit Basis-Linux-Kenntnissen sollten in wenigen Stunden in der Lage sein, ein funktionierendes Test-System zu installieren und zu nutzen. Wie hoch der tatsächliche Nutzen im Tagesgeschäft ist, hängt natürlich von Fall zu Fall von der Diversität der eingesetzten Software ab.  IT-Administratoren, die Netze mit mehr als 30 PCs verwalten, sollten auf jeden Fall OPSI einmal testen. Es lohnt sich.

Noch einmal Werbung zum Ende

Für Kunden, die sich die Mühe einer OPSI-Installation nicht selbst machen möchten, übernehmen die Mitarbeiter der Biteno GmbH gerne die Installation und den Betrieb von OPSI-Servern zum Festpreis.

Die Biteno GmbH bietet außerdem einen monatlichen Update-Service für die gebräuchlichsten Software-Produkte an, die gerne mit einem OPSI-Server auf Notebooks und PCs gebracht werden. Unter anderem:

  • Alle gängigen Webbrowser (Chrome, Firefox, Edge)
  • Adobe Produkte wie den Acrobat Reader
  • Office 365
  • Software-Entwicklungs-Tools wie Eclipse, Java Runtime

… und viele mehr.

Mehr erfahren Sie unter https://www.biteno.com/it-dienstleistungen/opsi-services/

Unsere IT-Berater erklären Ihnen gerne, wie Sie OPSI in ihrem Netzwerk produktiv nutzen können. Wir freuen uns auf Sie.