Important files on the opsi server
Common configuration files in /etc
/etc/hosts
The IP number and IP name of the clients can be entered here (additional names are aliases, and comments start with the "#" character).
Opsi needs the 'fully qualified hostname' (i.e. including the domain) and this can come from /etc/hosts
as well from the 'DNS'.
Example:
192.168.2.106 dplaptop.uib.local dplaptop # this opsi-server
192.168.2.153 schleppi.uib.local
192.168.2.178 test_pc1.uib.local # Test-PC PXE-bootprom
The output of:
getent hosts $(hostname -f)
should be similar to:
192.168.1.1 server.domain.tld server
If the result does not look like this (e.g. contains '127.0.0.1' or 'localhost'), you must first correct your /etc/hosts
or name resolution.
/etc/group
Two groups must exist here: 'pcpatch' and 'opsiadmin'. All users who are dealing with package management should be member of the group 'pcpatch'. All users who want to use the opsiconfd web service, e.g. via opsi-configed, must be in the 'opsiadmin' group.
/etc/opsi/backendManager/
-
acl.conf
Configuration of the access rights to the opsi methods. This allows access rights for the basic methods of the web service to be restricted to certain users and certain attributes. -
dispatch.conf
Configuration of which of the backends configured under/etc/opsi/backends/
should be used for what. -
extend.d/
Directory for backend extensions. So here are for example the scripts that map the opsi 3 methods to the opsi 4 methods.
/etc/opsi/hwaudit/*
Since opsi version 3.2
Here you will find the configuration files for the hardware inventory.
Translations are located in the locales
directory.
The mapping between WMI classes (for Windows) or shell programs (for Linux) and the opsi data storage is configured in the file opsihwaudit.conf
.
/etc/opsi/opsi.conf
Since opsi version 4.0.2-2
General opsi settings.
Example:
[groups]
fileadmingroup = pcpatch
Background:
The classic installation variant with the user: pcpatch
with the primary group: pcpatch
does not work with Samba 4. Since Samba 4 is subject to the basic restrictions of Active Directory, groups with the same name as users (as is usual in Unix/Linux) are no longer allowed. For this reason, a new configuration file has been introduced: /etc/opsi/opsi.conf
, which controls how the group is determined for Samba access to the shares. In the case of Samba 4 installations, the group name pcpatch
is now renamed via this file and is now called opsifileadmins
. This means that the users which must have access rights to the shares of opsi (opsi-packagers) under Samba 4 cannot become a member of the pcpatch
group, but must be a member of the opsifileadmins
group.
/etc/opsi/modules
Since opsi version 3.4
This file is signed by uib gmbh for the activation of non-free features. If this file is changed, it loses its validity. Without this file, only the free features are available.
/etc/opsi/opsiconfd.conf
Since opsi version 3.0
Configuration file for the opsiconfd service in which settings such as ports, interfaces and logging are specified.
/etc/opsi/opsiconfd.pem
Since opsi version 3.0
Configuration file for the opsiconfd service in which the ssl certificate is stored.
/etc/opsi/opsipxeconfd.conf
Configuration file for the opsipxeconfd service, which is responsible for writing the startup files for the Linux bootimage. Directories, defaults and log levels can be configured here.
/etc/opsi/opsi-package-updater.conf
Configuration file for the opsi-package-updater. See also Tool: opsi-package-updater
Boot files
Boot files in /tftpboot/linux
-
pxelinux.0
Boot file that is loaded in the first step by the PXE boot. -
install
andminiroot.gz
Installation bootimage, which is transferred via tftp to the client during reinstallation.
Boot files in /tftpboot/linux/pxelinux.cfg
-
01-<mac adress>
or<IP-address-in-hex>
Files with the hardware address of the client and the prefix 01- can be found on the 'opsi-server' as client-specific boot files. Usually they are created via 'opsipxeconfd' as named pipes and should initiate a reinstallation of the client. -
default
The filedefault
is loaded if there are no client-specific files. If this file is loaded, the client then continues to a local boot. -
install
Information for the boot of the installation bootimage, which is written from 'opsipxeconfd' into the named pipe.
Files in /var/lib/opsi
/var/lib/opsi/depot
This directory is exported (read-only) as the Samba share 'opsi_depot'.
In old opsi installations this directory was /opt/pcbin/install
. If this directory still exists, a symlink references it to /var/lib/opsi/depot
.
/var/lib/opsi/ntfs-images
This is the default directory where the partition images are stored, that are used with the netboot product 'opsi-clonezilla'.
/var/lib/opsi/repository
This is the place where 'Produkt-Pakete' are saved, which are loaded by the calls of the opsi-package-updater
to the server.
This is also the place where 'Produkt-Pakete' are saved, which are installed by the calls of the opsi-package-manager
if it is called with the option -d
.
Files of the file backend
/etc/opsi/pckeys
The client-specific 'opsi-host-Schlüssels' and also the server key are stored here.
Example:
schleppi.uib.local:fdc2493ace4b372fd39dbba3fcd62182
laptop.uib.local:c397c280fc2d3db81d39b4a4329b5f65
pcbon13.uib.local:61149ef590469f765a1be6cfbacbf491
Overview of /var/lib/opsi
The files of the file backend of opsi 4 can by default be found in /var/lib/opsi/config/
. The following diagram gives an overview of the directory structure:
/var/lib/opsi-|
|-depot opsi_depot share
|-repository opsi package repository used by opsi-package-updater and opsi-package-manager
|-audit inventory files
!-config/-| config share
|-clientgroups.ini client groups
|-config.ini Host Parameters (Global Defaults)
|-clients/ <pcname.ini> files
|-products/ product control files
!-depots depot description files
+audit/
global.<Type> (generic hard-, and software information)
<FQDN>.<Type> (host specific hard-, and software information)
clientgroups.ini (contains the hostgroups)
+clients/
<FQDN>.ini (client configuration information)
config.ini (contains the host specific host parameters)
+depots/
<FQDN>.ini (Information of the depots)
+products/
<ID>_<ProdVer>-<PackVer>.<Type> (Information about the products)
+templates/
pcproto.ini (template for new clients)
<FQDN>.ini (template for specific new clients)
Editing these files is strongly discouraged! |
Configuration files in detail
The following chapters explain the structure of the different configuration files of the file backend.
./clientgroups.ini
This file contains information about the client groups.
[<GroupId>]
<HostId> = 1 #active
<HostId> = 0 #non-active
./config.ini
Here you will find the default values of the server configuration as shown in 'opsi-configed' in the 'host parameters' tab.
./clients/<FQDN>.ini
The client-specific configurations are stored in this file. The information is combined with the values from <depot-id>.ini
, whereby the settings from <FQDN>.ini
take precedence.
These files are structured as follows:
The 'info' section contains all information directly related to the client, for example the description:
[info]
description = <String>
created = <Date> #format: 'YYYY-MM-DD HH:MM:SS'
lastseen = <Date> #format: 'YYYY-MM-DD HH:MM:SS'
inventorynumber = <String>
notes = <String>
hardwareaddress = <MAC> #format: 'hh:hh:hh:hh:hh:hh'
ipaddress = <IP> #format: 'nnn.nnn.nnn.nnn'
onetimepassword = <String>
The following section stores the current status of the products on the client. If there are no entries, 'not_installed: none' is assumed.
[<Type>_product_states] #'LocalbootProduct', or 'NetbootProduct'
<ProductId> = <InstallationStatus>:<ActionRequest>
More detailed information can be found in the sections belonging to the respective products:
[<ProductId>-state]
producttype = <Type> #'LocalbootProduct', or 'NetbootProduct'
actionprogress = <String>
productversion = <ProdVer>
packageversion = <PackVer>
modificationtime = <Date> #format: 'YYYY-MM-DD HH:MM:SS'
lastaction = <ActionRequest>
actionresult = <ActionResult>
targetconfiguration = <InstallationStatus>
/var/lib/opsi/config/templates
This is the location of the file pcproto.ini
, which is the standard template for creating new client ini-files and has the same structure. If specific clients should be given different information, you can save a <FQDN>.ini
in this directory.
/var/lib/opsi/config/depots/
Here you will find the files of the 'opsi-depotserver', which are also saved with <depot-id>.ini
. Among other things, the connection to the depot is stored here.
[depotshare]
remoteurl = smb://<NetBiosName>/<Path>
localurl = file://<Path>
[depotserver]
notes = <String>
network = <IP>
description = <String>
hardwareaddress = <MAC>
ipaddress = <IP>
inventorynumber = <String>
[repository]
remoteurl = webdavs://<FQDN>:<Port>/<Path>
localurl = file://<Path>
maxbandwidth = <Integer> #in Bytes
Here you will also find information on which opsi products, in which version, and with which property defaults are installed on the depot.
Product control files in /var/lib/opsi/config/products/
The product control files contain the metadata of the products, e.g. name, properties and their default values, dependencies …
The control files correspond to the control files that are created when creating opsi products in the directory <product name>/OPSI/control
.
The control files consist of the following sections:
-
Section [Package]
Description of the package version and packages required for the installation of the package on an opsi-depotserver. -
Section [Product]
Description of the product. -
Section(s) [ProductProperty]
(optional)
Description of editable product properties. -
Section(s) [ProductDependency]
(optional)
Description of product dependencies.
Example:
[Package]
version: 1
depends:
[Product]
type: localboot
id: thunderbird
name: Mozilla Thunderbird
description: Mail client by Mozilla.org
advice:
version: 2.0.0.4
priority: 0
licenseRequired: False
productClasses: Mailclient
setupScript: thunderbird.ins
uninstallScript:
updateScript:
alwaysScript:
onceScript:
[ProductProperty]
name: enigmail
description: Install encryption plug-in for GnuPG
values: on, off
default: off
[ProductDependency]
action: setup
requiredProduct: mshotfix
requiredStatus: installed
requirementType: before
-
[Package]-'Version'
is for different package versions from the same product version. This helps to, for instance, distinguish packages with the same product version but with a different 'opsi-script' script. -
[Package]-'depends'
Specifies a package required for installation on an opsi-depotserver. Specific versions can be configured by specifying the version in parenthesis after the package name. One of the following operators must precede the version within the parenthesis:=
,<
,⇐
,>
,>=
. -
[Package]-'Incremental'
This is an obsolete, setting that has no effect, which has not been set in new packages since opsi 4.1. You can remove this entry. -
[Product]-'type'
Specifies the product type as localboot or netboot. -
[Product]-'Id'
Is a unique identifier for the product, independent of the version. -
[Product]-'name'
Is the full name of the product. -
[Product]-'Description'
Is an additional description of the product, which is for example shown in 'opsi-configed' under 'Description'. -
[Product]-'Advice'
is an additional description, for the handling of the product (usually), which is shown in 'opsi-configed' under 'Note'. -
[Product]-'version'
Is the version of the packaged software. -
[Product]-'Priority'
Influences the installation sequence, in combination with the product dependencies. -
[Product]-'productClasses'
Is not currently used (nor is it displayed). -
[ProductProperty]-'type'
Type of the property: (unicode/boolean) -
[ProductProperty]-'name':
Name of the property. -
[ProductProperty]- 'multivalue'
Can this property contain a list of values. (True/False) -
[ProductProperty]- 'editable'
Can this property be freely edited (or can only a value from a predefined list be selected). (True / False) -
[ProductProperty]-'description':
Description of the property (tooltip in 'opsi-configed'). -
[ProductProperty]-'values' :
List of possible, allowed values. If empty, the value is freely editable. -
[ProductProperty]-'default' :
Default value of the property. -
[ProductDependency]-'Action' :
For which action of the product you are currently creating, should the dependency apply (setup, uninstall …). -
[ProductDependency]-'Requiredproduct':
Product-id (identifier) of the product to which a dependency exists. -
[ProductDependency]-'Required action':
You can either request an action or (see below) a status. Actions could be: setup, uninstall, update … -
[ProductDependency]-'Required installation status':
The required status of the product, which the dependency entry refers to. Typically this is 'installed', which results in setting this dependency product to setup, if it is not installed on the client yet. -
[ProductDependency]-'Requirement type':
Installation order. If the product to which a dependency exists must be installed before the current product can be installed, then this is set to 'before'. If it has to be installed after the current product, this is set to 'after'. If the order is irrelevant, nothing has to be entered here.
opsi programs and libraries
Programs in /usr/bin
-
opsipxeconfd
Opsi daemon, which manages the files in the tftp area of the server that are necessary for the PXE boot of the clients. -
opsi-admin
Command line interface to the opsi python library. -
opsiconfd
Opsi daemon that provides the opsi methods as a webservice and much more. -
opsiconfd-guard
Opsi daemon that monitors whether the 'opsiconfd' is running and restarts it if necessary. -
opsi-configed
Command to start the opsi management interface. -
opsi-convert
Script for converting between different backends. -
opsi-makepackage
Script for packing the opsi-package (opsi-product) -
opsi-newprod
Script for creating a new product. -
opsi-package-manager
Script to install and uninstall opsi packages on an opsi server. -
opsi-setup
Program for various basic settings.
opsi log files
The opsi log files have the following format:
[Loglevel] Timestamp Message
The log levels are:
0 = nothing (absolute nothing)
1 = essential ("we always need to know")
2 = critical (unexpected errors that may cause a program abort)
3 = error (Errors that will not abort the running program)
4 = warning (you should have a look at this)
5 = notice (Important statements to the program flow)
6 = info (Additional Infos)
7 = debug (important debug messages)
8 = debug2 (a lot more debug information and data)
9 = confidential (passwords and other security relevant data)
/var/log/opsi/bootimage
Here you can find the log files of the bootimage from the clients. These files are created as <fqdn>.log
.
If the bootimage can not connect to the web service, the log file can be found on the client under /tmp/log
. In such a case, there are two ways to get the log file from the client:
-
You have a network connection to the client
Then you can useSCP
to get the file from/tmp/log
. For Windows you can use for exampleWinSCP
. -
You have no network connection to the client
Then a USB stick can help:-
Log in as root with password 'linux123'
-
Insert the USB stick and wait a few seconds
-
Check with
sfdisk -l
which device the stick is -
mount
-
copy
-
unmount
-
An example session:
#sfdisk -l
Disk /dev/sda: 30401 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 30401- 30402- 244197528+ 7 HPFS/NTFS
/dev/sda2 0 - 0 0 0 Empty
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
Disk /dev/sdb: 1017 cylinders, 33 heads, 61 sectors/track
Units = cylinders of 1030656 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sdb1 0+ 1016 1017- 1023580 b W95 FAT32
/dev/sdb2 0 - 0 0 0 Empty
/dev/sdb3 0 - 0 0 0 Empty
/dev/sdb4 0 - 0 0 0 Empty
# mount /dev/sdb1 /mnt
# cp /tmp/log /mnt
#umount /mnt
/var/log/opsi/clientconnect
This is the location of the log files of the 'opsi-client-agent' running on the clients.
This is C:\opsi.org\log\opsiclientd.log
on the client.
/var/log/opsi/instlog
This is the location of log files of the 'opsi-script' scripts executed on the clients.
The originals are on the client at C:\opsi.org\log\opsiscript.log
/var/log/opsi/opsiconfd
This is the location of log files of 'opsiconfd' itself as well as log files of the clients.
The files are created as <IP address>.log
and if configured in /etc/opsi/opsiconfd.conf
, symbolic links for these are created as <fqdn>.log
.
/var/log/opsi/opsipxeconfd.log
Log file the 'opsipxeconfd'
which manages the files in the tftp area of the server that are necessary for the PXE boot of the clients.