Zum Inhalt

Verwendung von Konfigurationsdateien für Console Commands#

Wenn Sie eine Konfigurationsdateien verwenden, können Sie dort für die Console Command die Optionen unterbringen. Speichern können Sie diese neu erstellten Dateien dann z.B. unter /i-doit/src/handler/config/.

Zugriff auf .ini Dateien

Wird die Konfigurationsdatei im i-doit Verzeichnis abgelegt muss die .htaccess angepasst werden. Es sollte dieser code hinzugefügt werden:

1
2
3
4
## Deny access to all ini files…
<Files "*.ini">
    Require all denied
</Files>

Damit Sie z.B. Passwörter nicht im Klartext in die Console tippen müssen. Der Console Command verwendet .ini Dateien. Der Controller Command verwendet .inc.php Dateien. Diese Methode ist allerdings veraltet und sollte nicht verwendet werden.

Verwendet wird die Konfigurationsdatei mit --config /pfad/zur/config.ini oder mit -c /pfad/zur/config.ini

Der Aufbau der .ini#

1
    [commandArguments]

Zur Zeit keine vorhanden.

1
2
3
4
    [commandOptions]
    user=admin
    password=pass
    tenantId=1

Hier können die Optionen des Console Command hinzugefügt werden. Diese Optionen müssen in der "Langform" geschrieben werden. Weitere Optionen finden Sie unter Optionen und Parameter der Console.

1
    [additional]

Hierunter werden spezielle Parameter eingetragen. Zur Zeit gibt es diese für den ldapServerId sowie für import-syslog.


Beispiel für den Command search-index#

Als erstes wird die .ini Datei erstellt. Wir verwenden hier zusätzlich update damit wird der Suchindex überschrieben. Zusätzlich verwenden wir quiet damit wird die Ausgabe gekürzt und zusätzlich sparen wir etwas speicher, welcher dann für die Indexierung verwendet werden kann.

1
2
3
4
5
6
7
8
    [commandArguments]
    [commandOptions]
    user=admin
    password=pass
    tenantId=1
    update
    quiet
    [additional]

Damit die Konfiguration auch verwendet wird führen wir den Console Command aus und geben den Pfad zur Konfigurationsdatei mit --config oder -can.

1
    sudo -u www-data php console.php search-index -c /var/www/html/i-doit/src/handler/config/examples/search-index.ini

example-search.ini


Beispiel für den Command notifications-send#

Für diesen Command gibt es keine eigenen Optionen daher verwenden wir nur die benötigten Optionen user, password und tenantId.

1
2
3
4
5
6
    [commandArguments]
    [commandOptions]
    user=admin
    password=pass
    tenantId=1
    [additional]

Damit die Konfiguration auch verwendet wird führen wir den Console Command aus und geben den Pfad zur Konfigurationsdatei mit --config oder -can.

1
    sudo -u www-data php console.php notifications-send -c /var/www/html/i-doit/src/handler/config/examples/notifications-send.ini

example-notifications-send.ini


Beispiel für den Command ldap-sync#

Dieser Command bietet folgende zusätzliche Optionen an: ldapServerId und dumpConfig. Die Option ldapServerId gibt den zu verwenden ldap Server an. Hier muss die ID des Eintrages angegeben werden Mit dumpConfig wird keine Synchronisation ausgeführt! Es wird nur die Konfiguration ausgegeben. Sollte demnach nur fürs Debugging verwendet werden.

 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
    [commandArguments]
    [commandOptions]
    user=admin
    password=pass
    tenantId=1
    [additional]
    import_rooms=false
    defaultCompany=''
    deletedUsersBehaviour=disable_login
    disabledUsersBehaviour=disable_login
    ; LDAP Attributes are individual. This default configuration is prepared for Active Directory:
    attributes[department]=department
    attributes[phone_company]=telephoneNumber
    attributes[phone_home]=homephone
    attributes[phone_mobile]=mobile
    attributes[fax]=facsimileTelephoneNumber
    attributes[description]=info
    attributes[personnel_number]=initials
    attributes[organization]=company
    attributes[location]=physicalDeliveryOfficeName
    attributes[salutation]=title
    attributes[street]=streetAddress
    attributes[city]=l
    attributes[zip_code]=postalCode
    attributes[function]=title
    attributes[service_designation]=title
    attributes[pager]=pager
    ;Attributerweiterung Personen
    attributes[custom_1]=objectSid
    attributes[custom_2]=sn
    attributes[custom_3]=homePhone
    attributes[custom_4]=mobile
    attributes[custom_5]=info
    attributes[custom_6]=manager
    attributes[custom_7]=company
    attributes[custom_8]=department
    autoReactivateUsers=false
    ignoreUsersWithAttributes[]="sn"
    ignoreUsersWithAttributes[]="givenName"
    ignoreFunction=empty
    syncEmptyAttributes=true

example-ldap.ini

Damit die Konfiguration auch verwendet wird führen wir den Console Command aus und geben den Pfad zur Konfigurationsdatei mit --config oder -can.

1
    sudo -u www-data php console.php ldap-sync -c /var/www/html/i-doit/src/handler/config/examples/ldap-sync.ini

Liste der Command Optionen und eine kurze Erklärung

Key Wert Beschreibung
import_rooms= true oder false Importiert das LDAP Attribut physicalDeliveryOfficeName und legt diesen falls nicht vorhanden als Raum, ohne Standort, an
defaultCompany='' 'Name der Organisation' Standard Organisation die eingetragen werden soll, leer lassen wenn nichts geändert werden soll
deletedUsersBehaviour= archive, delete oder disable_login Verhalten für gelöschte LDAP Benutzer. Sollen diese archiviert, gelöscht oder soll das Login deaktiviert werden
disabledUsersBehaviour= archive, delete oder disable_login Verhalten für deaktivierte LDAP Benutzer. Sollen diese archiviert, gelöscht oder soll das Login deaktiviert werden
rooms[]="" ["Raum 01"]="userPrincipalName" Hier wir dein Raum einem LDAP Benutzer statisch zugewiesen
attributes[]= attributes[i-doit Feld]=AD Attribut Mögliche i-doit Felder: academic_degree, function, service_designation, street, city, zip_code, phone_company, phone_home, phone_mobile, fax, pager, personnel_number, department, company, office, ldap_id, ldap_dn, description. Wenn hier benutzerdefinierte Informationen gespeichert werden sollen, kann die Attributerweiterung aktiviert werden. Dann stehen noch die Felder: custom_1 - custom_8 zur Verfügung
autoReactivateUsers= true oder false Alle Benutzer automatisch auf den Status normal gesetzt bevor diese gesynct werden. Diese Funktion ist nur für OpenLDAP und NDS notwendig, da diese im Active Directory immer aktiviert ist
ignoreUsersWithAttributes[]= ignoreUsersWithAttributes[]="sn" Deaktiviert die Synchronisation von Benutzern bei denen z.B. der "sn"(Last Name) im AD leer ist. Hier können mehrere AD Attribute verwendet werden, siehe Beispiel
ignoreFunction= empty*, !empty, isset*, !isset Die Prüffunktion für "ignoreUsersWithAttributes". Wird der Wert auf "empty" gesetzt, prüft die Funktion ob der angegebene "ignoreUsersWithAttributes" Wert leer ist. Trifft dies zu wird der User nicht Synchronisiert.

*empty - Prüft, ob eine Variable einen Wert enthält *isset - Prüft, ob eine Variable existiert und ob sie nicht NULL ist


Beispiel für den Command import-syslog#

Für diesen Command gibt es keine eigenen Optionen daher verwenden wir nur die benötigten Optionen user, password und tenantId.

 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
    [commandArguments]
    [commandOptions]
    user=admin
    password=admin
    tenantId=1
    [additional]
    ; splits syslog-line in several parts
    ; "/(^[a-zA-Z]{3}[ ]+[\d]+ [\d\:\d]+) " .  /* date / time */
    ; "(([.\-0-9a-zA-Z]+)*" .                  /* hostname */
    ; "(\b(?:\d{1,3}\.){3}\d{1,3}\b)*)+ " .    /* IP-Address */
    ; "([a-zA-Z0-9-_\/\[\]:]+) " .             /* Processname */
    ; "(.*)/";                                 /* Syslog-Message */
    regexSplitSyslogLine="/(^[a-zA-Z]{3}[ ]+[\d]+ [\d\:\d]+) (([.\-0-9a-zA-Z]+)*(\b(?:\d{1,3}\.){3}\d{1,3}\b)*)+ ([a-zA-Z0-9-_\/\[\]:]+) (.*)/";
    priorities[]=Emergency
    priorities[]=Alert
    priorities[]=Critical
    priorities[]=Error
    priorities[]=Warning
    priorities[]=Notice
    priorities[]=Info
    priorities[]=Debug
    logfiles[]="/var/log/system.log"
    alertlevels[] = 4
    alertlevels[] = 4
    alertlevels[] = 3
    alertlevels[] = 3
    alertlevels[] = 2
    alertlevels[] = 2
    alertlevels[] = 1
    alertlevels[] = 1