Vous êtes sur la page 1sur 187

opsi manual opsi version 4.0.

OpenSides sprl
Rue des Palais 44, bte 33
1030 Brussels
Tel.:+32 2 880 97 40
www.opensides.be
Revision: 13.02.2013 opsi@opensides.be
opsi manual opsi version 4.0.3 i

Table des matires

1 Droit dauteur 1

2 Introduction 1
2.1 Qui devrait lire ce manuel? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Vue densemble dopsi 2


3.1 Exprience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 fonctionnalits dopsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.3 Extensions opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4 configuration de opsi et outils 3


4.1 Aperu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2 Outil: opsi-setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.3 Outil: Management Interface: opsi-configed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3.1 Exigences et fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3.2 Connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3.3 Copier-Coller, Glisser-Dposer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3.4 Configuration du client / configuration du serveur / gestion des licences . . . . . . . . . . . . . 7
4.3.5 Slection dpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3.6 Slection des clients unique et configuration de groupe . . . . . . . . . . . . . . . . . . . . . . . 7
La liste des clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Slection des clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3.7 Slection des clients et groupes hirarchiques en utilisant treeview . . . . . . . . . . . . . . . . 10
Les concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Comment faire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3.8 Traitement des clients / Actions des clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
WakeOnLan (Rveillez les clients slectionns) . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Dclencher lvnement on_demand (Push Installation) . . . . . . . . . . . . . . . . . . . . . . 12
Envoi de messages (Show popup message) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Appel des outils externes de contrle distance pour des clients slectionns . . . . . . . . . . 12
Arrt / redmarrage des clients slectionns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Supprimer, crer, renommer et dplacer des clients . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3.9 Configuration des produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.10 Tableaux de proprit with list editor windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3.11 Produits Netboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3.12 Informations sur le matriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.13 Linventaire logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
opsi manual opsi version 4.0.3 ii

4.3.14 Journaux systme: Journaux du client et du serveur . . . . . . . . . . . . . . . . . . . . . . . . 16


4.3.15 Paramtres de lhte dans la configuration du client et du serveur . . . . . . . . . . . . . . . . . 16
4.3.16 Configuration du dpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.4 Outil: opsi-package-manager: (d-)installer les paquets opsi . . . . . . . . . . . . . . . . . . . . . . . . 18
4.5 Outil: opsi-product-updater . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.5.1 Dpts paramtrables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.5.2 Actions paramtrables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.6 Outil: opsi-admin / opsi config interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.6.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.6.2 Cas dutilisation typique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Dfinissez un produit pour la configuration (setup) pour tous les clients qui ont install ce produit 21
Liste de tous les clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Supprimer un client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Crer un client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Dfinir une requte daction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Joindre la description du client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Dfinir le mot de passe de pcpatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.7 Processus serveur: opsiconfd et opsipxeconfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.7.1 opsiconfd monitoring: opsiconfd info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5 Service web / mthodes de lAPI 22


5.1 Service web / Les mthodes API depuis opsi 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.1.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.1.2 Les objets de stockage de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
host (serveur et clients) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
group (ladministration des groupes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
objectToGroup (ladministration des groupes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
product (les mta-donnes du produit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
productProperty (Dfinition des proprits du produit) . . . . . . . . . . . . . . . . . . . . . . . 27
productPropertyState (Paramtres de proprit des produits spcifiques au dpt ou aux clients) 28
productDependency (dpendances du produit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
productOnClient (informations client spcifique un produit, par exemple ltat de linstallation) 29
productOnDepot (informations dpt spcifiques un produit) . . . . . . . . . . . . . . . . . . 29
config (ladministration des valeurs par dfaut des paramtres hte) . . . . . . . . . . . . . . . 30
configState (ladministration des paramtres de lhte client) . . . . . . . . . . . . . . . . . . . 30
auditHardwareOnHost (informations sur le matriel spcifique au client) . . . . . . . . . . . . . 30
auditHardware (informations sur le matriel client indpendant) . . . . . . . . . . . . . . . . . 32
auditSoftwareOnClient (informations sur les logiciels client spcifiques) . . . . . . . . . . . . . . 33
auditSoftware (informations sur les logiciels client indpendants) . . . . . . . . . . . . . . . . . 34
opsi manual opsi version 4.0.3 iii

auditSoftwareToLicensePool (gestion des licences) . . . . . . . . . . . . . . . . . . . . . . . . . 34


softwareLicenseToLicensePool (gestion des licences) . . . . . . . . . . . . . . . . . . . . . . . . 35
softwareLicense (gestion des licences) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
licenseContract (gestion des licences) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
licenseOnClient (gestion des licences) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
licensePool (gestion des licences) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.1.3 Les objets spciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Les mthodes opsi3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3 Les extensions backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Activation des modules non libres 43

7 opsi-client-agent 44
7.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.2 Rpertoires de the opsi-client-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.3 Le service: opsiclientd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.3.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.3.2 opsiclientd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.3.3 opsiclientd notifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.3.4 opsi-login-blocker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.3.5 Droulement du processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.3.6 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Configuration de diffrents vnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Configuration via le fichier de configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Configuration via le web service (Host Parameter) . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.3.7 Journalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.3.8 opsiclientd page dinformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.3.9 opsi-client-agent commande distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Lenvoi de messages pop-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Pousser les installations: dmarrer lvnement la demande . . . . . . . . . . . . . . . . . . . 62
Tches de maintenance supplmentaires (arrt, redmarrage,. . . ..) . . . . . . . . . . . . . . . . 62
7.4 Blocage de la connexion de lutilisateur avec opsi-Loginblocker . . . . . . . . . . . . . . . . . . . . . . 63
7.4.1 opsi loginblocker de Windows 2000 XP (NT 5) . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.4.2 opsi loginblocker pour NT 6 (Win 7 & Co) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.5 Installation ultrieure de opsi-client-agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.5.1 Installation de opsi-client-agent partir dune image matre ou comme exe . . . . . . . . . . . 63
opsi manual opsi version 4.0.3 iv

8 Produits Localboot: distribution de logiciels automatique avec opsi 63


8.1 produits standards dopsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.1.1 opsi-client-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.1.2 opsi-winst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.1.3 javavm: Java Runtime Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.1.4 opsi-adminutils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.1.5 jedit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.1.6 Swaudit et hwaudit: Produits pour linventaire matriel et logiciel . . . . . . . . . . . . . . . . 64
8.1.7 opsi-template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.1.8 xpconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2 La manipulation de la squence dinstallation en fonction des priorits du produit . . . . . . . . . . . . 64
8.2.1 Algorithm1: dpendance lgard de la prioritaire du produit (par dfaut) . . . . . . . . . . . . 66
8.2.2 Algorithm2: dpendance lgard de la dpendance du produit . . . . . . . . . . . . . . . . . . 66
8.2.3 Dfinir les priorits et les dpendances du produit . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.3 Lintgration des nouveaux paquets logiciels dans le dploiement de logiciels opsi. . . . . . . . . . . . . 66

9 Produits Netboot 67
9.1 Paramtres de limage de dmarrage Linux pour opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2 Installation automatise de lOS sans assistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2.1 Aperu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2.2 Conditions pralables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.2.3 Dmarrage du PC client via le rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.2.4 Chargement de pxelinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.2.5 Dmarrer partir du CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
9.2.6 Limage de dmarrage linux se prpare pour la rinstallation . . . . . . . . . . . . . . . . . . . 70
9.2.7 Installation du systme dexploitation et dopsi-client-agent . . . . . . . . . . . . . . . . . . . . 72
9.2.8 Comment fonctionne le programme Patcha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.2.9 Structure des produits dinstallation sans assistance . . . . . . . . . . . . . . . . . . . . . . . . 73
9.2.10 Intgration simplifie des pilotes avec liens symboliques . . . . . . . . . . . . . . . . . . . . . . 73
9.3 Quelques conseils sur les produits netboot NT6 (Vista / Win7 / 2008) . . . . . . . . . . . . . . . . . . 73
9.4 image Ntfs (crire et restaurer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.5 memtest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.6 hwinvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.7 wipedisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

10 Inventaire 77
10.1 Inventaire Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
10.2 Inventaire des logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
opsi manual opsi version 4.0.3 v

11 Serveur opsi 80
11.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
11.2 Installation et mise en service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
11.3 Configuration Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
11.4 Le dmon opsiconfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
11.5 Comptes dutilisateurs et groupes administratifs ncessaires . . . . . . . . . . . . . . . . . . . . . . . . 80
11.6 Rpertoire de partage ncessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
11.7 la gestion des problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

12 La scurit 82
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
12.2 Restez lcoute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
12.3 La scurit gnrale du serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
12.4 Dpt en lecture seule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
12.5 Lauthentification du client sur le serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
12.6 Lauthentification du serveur au client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
12.6.1 Variante 1: verify_server_cert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
12.6.2 Variante 2: verify_server_cert_by_ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
12.7 Lauthentification au niveau du serveur de commande du client . . . . . . . . . . . . . . . . . . . . . . 85
12.8 Configuration du rseau admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
12.9 Lutilisateur pcpatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

13 Sauvegarde dopsi 86
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
13.2 Conditions pralables la sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
13.3 Mise en route rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
13.4 lments de base dopsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13.4.1 La configuration dopsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13.4.2 Les backends Opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13.4.3 dpt de partage opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13.4.4 opsi work bench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13.4.5 dpt opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
13.5 Le logiciel opsi-backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
13.5.1 Crer une sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
13.5.2 Archivez vos fichiers de sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
13.5.3 Vrifier une sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
13.5.4 Restauration partir dun fichier de sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . 90
opsi manual opsi version 4.0.3 vi

14 opsi license management 91


14.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
14.1.1 Main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
14.1.2 Invoking the license management from the opsi-configed . . . . . . . . . . . . . . . . . . . . . . 92
14.2 license pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
14.2.1 What is a license pool? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
14.2.2 Administration of license pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
14.2.3 license pools and opsi-products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
14.2.4 license pools and Windows software IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
14.3 Setting up licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
14.3.1 Some aspects and terms of the license concept . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
14.3.2 Registering the license contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
14.3.3 Configuring the license model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
14.3.4 Saving the data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
14.4 Editing licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
14.4.1 Example downgrade option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
14.5 Assignment and release of licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
14.5.1 opsi service calls for requesting and releasing a license . . . . . . . . . . . . . . . . . . . . . . . 96
14.5.2 opsi-winst script calls for requesting and releasing of licenses . . . . . . . . . . . . . . . . . . . 96
14.5.3 License contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
14.5.4 Manual administration of license use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
14.5.5 Preservation and deletion of license usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
14.6 Reconciliation with the software inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
14.7 Licenses usage overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
14.7.1 In case of downgrade option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
14.8 Service methods for license management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
14.9 Example products and templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

15 opsi WAN/VPN extension 100


15.1 Preconditions for using the WAN/VPN extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
15.2 General overview of the WAN/VPN extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
15.3 Caching of opsi-products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
15.3.1 Communication Protocol for accessing an opsi-depot . . . . . . . . . . . . . . . . . . . . . . . . 102
15.3.2 Using the .files file for Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
15.3.3 Internal processing of opsi-product caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
15.3.4 Configuring the opsi-product caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
15.4 Caching of configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
15.4.1 The local client-cache-backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
15.4.2 Internal processing of configuration synchronizing . . . . . . . . . . . . . . . . . . . . . . . . . . 104
15.4.3 Configuration of config caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
15.5 Recommended configuration when using the WAN/VPN extension module . . . . . . . . . . . . . . . . 105
15.5.1 Setting the protocol for caching of opsi-products . . . . . . . . . . . . . . . . . . . . . . . . . . 106
15.5.2 Verifying the server certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
opsi manual opsi version 4.0.3 vii

16 opsi-server with multiple depots 107


16.1 Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
16.2 Creating a (slave) depot-servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
16.3 package management with multiple depots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

17 Dynamic Depot Assignment 109


17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
17.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
17.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
17.4 Editing the depot properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
17.5 Synchronizing the depots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
17.6 Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
17.7 Template of the assignment script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
17.8 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

18 opsi Software On Demand (Kiosk-Mode) 115


18.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
18.2 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
18.3 configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
18.3.1 Managing product-groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
18.3.2 configure the module Software-On-Demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Configuration for the whole system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Configuration for a single client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
18.3.3 opsiclientd event-configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
18.3.4 Customize to corporate identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
18.4 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
18.5 Specialities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

19 opsi extension Roaming Profile Support 119


19.1 Preconditions for the extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
19.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
19.3 Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
19.4 New and extended opsi-winst functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
19.5 Examples of userLoginScripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
19.6 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
19.7 Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
opsi manual opsi version 4.0.3 viii

20 Connecteur-opsi-Nagios 127
20.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
20.2 Conditions pralables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
20.2.1 Conditions pralables au niveau du serveur et des clients OPSI . . . . . . . . . . . . . . . . . . 127
20.2.2 Conditions pralables au niveau du serveur Nagios . . . . . . . . . . . . . . . . . . . . . . . . . 128
20.3 Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
20.3.1 extension opsi web service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
20.3.2 extension opsi-client-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
20.4 opsi-checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
20.4.1 Quelques renseignements gnraux sur lendroit o excuter les contrles . . . . . . . . . . . . . 129
20.4.2 opsi-check-plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Contrle: opsi web service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Contrle: opsi web service pnp4nagios template . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Contrle: opsi-check-diskusage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Contrle: opsi-client-status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Contrle: opsi-check-ProductStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Contrle: opsi-check-depotsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Contrle: contrle nagios client plugin via opsiclientd . . . . . . . . . . . . . . . . . . . . . . . . 137
20.5 configuration de la surveillance dopsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
20.5.1 utilisateur de la surveillance dopsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
20.5.2 Rpertoire de configuration du connecteur opsi-Nagios . . . . . . . . . . . . . . . . . . . . . . . 139
20.5.3 modle Nagios: opsitemplates.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
20.5.4 opsi hostgroup: opsihostgroups.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
20.5.5 opsi server: <nom complet du serveur>.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
20.5.6 opsi Clients: clients/<nom complet du client>.cfg . . . . . . . . . . . . . . . . . . . . . . . 142
20.5.7 configuration commande opsi: opsicommands.cfg . . . . . . . . . . . . . . . . . . . . . . . . . 143
20.5.8 Contacts: opsicontacts.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
20.5.9 Services: opsiservices.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

21 Installation dopsi lors de larrt 146


21.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
21.2 Conditions pralables linstallation lors de larrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
21.3 Activation de linstallation lors de larrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
21.4 Concept technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
21.4.1 Vue densemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
21.4.2 Installation par script darrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
21.4.3 Entres de Registre pour excuter le script darrt . . . . . . . . . . . . . . . . . . . . . . . . . 149
21.4.4 Configuration de opsiclientd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
21.4.5 Configuration spciale dInstallation lors de lArrt . . . . . . . . . . . . . . . . . . . . . . . . . 151
21.4.6 Fichier de log local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
opsi manual opsi version 4.0.3 ix

22 La fonctionnalit opsi SilentInstall 151


22.1 Conditions pralables linstallation en mode silencieux . . . . . . . . . . . . . . . . . . . . . . . . . . 152
22.2 Vue densemble de la fonctionnalit SilentInstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
22.3 Excution de linstallation silencieuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
22.4 Configuration de la fonctionnalit opsi: SilentInstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

23 opsi data storage (backends) 154


23.1 file backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
23.2 ldap-Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
23.3 mysql backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
23.3.1 mysql backend for inventory data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
23.3.2 mysql backend for configuration data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
23.3.3 Initializing the MySQL-Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
23.3.4 Configure the mysql database for access from outside the server . . . . . . . . . . . . . . . . . . 160
23.4 HostControl backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
23.5 Conversion between different backends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
23.6 Boot files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
23.7 Securing the shares with encrypted passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

24 Important files on the depot servers 161


24.1 Configuration files in /etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
24.1.1 /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
24.1.2 /etc/group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
24.1.3 /etc/opsi/backends/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
24.1.4 /etc/opsi/backendManager/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
24.1.5 /etc/opsi/hwaudit/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
24.1.6 /etc/opsi/modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
24.1.7 /etc/opsi/opsiconfd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.1.8 /etc/opsi/opsiconfd.pem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.1.9 /etc/opsi/opsipxeconfd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.1.10 /etc/opsi/opsi-product-updater.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.1.11 /etc/opsi/version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.1.12 /etc/init.d/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.2 Boot files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.2.1 Boot files in /tftpboot/linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.2.2 Boot files in /tftpboot/linux/pxelinux.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24.3 Files in /var/lib/opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
24.3.1 /var/lib/opsi/repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
24.3.2 /var/lib/opsi/depot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
opsi manual opsi version 4.0.3 x

24.3.3 /var/lib/opsi/ntfs-images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164


24.3.4 Other directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
24.4 Files of the file backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
24.4.1 /etc/opsi/pckeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
24.4.2 /etc/opsi/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
24.4.3 Overview /var/lib/opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
24.4.4 Configuration files in detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
./clientgroups.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
./config.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
./clients/<FQDN>.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
/var/lib/opsi/config/templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
/var/lib/opsi/config/depots/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Product control files in /var/lib/opsi/config/products/ . . . . . . . . . . . . . . . . . . . . . . . 166
24.4.5 Inventory data /var/lib/opsi/audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
24.5 Files of the LDAP backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
24.6 opsi programs and libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
24.6.1 Python library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
24.6.2 Programs in /usr/bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
24.7 opsi log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
24.7.1 /var/log/opsi/bootimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
24.7.2 /var/log/opsi/clientconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
24.7.3 /var/log/opsi/instlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
24.7.4 /var/log/opsi/opsiconfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
24.7.5 /var/log/opsi/opsipxeconfd.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
24.7.6 /var/log/opsi/package.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
24.7.7 /var/log/opsi/opsi-product-updater.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
24.7.8 tftp log in /var/log/syslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
24.7.9 c:\tmp\opsiloginblocker.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
24.7.10 c:\tmp\opsiclientd.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
24.7.11 c:\tmp\instlog.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

25 Registry Entries 171


25.1 Registry entries for the opsiclientd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
25.1.1 opsi.org/general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
25.1.2 opsi.org/opsi-client-agent and opsi.org/preloginloader . . . . . . . . . . . . . . . . . . . . . . . 171
25.1.3 opsi.org/shareinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
25.2 Registry entries of the opsi-winst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
25.2.1 opsi.org/winst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
25.2.2 Controlling the logging via syslog protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
opsi manual opsi version 4.0.3 xi

26 Upgrade of a serveur opsi 173

27 opsi localization 173


27.1 Using existing localizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
27.2 Creating or changing localizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.2.1 PO files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.2.2 PO files: opsi-winst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.2.3 PO files: opsiclientd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.2.4 PO files: python-opsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.2.5 PO files: opsi-utils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.2.6 PO files: opsi-bootimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.3 configed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
27.4 opsiclientd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
27.5 Localization contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
opsi manual opsi version 4.0.3 1 / 175

1 Droit dauteur

Le droit dauteur de ce manuel est dtenu par uib gmbh Mainz, Allemagne.
Le droit dauteur de la traduction francaise est dtenu par OpenSides Bruxelles, Belgique.
Ce manuel est publi sous licence creative commons
Attribution - ShareAlike (by-sa).

Vous trouverez ici la description allemande:


http://creativecommons.org/licenses/by-sa/3.0/de/
La licence allemande:
http://creativecommons.org/licenses/by-sa/3.0/de/legalcode
La description anglaise:
http://creativecommons.org/licenses/by-sa/3.0/
La licence anglaise:
http://creativecommons.org/licenses/by-sa/3.0/legalcode
La description franaise:
http://creativecommons.org/licenses/by-sa/3.0/deed.fr
La licence franaise:
http://creativecommons.org/licenses/by-sa/3.0/fr/legalcode
Le logiciel OPSI est dans la plupart de ces pices open source.
Seulement les nouvelles pices qui sont encore sous le cofinancement ne sont pas open source.
voir:
http://www.opsi.org/fr/projets-de-co-financement
Tout le reste du code source est publi sous licence GPLv3:

La licence GPLv3:
http://www.gnu.org/licenses/gpl.html
Le nom opsi est une marque dpose de uib gmbh.
Le logo de opsi est dtenue par uib gmbh et peut tre utilis uniquement avec lautorisation explicite.

2 Introduction

2.1 Qui devrait lire ce manuel?

Ce manuel est crit pour tous ceux qui veulent acqurir une meilleure comprhension des mcanismes et des outils du
systme de gestion client opsi ("open pc server integration").
Il prsente un guide pratique complte pour lutilisation de opsi en soulignant la comprhension des connaissances
techniques. Le dcideur qui dcide dutiliser opsi ainsi que ladministrateur systme qui travaille avec lui obtiendront
une base solide pour leurs tches.
opsi manual opsi version 4.0.3 2 / 175

2.2 Notations

Les chevrons < > marquent des noms abstraits. Dans un contexte concret tous qui est marqu <nom abstrait>
doit tre remplac par un vrai nom. Exemple: Le partage de fichiers, o opsi place les paquets logiciels, peut tre
not abstraitement comme <opsi-depot-share>. Si le partage de fichiers rel est /opt/pcbin/install, alors vous
devez remplacer le nom abstrait par exactement cette chane de caractres. Lemplacement du paquet <opsi-depot-
share>/ooffice devient /opt/pcbin/install/ooffice.
Exemple dextraits de code de programme ou de fichier de configuration utilisant une police Courier, avec une couleur
de fond:
depoturl=smb://smbhost/sharename/path

3 Vue densemble dopsi

Les outils de distribution de logiciels automatiss et dinstallation du systme dexploitation sont des outils importants
et ncessaires pour la normalisation, la maintenabilit et la rduction des cots dans des grands rseaux de PC.
Normalement, lapplication de ces outils saccompagne dimportantes redevances, alors que OPSI comme un logiciel
open source permet lconomie explicite. Les dpenses seront que pour les services rendus, comme conseil, formation
et maintenance, et peut-tre faible taux de co-financement, si vous souhaitez utiliser certains de ces modules non
libres.
Bien que le logiciel lui-mme et les manuels sont gratuits, le processus dintroduction doutil de distribution de
logiciels est encore un investissement. Pour obtenir le bnfice, sans retours en arrire, et sans une longue periode
dapprentissage, lducation des administrateurs systme par un partenaire professionnel est recommand. uib offre
tous ces services autour dopsi.
Le systme opsi dvelopp par uib dpend de serveurs linux. Ils sont utiliss pour linstallation et la maintenance
distance du systme dexploitation client et des paquets logiciel client ("PC-Server-Integration"). Il est bas autant
que possible sur des outils disponibles gratuitement (GNUtools, SAMBA etc.). Le systme complet tous ensemble
est nomm opsi (Open PC-Server-Integration) et avec sa configurabilit est une solution trs intressante pour les
difficults dadministration dun parc informatique important.

3.1 Exprience

opsi est driv dun systme, qui est en usage depuis le milieu des annes 90 avec plus de 2000 clients-PC dans des
endroits diffrents dune autorit gouvernementale. Depuis ce temps il a t continuellement adapte lvolution du
systme dexploitation Microsoft. En tant que produit, opsi est dsormais accessible pour un large ventail dutilisateurs
intresss.
Vous pouvez trouver une vue densemble gographique des installations OPSI sur: http://www.opsi.org/fr/opsi-map .

3.2 fonctionnalits dopsi

Les principaux lments de opsi sont :


Distribution automatique des logiciels
Installation automatique du systme dexploitation
Inventaire hardware et software avec historique
Contrle confortable via linterface de gestion opsi
Prise en charge de multiples serveurs de dpt
opsi manual opsi version 4.0.3 3 / 175

3.3 Extensions opsi

Gestion des licences


MySQL-Backend
Utilisation de groupes de clients hirarchique (Treeview)
Slection dynamiques du serveur de dpt
Logiciels sur demande
Prise en charge de clients derrire des connexions lentes (WAN Extension)

4 configuration de opsi et outils

4.1 Aperu

La configuration dopsi ncessite une certaine gestion des donnes. Tous les composants non-serveur utilisent un service
Web pour changer des donnes avec le serveur opsi. Ils changent des donnes via opsiconfd, et opsiconfd transmet
les donnes au gestionnaire de backend qui passe les donnes dans le backend slectionn.
opsi prend en charge diffrents backends: Backends:
bas Fichier
bas LDAP
bas MySQL
En utilisant le backend de fichier les donnes sont stockes dans des fichiers texte comme les fichiers ini.
Schema: opsi avec le backend de fichier

Figure 1 Schema: opsi avec le backend de fichier

En utilisant le backend mysql ou ldap les donnes sont stockes dans des objets de donnes spcifiques.

Schema: opsi avec le backend SQL / LDAP

Figure 2 Schema: opsi avec le backend SQL / LDAP

Vous trouverez plus de dtails dans

Schema: couches backend et contrle daccs

Figure 3 Schema: couches backend et contrle daccs

Le rpertoire de opsi 3 /etc/opsi/backendManager.d nest plus utilis dans opsi 4.


Les fichiers de configuration dans /etc/opsi/backends dfinissent les backends.
Quelle base est utilise pour lesquels des donnes, est configur dans le fichier /etc/opsi/backendManager/dispatch.
conf.
Le fichier /etc/opsi/backendManager/acl.conf dfinit qui a accs quelles mthodes.
Dans le rpertoire /etc/opsi/backendManager/extend.d il pourrait y avoir des fichiers dfinissant les mthodes
tendu de opsi. Ainsi, vous trouverez ici par exemple les fichiers qui dfinissent les anciens mthodes legacy de opsi 3
en les mappant les nouvelles mthodes de opsi 4 (/etc/opsi/backendManager/extend.d/20_legacy.conf).
Vous trouverez une rfrence plus dtaille de ces fichiers de configuration dans
opsi manual opsi version 4.0.3 4 / 175

4.2 Outil: opsi-setup


Ce programme est quelque chose comme le couteau suisse de la configuration de opsi. Il est utilis par les scripts
dinstallation de opsi et peut tre galement appel sparment pour le but de maintanace ou de rparation.
Les tches de opsi-setup sont:
enregistrer un serveur opsi comme serveur de dpt
corriger des droits daccs aux fichiers
initialiser les backends de stockage de donnes
mettre jour les backend (de 3.4 4.0)
configuration du backend MySQL
modifier les configurations par dfaut
nettoyer le(s) backend(s) courant(s)
configurer lessentiel du partage Samba
configurer les entres essentielles du dhcp
La commande opsi-setup --help montre les options du programme:
opsi-setup --help

Usage: opsi-setup [options]

Options:
-h, --help show this help
-l log-level 0..9

--log-file <path> path to log file


--ip-address <ip> force to this ip address (do not lookup by name)
--register-depot register depot at config server
--set-rights [path] set default rights on opsi files (in [path] only)
--init-current-config init current backend configuration
--update-mysql update mysql backend
--update-ldap update ldap backend
--update-file update file backend
--configure-mysql configure mysql backend
--edit-config-defaults edit global config defaults
--cleanup-backend cleanup backend
--auto-configure-samba patch smb.conf
--auto-configure-dhcpd patch dhcpd.conf

Les fonctions et les options en dtail:


--ip-address <ip>
Dfinit ladresse IP pour serveur opsi et ne rsolve pas par le nom.
--register-depot
Cette option est utilise pour enregistrer un serveur opsi comme serveur de dpt dun autre serveur opsi (opsi-
configserver). Pour plus de dtails voir

--set-rights [path]
Dfinit les droits daccs aux fichiers dans tous les rpertoires de opsi:
/tftpboot/linux
/home/opsiproducts
/var/log/opsi
/var/lib/opsi
/opt/pcbin/install
/etc/opsi
Vous pouvez donner un nom de rpertoire comme argument pour dfinir uniquement les droits daccs en dessous
de ce rpertoire.
par exemple
opsi-setup --set-rights /opt/pcbin/install/winxppro/drivers
opsi manual opsi version 4.0.3 5 / 175

--init-current-config
initialise le backend configur. Doit toujours tre appele aprs modification du fichier
/etc/opsi/backendManager/dispatch.conf
Les trois commandes:
--update-mysql
--update-ldap
--update-file
sont utilises pour mettre niveau les backends dune version dopsi la suivante.
Pour plus de dtails voir le releasenotes-upgrade-manual.
--configure-mysql
fait la premire configuration de la base de donnes.

--edit-config-defaults
Pour modifier les valeurs par dfaut de certaines donnes de configuration, comme dans la configuration du serveur
de opsi-configed.
--edit-config-defaults
Pour modifier les valeurs par dfaut de certaines donnes de configuration, comme dans la configuration du serveur
de opsi-configed.

Dialog: opsi-setup --edit-config-defaults

Figure 4 Dialog: opsi-setup --edit-config-defaults

par exemple:
clientconfig.depot.id
Le nom du serveur de dpt par dfaut.
license-management.use
Dfinit si les produits netboot devraient obtenir les cls de licence depuis la gestion des licences ou partir des
proprits du produit.
product_sort_algorithm
Dfinit lalgorithme qui est utilis pour calculer la squence dinstallation des produits.
--cleanup-backend
Vrifie le backend actuel(s) pour les entres qui ne sont plus ncessaires et lintgrit rfrentielle
--auto-configure-samba
Cre les partage opsi dans le fichier de configuration /etc/samba/smb.conf
--auto-configure-dhcpd
Cre les entres opsi ncessaires dans `/etc/dhcp3/dhcpd.conf.
Ne pas utiliser si vous ne prvoyez pas dutiliser le dhcpd sur le serveur opsi.
Plus de dtails dans le manuel opsi-getting-started

4.3 Outil: Management Interface: opsi-configed

4.3.1 Exigences et fonctionnement

opsi-configed ncessite Java 1.6 et un opsiconfd en excution sur le serveur.


Si vous excutez opsi-configed sur une machine base sur Linux, alors assurez-vous que votre Java est la version Sun.
La version OpenJDK souvent installs ou dautres versions peuvent conduire des erreurs subtiles. Donc, vous devez
installer Sun Java et le configurer comme dfaut Java:
update-alternatives config java

La commande
opsi manual opsi version 4.0.3 6 / 175

java -version

devrait aboutir la sortie suivante:


java version "1.6....
Java(TM) SE Runtime Environment ...

La plupart du temps opsi-configed sera appel comme applet dans le navigateur via: https://<servername>:4447/
configed
Lapplication opsi-configed est galement une partie du produit opsi opsi-adminutils et peut alors tre dmarr via le
menu Dmarrer de Windows. Sur le serveur opsi-configed est install dans le cadre de linstallation du serveur opsi. Il
peut tre dmarr en utilisant lentre de menu ou avec la commande /usr/bin/opsi-configed.
Si vous tes dans le bon rpertoire, il peut galement tre lanc avec java -jar configed.jar.
Loption daide java -jar configed.jar --help montre les options disponibles en ligne de commande.
P:\install\opsi-adminutils>java -jar configed.jar --help
starting configed
default charset is windows-1252
server charset is configured as UTF-8

configed [OPTIONS]...

Options:
-l, --locale Set locale (format: <language>_<country>)
-h, --host Configuration server to connect to
-u, --user Username for authentication
-p, --password Password for authentication
-d, --logdirectory Directory for the log files
--help Show this text

4.3.2 Connexion

opsi-configed: login mask

Figure 5 opsi-configed: masque de connexion

Au moment de la connexion opsi-configed tente de se connecter au serveur opsi via https. La connexion se fait avec
les paramtres donns opsi server[:Port] (default port 4447 opsiconfd) et lutilisateur/mot de passe du compte
opsi-configserver. Pour la connexion lutilisateur fourni doit tre un membre du groupe unix opsiadmin.

4.3.3 Copier-Coller, Glisser-Dposer

Vous pouvez copier les entres slectionnes de presque chaque section de opsi-configed dans le presse papier en
utilisant les combinaisons de touche standard (Strg-Insert, Strg-C ). Ceci peut tre utilis pour transfrer des donnes
intressantes dautres programmes. Pour la plupart des tables vous pouvez galement utiliser le Glisser-Dposer
pour copier les donnes vers des programmes comme Excel.

Note
Depuis la version Java 1.6.24 Oracle a dsactiv le Copier-Coller vers et partir du presse-papiers du systme partir
dun applet Java ne pas signe, pour des raisons de scurit. Lapplication opsi configed est livr avec la signature depuis
la version 4.0.1.11, et a maintenant accs au systme complet.
opsi manual opsi version 4.0.3 7 / 175

4.3.4 Configuration du client / configuration du serveur / gestion des licences

Pour basculer entre les diffrentes vues de opsi-configed, utiliser les boutons dans le coin suprieur droit.

opsi-configed: Buttons for (from left to right): Client configuration, Server configuration, License management

Figure 6 opsi-configed: Boutons pour (de gauche droite): Configuration du client, Configuration du serveur,
Gestion des licences

4.3.5 Slection dpt

opsi-configed: depot selection

Figure 7 opsi-configed: slection dpt

4.3.6 Slection des clients unique et configuration de groupe

Aprs une connexion russie la fentre principale souvre et affiche longlet Client selection. Cet onglet affiche la liste
des clients connus des opsi-depot slectionns ou les clients qui sont slectionnes en utilisant le contrle treeview sur
le ct gauche de opsi-configed.

opsi-configed: client selection mask

Figure 8 opsi-configed: masque de slection des clients

Vous pouvez slectionner une ligne de la liste non seulement par dfilement manuel et en choisissant mais aussi par
une chane de recherche. Cela exige que vous entrez une chane dans le champ de recherche au sommet de la liste Dans
la liste une ligne peut galement tre slectionne par la recherche dune valeur de chane.
Le fonctionnement de la recherche est dtermine par les lments slectionns dans deux listes droulantes:
Via la slection des champs vous dcidez si
tous les champs (plus prcisment, tous les champs qui se produisent sous forme de colonnes) sont recherchs (par
dfaut), ou
un seul champ (et celui qui) est recherch.
Concernant la mthode de recherche vous devez choisir si est dfinie
comme occurrence de la chane de recherche nimporte o dans une valeur de champ (recherche de chane partielle,
par dfaut),
comme occurrence de la chane de recherche au dbut dune valeur dun champ
comme une correspondance de motif dans une recherche dexpression rgulire o la chane de recherche sert de
modle (pour les experts, bas sur la recherche de motifs java).
La touche entre conduit la recherche suivante. Plus de fonctions de slection bases sur la recherche de chane sont
indiqus dans le menu contextuel du champ de recherche.

opsi-configed: Client search

Figure 9 opsi-configed: Fonction de recherche dans la liste de slection des clients


opsi manual opsi version 4.0.3 8 / 175

La liste des clients

La liste des clients a par dfaut les colonnes client name, description, on, IP address et last seen.
client name est le nom dhte complet qualifi qui est le nom du client, y compris le nom de domaine
description est une description libre slectionnable que vous pouvez diter dans la partie suprieure droite de la
fentre
On montre aprs avoir cliqu sur le bouton Check wich clients are connected (Vrifiez quels clients sont connects)
le rsultat de cette requte.
opsi-configed: Button: Check which clients are connected

Figure 10 opsi-configed: Bouton Vrifiez quels clients sont connects

IP address indique le numro IP laquelle le serveur OPSI rsout le nom du client.


last seen indique la date et lheure du dernier client qui sest connect au service web opsiconfd

Certaines colonnes sont dsactives par dfaut:


session infos (les donnes sont extraites du systme dexploitation sexcutant sur le client spcifique)
Inventory No (affiche certaines donnes en option)
created (date et heure de cration du client)
opsi mac address (adresse matrielle du client utilis par opsi)
Vous pouvez activer ces colonnes laide du menu contextuel. La configuration des colonnes activs peut tre modifi
en utilisant lentre configed.host_displayfields dans la configuration du serveur.

opsi-configed: change the default for visible columns in the clients list

Figure 11 opsi-configed: changer la valeur par dfaut pour les colonnes visibles dans la liste des clients

Lajout de la colonne session infos active le bouton "request session infos from all clients" dans le panneau des boutons.

opsi-configed: Buton SessionInfo?

Figure 12 opsi-configed: Bouton Sessioninfo?

Lorsque ce bouton est cliqu opsiconfd tente de se connecter tous les clients et de rcuprer les donnes des sessions
utilisateur actives. A partir du rsultat, les noms de compte sont indiqus dans la colonne session infos. Au lieu
dutiliser le bouton vous pouvez dmarrer la requte uniquement pour les clients slectionns via le menu contextuel
ou lentre du menu principal de OpsiClient. Comme a on vite dattendre le timeouts du rseau.
Puisque la fonction de recherche pour la liste client fonctionne (si nest pas configur autrement) sur toutes les colonnes
affiches vous pouvez maintenant trouver quel est le client appartenant un utilisateur connect (avec le nom de compte
connu).
Pour trier les clients par une certaine colonne cliquez sur lentte de haut de cette colonne.

Slection des clients

Vous pouvez slectionner un ou plusieurs clients pour travailler avec. Le point de vue du client peut tre re-
streint des clients slectionns en cliquant sur licne entonnoir ou dans le menu Grouping / Show only selected
clients(Groupement / Afficher seulement les clients slectionns).
Un groupe de clients slectionns peuvent tre enregistrs avec licne Save grouping (Enregistrer regroupement) ou
partir du menu Grouping / save group (Groupement / Enregistrer le groupe) introduisant le nom de votre choix.
opsi manual opsi version 4.0.3 9 / 175

Vous pouvez utiliser la souris pour ajouter les clients slectionns dans un groupe existant (en les faisant glisser dans
un groupe existant qui est affich dans larborescence).
Dans la bote de dialogue de slection des clients (appel via le menu Slection / Prciser la recherche) les clients
peuvent tre slectionns en utilisant une varit de critres bass sur leurs configurations.

Figure 13 opsi-configed: masque: slection des clients

Par exemple, il est possible de rechercher des produits opsi installs ainsi que des logiciels tels que trouvs par laudit
logiciel dOPSI (swaudit). Vous pouvez ainsi rechercher les PC satisfaisant certaines des conditions matrielles. Les
critres peuvent tre combins par des oprateurs logiques and ou or. La ngation est galement possible. Les chanes
de recherche peuvent tre donns sous forme de chanes fixes combins avec des astrisques * en tant que symboles
gnriques.
Les dfinitions de recherche peuvent tre enregistrs, puis de nouveau utilis via le menu Slection/Utilisez dfinitions
de recherche sauvegarde.
opsi manual opsi version 4.0.3 10 / 175

Figure 14 opsi-configed: recherches enregistres

Il est galement possible dexcuter une recherche enregistre partir de la ligne de commande lorsque lditeur de
opsi-configed est lanc. En incluant le drapeau "-qs" et le nom de la recherche enregistre, lditeur de configuration
dmarre avec les rsultats de recherche enregistrs. Si le nom est omis, alors une liste de recherches disponibles seront
affichs.

4.3.7 Slection des clients et groupes hirarchiques en utilisant treeview

Depuis opsi 4.0 il est possible de grer des groupes et des clients utilisant un contrle darborescence sur le ct gauche
de opsi-configed. Une deuxime amlioration est la possibilit de groupes hirarchiques (groupes dans les groupes).
Cette fonctionnalit tree view fait partie dun projet de co-financement et ne fonctionne quavec un fichier dactivation
valide. Les frais dactivation sont 500 . Pour lvaluation sil vous plat contactez info@uib.de. The tree view control
has base node ALL with all groups and clients beyond..

Les concepts de base

Le contrle TreeView a base de noeud ALL avec tous les groupes et les clients au-dessus. Il y a un autre nud Groups
qui est le groupe de base pour toutes les autres groupes dfinis automatiquement.
opsi manual opsi version 4.0.3 11 / 175

opsi-configed: Treeview with clients and groups

Figure 15 opsi-configed: Treeview avec les clients et les groupes

Il y a un groupe supplmentaire REPORTED_FAILURES qui contient tous les clients, qui ont un rsultat de laction
failed (chou).
Chaque client connu est toujours dans le groupe ALL. En outre, un client peut tre dans un ou plusieurs autres
groupes. Vous pouvez construire des arbres de groupe diffrent qui reprsentent critres dordre diffrent, comme la
structure administrative, matrielle ou linventaire logiciel typique.
Si vous slectionnez un client, les icnes de tous les groupes auxquels le client slectionn appartiennent seront colors.

Comment faire . . .

Par un clic sur un nud (ou un groupe) tous les clients au-dessus de ce nud seront affichs dans longlet Clients,
mais aucun de ces clients est slectionn pour le traitement.
Par un clic sur un client, ce client sera affich dans longlet Clients est slectionn pour le traitement. Vous pouvez
galement utiliser ce moyen pour changer le client slectionn alors que vous tes dans un autre onglet, comme pour
la configuration du produit sans revenir longlet clients.
Vous pouvez utiliser Ctrl-click et Shift-click pour slectionner plusieurs clients. Ce contrle TreeView montre les groupes
qui sont crs selon le chapitre
Vous pouvez galement crer des groupes en utilisant le menu contextuel dessus de ALL ou tout autre groupe existant.

opsi-configed: Using the context menu to create a new subgroup

Figure 16 opsi-configed: Utiliser le menu contextuel pour crer un nouveau sous-groupe

Il vous sera demand le nouveau nom du groupe.

opsi-configed: Dialog: Group name

Figure 17 opsi-configed: Bote de dialogue: nom du groupe

Un groupe peut tre peuples avec des clients laide du glisser-dposer avec
copie des clients partir de longlet Clients vers le groupe dans larborescence (bouton gauche de la souris)
copie des clients partir de larborescence sous le nud ALL vers le groupe dans larborescence (bouton gauche de
la souris)
dplacement dun groupe de clients dans larborescence vers un autre groupe dans larborescence (bouton gauche
de la souris)
copie des clients dun groupe de larborescence dans un autre groupe de larborescence (Ctrl-bouton gauche de la
souris)

4.3.8 Traitement des clients / Actions des clients

En utilisant le menu OpsiClient ou le menu contextuel de longlet Clients vous pouvez choisir parmi un grand nombre
doprations spcifiques du client

opsi-configed: : context menu Clients Tab

Figure 18 opsi-configed: : menu contextuel de longlet Clients


opsi manual opsi version 4.0.3 12 / 175

WakeOnLan (Rveillez les clients slectionns)

Choisissant cette entre de menu, vous allez envoyer aux clients slectionns un signal WakeOnLan.

Dclencher lvnement on_demand (Push Installation)

Cette entre de menu est utilis pour envoyer opsi-client-agent sur les clients slectionns une commande pour
dclencher lvnement on_demand (sur demande). Cet vnement commencera le traitement de la demande daction
immdiatement. Tous les messages seront affichs sur le bureau actif. Si le client nest pas joignable, vous obtiendrez
un message.
Quest-ce qui se passe exactement if you fire the event on_demand can be configured in the event on_demand
configuration.

Envoi de messages (Show popup message)

Choisissant lentre de menu Show popup message (Voir le message contextuel) vous aurez une petite fentre o vous
pouvez saisir votre message.

opsi-configed: opsi message edit mask

Figure 19 opsi-configed: opsi message edit mask

En cliquant sur la case rouge, vous envoyez le message aux clients slectionns.
Une fentre de message apparatra aux clients slectionns.

opsi-configed: opsi message display dialog

Figure 20 opsi-configed: opsi message display dialog

Appel des outils externes de contrle distance pour des clients slectionns

Loption Remote Control Software call (appel logiciel de contrle distance) dans le menu contextuel du client ainsi
que le menu principal du client (depuis opsi-configed version 4.0.1.11) est trs puissant. Il peut tre utilis pour utiliser
nimporte quelle commande que le systme dexploitation offre, paramtre par exemple par le nom du client.
Par exemple il existe des configurations gnr automatiquement qui peuvent tre utilis pour envoyer un ping pour
le client slectionn: une commande ping qui fonctionne en environnement Windows et une commande qui exige
un environnement X Linux. Sil vous plat observez: opsi-configed appelle de toute vidence la commande dans son
environnement, par exemple, nous avons besoin de la commande Linux lorsque opsi-configed tourne sous Linux.

opsi-configed: Choice of Remote Control call

Figure 21 opsi-configed: Choix de lappel de contrle distance

La fentre de slection comporte trois parties. La partie suprieure numre les noms des commandes existantes. Une
ligne suit, qui montre la commande slectionne et offre la possibilit de la modifier (si cela est autoris). De plus, la
ligne contient les boutons pour excuter ou abandonner laction. La troisime zone de texte de la fentre capture les
messages qui sont retourns par le systme dexploitation lors de lappel de la commande.
Ces appels offrent une gamme quasi infinie de possibilits. Par exemple, une commande peut tre configur pour
ouvrir une connexion Remote Desktop pour le client slectionn (si elle permet de telles connexions). Sur un systme
Windows, la commande est
opsi manual opsi version 4.0.3 13 / 175

cmd.exe /c start mstsc /v:%host%


Dans un environnement Linux, la commande suivante peut tre utilise:
rdesktop -a 16 %host%
Dans les exemples %host% est une variable, dont opsi-configed remplace automatiquement par la valeur de lhte
slectionn. Dautres variables qui sont de faon analogue utilis dans les commandes sont %ipaddress% et %invento
rynumber%.
Si la commande est marque par lentre supplmentaire editable comme true, la ligne de commande permet ldition
ad hoc. Par exemple, vous pouvez ajouter un mot de passe demand ou varier la commande si ncessaire.
Si plus dun client est slectionne, la commande sera excute dans un thread propres chaque client.
La liste des commandes de contrle distance est modifiable via les entres de configuration du serveur (voir Sec-
tion 4.3.15).
Pour dfinir une commande example, au minimum une entre configed.remote_control.example (ou configed.
remote_control.example.command) doit tre gnr. La valeur de la proprit doit tre la commande (dans laquelle les
variables %host%, %ipaddress% etc. peuvent tre utilises). En plus, une entre configed.remote_control.example.
description peut tre dfini. La valeur de cette entre sera affich comme info-bulle (si nexiste pas, la commande
elle-mme servira de contenu info-bulle). Par ailleurs, une entre boolenne configed.remote_control.example.
editable peut tre ajoute. Si sa valeur est fixe false la commande ne peut pas tre modifis dans la fentre de
slection.
opsi-configed: Editing of remote control commands in the server properties editor

Figure 22 opsi-configed: Modification des commandes de contrle distance dans lditeur des proprits du serveur

Arrt / redmarrage des clients slectionns

Vous pouvez envoyer aux clients slectionns un signal darrt ou de redmarrage. Vous devez confirmer cette commande
opsi-configed.

Attention
Si le client a reu le signal, il steindra sans plus de questions.

Supprimer, crer, renommer et dplacer des clients

Vous pouvez supprimer les clients slectionns partir du serveur opsi.


Si vous choisissez de crer un client, un masque de saisie souvre. Vous entrez ou confirmez les donnes requises
nom du client sans spcification de domaine, nom de domaine, nom du serveur de dpt. Vous pouvez ajouter une
description textuelle pour ce client et des notes sur ce client.

opsi-configed: cration dun client

Figure 23 opsi-configed: cration dun client

Le masque contient galement des champs pourune dclaration facultative de ladresse IP et de ladresse MAC dun
client. Si le backend est activ pour la configuration dun serveur dhcp locale (qui nest pas le paramtre par dfaut),
cette information sera utilise pour faire connaitre le nouveau client au serveur dhcp. Sinon, ladresse MAC sera
enregistr dans le serveur et ladresse IP sera rejet.
Vous pouvez renommer un client slectionn, il vous sera demand le nouveau nom.
opsi manual opsi version 4.0.3 14 / 175

Le dplacement dun client un serveur de dpt diffrents. Si vous cliquez, les fentres suivantes saffichent avec une
liste de serveurs de dpt existant

opsi-configed: changer le dpt dun client

Figure 24 opsi-configed: changer le dpt dun client

4.3.9 Configuration des produits

En passant longlet Product configuration (Configuration des produits) vous obtenez une liste de paquets logiciels
disponibles avec leur statut dinstallation et le statut daction pour les clients slectionns.

opsi-configed: masque de configuration des produits

Figure 25 opsi-configed: masque de configuration des produits

Sil y a un statut diffrent pour les clients slectionns ce sera marque en gris (undefined). La liste des clients
slectionns est indiqu droite en haut.
Vous pouvez galement trier la liste des produits en cliquant sur lentte de colonne.
Ceci sont les colonnes:
Status (Statut) est le dernier tat du produit et peut contenir les valeurs installed (install) , not_installed (non
install) , unknown (inconnus). Le tableau montre une cellule vide si la valeur est not_installed pour amliorer la
convivialit de la vue. La cellule devient gris si une multitude de clients sont slectionns et ne partagent pas une
valeur commune (la coloration grise reprsente la valeur pseudo mixed).
Report informe sur les progrs ou le rsultat de la dernire action en utilisant le modle <action result> (<last
action>). Lors dun processus dinstallation il peut indiquer installing (installant) , ensuite par exemple failed(setup)
(chou (installation)) ou success (uninstall) (succs (dsinstaller)).
La colonne Requested action (Action demand) dtient les informations sur laction qui sera excut. Les valeurs
possibles sont none (montr par une cellule vide) et les types daction pour lesquels les scripts sont dfinis dans le
paquet du produit (valeurs possibles sont setup (installer), uninstall (dsinstaller), update (mise jour), once (une
fois), always (toujours), custom (personnalis)).
Le champ Version affiche le numro de version du logiciel combin avec le numro du paquet opsi du logiciel install
sur le client.
Il y a deux colonnes supplmentaires qui peuvent tre actives via le menu contextuel:
Priority class affiche une valeur de priorit qui est attribu au produit (priorit la plus leve +100, priorit la plus
faible -100). Elle influe sur lordre dinstallation des produit (en vertu de product_sort_algorithm)
La colonne position column displays the product ordering forecast for installation sequences.
Choisissez un logiciel pour obtenir plus dinformations sur le produit dans la partie droite de la fentre, comme:
Complete product name: nom complet du produit de ce paquet logiciel.
Software/package version: version du logiciel-version du paquet opsi du progiciel (spcifi dans le paquet dinstalla-
tion opsi).
Product description: texte libre pour dcrire le logiciel.
Hints: texte libre avec conseils et avertissements pour la manipulation du paquet.
Requirements: Une liste des autres produits dont le produit slectionn (dit A) dpend combin avec le type de
dpendance: required signifie que A exige lautre produit (B), mais peu importe si B est install avant ou aprs
A. pre-required signifie que B doit tre install avant A. post-required signifie que B doit tre install aprs A. on
deinstall signifie que cette action devrait avoir lieu si A est de-install.
Configuration for client: Il est possible de dfinir des proprits supplmentaires pour un produit. Leurs valeurs
peuvent tre values dans un script de configuration pour configurer le produit par client. En raison de la complexit
intrinsque dune dfinition de la proprit il y a un lment dinterface spcifiques pour afficher et diter la table
des proprits:
opsi manual opsi version 4.0.3 15 / 175

4.3.10 Tableaux de proprit with list editor windows

Une table de proprit est un tableau deux colonnes. Dans chaque ligne, la premire colonne contient un nom de
proprit, la deuxime colonne affiche la valeur(s) attribue la proprit.
Il peut tre configur pour quune info-bulle saffiche avec quelques informations sur le sens de la proprit et la valeur
par dfaut.

opsi-configed: Table de proprit avec info-bulle

Figure 26 opsi-configed: Table de proprit avec info-bulle

Si vous cliquez sur une valeur, une fentre souvre: lditeur de liste (list editor) pour cette proprit. Il montre une
valeur, respectivement une liste de pr valeurs configures avec la valeur actuelle comme slectionn.

opsi-configed: diteur de liste, liste de slection

Figure 27 opsi-configed: diteur de liste, liste de slection

En cliquant une nouvelle valeur modifie la slection.


Si la liste des valeurs de la proprit est modifiable (des nouvelles valeurs peuvent tre ajouts la liste existante resp.
existing values changed) la fentre vient avec un champ ddition pour les valeurs nouvelles ou modifies.

opsi-configed: diteur de liste, champ ddition

Figure 28 opsi-configed: diteur de liste, champ ddition

La faon la plus confortable pour obtenir une nouvelle valeur qui est une variante dune valeur existante est de
double-cliquer sur la valeur existante dans la liste. Cela copie la valeur dans le champ ddition o elle peut tre
modifi.
Ds que le champ ddition contient une nouvelle valeur pas encore prsent dans la liste des valeurs le bouton plus
est activ par lequel la nouvelle valeur peut tre ajoute la liste des valeurs.
Si plusieurs valeurs sont permises comme il faut par exemple pour la proprit additional drivers une valeur peut
tre ajoute lensemble des valeurs slectionnes par Strg-Click . La mme action supprime la valeur de lensemble.
Le bouton moins (depuis opsi-configed en version 4.0.2) efface compltement la slection.
Lorsque la liste a t dite la coche verte devient rouge comme dhabitude dans opsi-configed. En cliquant dessus,
la nouvelle slection devient la nouvelle valeur de la proprit (et termine ldition). En cliquant sur le bouton bleu
annuler, ldition sarrte rinitialisant la valeur dorigine.

4.3.11 Produits Netboot

Les produits sous longlet Netboot products sont principalement utiliss pour installer le systme dexploitation client
et sont rpertoris et configurs comme les produits sous longlet Product configuration.
Si pour le(s) client(s) slectionn(s) un produit netboot est rgl sur setup, limage de dmarrage correspondant sera
charg et excut au prochain redmarrage du client.

opsi-configed: masque pour lancer limage de dmarrage

Figure 29 opsi-configed: masque pour lancer limage de dmarrage

Cela se fait gnralement pour dmarrer une installation de lOS ou toute autre tche de limage de dmarrage (comme
un test de mmoire, etc.)
opsi manual opsi version 4.0.3 16 / 175

4.3.12 Informations sur le matriel

Avec cet onglet, vous obtenez les dernires informations matrielles dtect pour ce client (disponible uniquement si
un seul client est slectionn).

opsi-configed: Informations sur le matriel pour le client slectionn

Figure 30 opsi-configed: Informations sur le matriel pour le client slectionn

4.3.13 Linventaire logiciel

Avec cet onglet, vous obtenez les dernires informations logiciels dtect pour ce client (disponible uniquement si un
seul client est slectionn).

opsi-configed: Informations sur les logiciels pour le client slectionn

Figure 31 opsi-configed: Informations sur les logiciels pour le client slectionn

4.3.14 Journaux systme: Journaux du client et du serveur

Les journaux systme spcifique au client sont stockes sur le serveur et visible avec opsi-configed via longlet log files.
Il est galement possible de rechercher dans ces fichiers (pour continuer la recherche, appuyez F3 ou n).

Figure 32 opsi-configed: Affichage du journal systme dans opsi-configed

4.3.15 Paramtres de lhte dans la configuration du client et du serveur

Il y a de nombreuses options de configuration pour le serveur et les clients opsi qui peuvent tre initialise ou change
via longlet Host parameters. Ainsi, les options par dfaut du serveur sont dfinies dans le mode server configuration,
les valeurs spcifiques du client dans le mode client configuration ainsi que la slection manuelle dans longlet des Host
parameters (voir aussi Section 4.3.4).
opsi manual opsi version 4.0.3 17 / 175

En principe, ces entres de configuration (config objects du serveur opsi) sont conus comme des listes de valeurs.
Donc ils sont dits via loutil de lditeur de liste (voir Section 4.3.10).
En fonction de la dfinition prcise dun objet de configuration
les valeurs dune liste peuvent tre de type texte (Unicode) ou de type Boolean (par exemple true/false);
la liste peut avoir quun seul lment ou peut tre une vritable liste avec plusieurs membres;
lensemble des valeurs partir de laquelle des lments de liste sont slectionns peuvent tre fixes ou extensibles.
Les nouvelles configurations des entres, des types de unicode (extendible) et boolean (fixed) peuvent tre crs via le
menu contextuel. Il offre galement la possibilit de supprimer les entres existantes.
La relation des entres du serveur et du client est complique.
Les entres du serveur dtiennent les valeurs par dfaut pour les entres du client.
Quand une entre du serveur (un objet de configuration) est supprim les entres dpendants du client (tats de
configuration) disparaissent aussi.
La cration dune entre client via opsi-configed entrane la cration automatique dune approprie valeur par dfaut
du serveur.
La suppression dune entre client via opsi-configed supprime uniquement la valeur client spcifique (si elle existe)
mais laisse les valeurs par dfaut du serveur (qui seront valables pour le client).
Pour le moment opsi-configed nindique pas si une valeur spcifique du client existe ou si la valeur par dfaut du
serveur est utilis par le client.
Il ya des objets de configurations pour lesquelles des valeurs du client peuvent tre cres et dites, mais seulement
les objets du serveur sont utiliss (par exemple les entres de opsi-configed, commenant par configed.).

Figure 33 opsi-configed: Onglet Paramtres de lhte (Configuration du serveur et du client)

4.3.16 Configuration du dpt

Dans le mode Properties of depots vous verrez longlet Dpts. Il y a un menu droulant pour slectionner le dpt.
Aprs avoir slectionn le dpt, vous pouvez modifier les proprits de opsi-depot.
voir aussi:
opsi-configed: Onglet de configuration Dpt

Figure 34 opsi-configed: Onglet de configuration Dpt


opsi manual opsi version 4.0.3 18 / 175

4.4 Outil: opsi-package-manager: (d-)installer les paquets opsi

opsi-package-manager est utilis pour (d-)installer un opsi-product-packages sur un serveur opsi.


Afin dinstaller un opsi-product-package, le opsi-product-package doit tre lisible pour lutilisateur opsiconfd. Cest
pourquoi il est fortement recommand dinstaller ces paquets partir du rpertoire /home/opsiproducts (ou un sous-
rpertoire).
Le journal systme de opsi-package-managers vous le trouverez /var/log/opsi/package.log.
Installer un paquet (sans poser de questions):
opsi-package-manager -i softprod_1.0-5.opsi

Installer un paquet (posant des questions):


opsi-package-manager -p ask -i softprod_1.0-5.opsi

Installer un paquet (et le commutateur daction ncessaires, pour la configuration, lorsquil est install):
opsi-package-manager -S -i softprod_1.0-5.opsi

Dsinstaller un paquet (sans poser de questions):


opsi-package-manager -r softprod

Extraire et renommer un paquet:


opsi-package-manager -x opsi-template_<version>.opsi --new-product-id myprod

Appeler opsi-package-manager avec loption --help donne une liste des options possibles.
Sil vous plat remarquez:
Loption -d ou --depots sont rserves lusage dans un environnement multi serveur de dpt.
En utilisant loption -d le paquet opsi sera copi dans le rpertoire /var/lib/opsi/repository du serveur cible
avant linstallation. Sil vous plat assurez-vous quil y a suffisamment despace libre sur ce systme de fichiers.
voir aussi:
#opsi-package-manager --help

usage: opsi-package-manager [options] <command>

Manage opsi packages

Commands:
-i, --install <opsi-package> ... install opsi packages
-u, --upload <opsi-package> ... upload opsi packages to repositories
-l, --list <regex> list opsi packages matching regex
-D, --differences <regex> show depot differences of opsi packages matching regex
-r, --remove <opsi-product-id> ... uninstall opsi packages
-x, --extract <opsi-package> ... extract opsi packages to local directory
-V, --version show programs version info and exit
-h, --help show this help message and exit

Options:
-v, --verbose increase verbosity (can be used multiple times)
-q, --quiet do not display any messages
--log-file <log-file> path to debug log file
-d, --depots <depots> comma separated list of depot ids to process
all = all known depots
-p, --properties <mode> mode for default product property values
ask = display dialog
package = use defaults from package
keep = keep depot defaults (default)
--purge-client-properties remove product property states of the installed product(s)
opsi manual opsi version 4.0.3 19 / 175

-f, --force force install/uninstall (use with extreme caution)


-U, --update set action "update" on hosts where installation status is "installed"
-S, --setup set action "setup" on hosts where installation status is "installed"
-o, --overwrite overwrite existing package on upload even if size matches
-k, --keep-files do not delete client data dir on uninstall
-t, --temp-dir <path> tempory directory for package install
--max-transfers <num> maximum number of simultaneous uploads
0 = unlimited (default)
--max-bandwidth <kbps> maximum transfer rate for each transfer (in kilobytes per second)
0 = unlimited (default)
--new-product-id <product-id> set a new product id when extracting opsi package

4.5 Outil: opsi-product-updater

Lutilitaire en ligne de commande opsi-product-updater est conu pour tlcharger et installer des paquets opsi
confortablement depuis un dpt ou dun autre serveur opsi. Lusage de opsi-product-updater rendre facile de main-
tenir le serveur opsi jour. Il peut tre galement utilis dans une tche cron pour garder le serveur de dpt en
synchronisation avec le serveur de configuration.
# opsi-product-updater --help

Usage: opsi-product-updater [options]


Options:
-h Show this help text
-v Increase verbosity (can be used multiple times)
-V Show version information and exit
-c Location of config file

Les caractristiques principales sont:


dpts paramtrables
actions paramtrables
Toute la configuration se fera dans le fichier de configuration /etc/opsi/opsi-product-updater.conf.

4.5.1 Dpts paramtrables

Les dpts sont les sources qui seront utilises par opsi-product-update pour rcuprer des nouveaux paquetages opsi
Il existe deux types de dpts:
Dpts Internet
Exemple: download.uib.de
Cela sont des dpts qui sont configurs par:
URL de base (dans lexemple http://download.uib.de)
rpertoires ( Une liste de rpertoires, par exemple: opsi4.0/produkte/essential)
et, si ncessaire, nom dutilisateur et mot de passe pour les dpts protgs par mot de passe (par exemple pour les
abonnements la gestion des correctifs opsi)
Vous pouvez galement configurer un proxy ici.
serveur opsi
Ceci est (utilisant un opsi-depotserver) la centrale opsi-configserver qui sera utilise pour rcuprer les paquets opsi.
Llment de configuration central est ici:
opsiDepotId
Cela, dans la plupart des cas sur un opsi-depotserver la centrale opsi-configserver. Donc sur tout appel de opsi-product-
updater le opsi-product-packages sera rcupr depuis opsi-configserver. Cela peut tre fait par exemple par une tche
cron.
opsi manual opsi version 4.0.3 20 / 175

4.5.2 Actions paramtrables

Pour chaque dpt, vous devez configurer les actions excuter:


autoupdate: Les nouvelles versions des paquets installs seront tlchargs et installs
autoinstall: Aussi des paquets qui ne sont pas encore install, seront tlcharg et install
autoinstall: Pour tous les nouveaux paquets installs et tous les clients sur lesquels ces paquets sont installs, la
demande daction sera mis configuration.
En outre, il est possible denvoyer tous ces clients un signal Wake-On-LAN pour installer le nouveau logiciel sur les
clients. En utilisant opsi-product shutdownwanted vous pouvez faire en sorte que les clients seront mis hors tension
aprs linstallation.
time window for autosetup: Vous pouvez attribuer une fentre de temps qui peut tre utilise par les demandes
daction des clients configurer.
Automatic WakeOnLan with shutdown: Sil y a un nouveau logiciel, les clients pourraient tre rveill et aprs
linstallation automatiquement arrt.

4.6 Outil: opsi-admin / opsi config interface

4.6.1 Prsentation

opsi V3 introduit une bibliothque en python, de proprit dopsi,qui fournit une API pour la configuration de opsi.
opsiconfd fournit cette API comme un service web, alors que opsi-admin est linterface en ligne de commande pour
cette API.
En appelant https://<opsi-server>:4447/votre navigateur vous offre une interface graphique pour le web service dopsi.
Vous devez vous connecter en tant que membre du groupe unix opsiadmin.

opsi config interface: Laccs au service web via un navigateur

Figure 35 opsi config interface: Laccs au service web via un navigateur

En ligne de commande opsi-admin fournit une interface opsi-API. Il y a un mode interactif et un mode non interactif
pour le traitement par lots partir de scripts.
Loption daide opsi-admin --help affiche une liste des options en ligne de commande qui sont disponibles :
# opsi-admin --help

Usage: opsi-admin [options] [command] [args...]


Options:
-h, --help Display this text
-V, --version Display this text
-u, --username Username (default: current user)
-p, --password Password (default: prompt for password)
-a, --address URL of opsiconfd (default: https://localhost:4447/rpc)
-d, --direct Do not use opsiconfd
--no-depot Do not use depotserver backend
-l, --loglevel Set log level (default: 3)
0=nothing, 1=essential, 2=critical, 3=error, 4=warning
5=notice, 6=info, 7=debug, 8=debug2, 9=confidential
-f, --log-file Path to log file
-i, --interactive Start in interactive mode
-c, --colorize Colorize output
-S, --simple-output Simple output (only for scalars, lists)
-s, --shell-output Shell output

opsi-admin peut utiliser le service web de opsi ou exploiter directement le backend des donnes. Pour travailler avec
le service web vous devez fournir lURL et un nom dutilisateur et mot de passe. Pour des raisons de scurit, vous
opsi manual opsi version 4.0.3 21 / 175

nauriez probablement pas envie de faire cela dans un script. Dans ce cas, vous prfreriez un accs direct la base de
donnes en utilisant loption -d: opsi-admin -d.
En mode interactif (commencent par opsi-admin -d ou opsi-admin -d -i -c ou opsi-admin -dic) vous obtenez
le support pour la saisie avec la touche TAB. Aprs quelques saisie, avec la touche TAB vous obtenez une liste ou les
dtails, du type de donnes de la prochaine saisie attendue.
Loption -s ou -S gnre un format de sortie qui peut tre facilement analys par des scripts.
Il y a quelques mthodes qui sont bases directement sur les requtes API, et il ya quelques tches, qui sont un
ensemble dappels de fonctions pour faire un travail spcial plus complexe.

4.6.2 Cas dutilisation typique

Dfinissez un produit pour la configuration (setup) pour tous les clients qui ont install ce produit

opsi-admin -d task setupWhereInstalled "softprod"

Liste de tous les clients

opsi-admin -d method host_getIdents

Supprimer un client

opsi-admin -d method host_delete <nom du client>

par exemple:
opsi-admin -d method host_delete "pxevm.uib.local"

Crer un client

opsi-admin -d method host_createOpsiClient <nom du client pleinement qualifi>

par exemple:
opsi-admin -d method host_createOpsiClient "pxevm.uib.local"

Dfinir une requte daction

opsi-admin -d method setProductActionRequest <Id du produit> <Id du client> <requte daction>

par exemple:
opsi-admin -d method setProductActionRequest win7 pxevm setup

Joindre la description du client

opsi-admin -d method setHostDescription "dpvm02.uib.local" , "Client sous VMware"


opsi manual opsi version 4.0.3 22 / 175

Dfinir le mot de passe de pcpatch

opsi-admin -d task setPcpatchPassword

Dfini le mot de passe de lutilisateur pcpatch pour le compte Unix, samba et opsi.

4.7 Processus serveur: opsiconfd et opsipxeconfd

opsipxeconfd fournit les named pipes dans les rpertoires tftpboot, qui sont utiliss pour contrler le processus de
dmarrage PXE.
Le fichier de configuration est /etc/opsi/opsipxeconfd.conf
Le fichier journal systme est /var/log/opsi/opsipxeconfd.log.
opsiconfd fournit les opsi API comme JSON service web et ont beaucoup dautres tches importantes. Par consquent
opsiconfd est le service central dopsi et fait tout la communication vers les clients.
En ce qui concerne cette rle centrale, un outil pour surveiller ce processus donne beaucoup dinformations sur la
charge et les problmes ventuelles. Cet outil est la page dinfo de opsiconfd.

4.7.1 opsiconfd monitoring: opsiconfd info

Utilisation de ladresse web https://<opsi-server>:4447/info vous obtiendrez un graphique de la charge et de lutili-


sation CPU/mmoire de opsiconfd dans la dernire heure/jour/mois/anne. Cette information est complte par des
informations tabulaires, des tches relles et des sessions.

opsiconfd info: Les valeurs de la dernire heure de opsiconfd

Figure 36 opsiconfd info: Les valeurs de la dernire heure de opsiconfd

opsiconfd info: les valeurs de la dernire journe de opsiconfd

Figure 37 opsiconfd info: les valeurs de la dernire journe de opsiconfd

5 Service web / mthodes de lAPI

5.1 Service web / Les mthodes API depuis opsi 4.0

5.1.1 Prsentation

Dans opsi 4 la structure des donnes de tous les backends et les mthodes de service web sont de conception totalement
nouvelle.
La nouvelle conception est oriente objet / base de donnes. Un objet a des proprits.
Comme exemple nous allons regarder lobjet product. Un objet de type product qui dcrit le produit javavm peut
ressembler ceci:
"ident": "javavm;1.6.0.20;2"
"id": "javavm"
"description": "Java&#x202f;1.6"
"changelog": ""
"advice": ""
"userLoginScript": ""
"name": "SunJavaRuntimeEnvironment"
opsi manual opsi version 4.0.3 23 / 175

"priority": 0
"packageVersion": "2"
"productVersion": "1.6.0.20"
"windowsSoftwareIds": None
"productClassIds": None
"type": "LocalbootProduct"
"licenseRequired": False
"setupScript": "javavm.ins"
"updateScript": ""
"uninstallScript": "deljvm.ins"
"alwaysScript": ""
"onceScript": ""
"customScript": ""

Chaque objet a un ensemble doprateurs qui peuvent tre utilises pour travailler avec cet objet. La plupart du temps,
ces oprateurs sont:
getObjects (renvoie les objets)
getHashes (variante, qui offre pour des raisons de performances les objets du backend en lecture seule. Pour un
grand nombre dobjets cette mthode est beaucoup plus rapide de lappel getObjects)
create (crer un objet laise)
createObjects (crer un ou plusieurs objets)
delete (supprimer un objet)
deleteObjects (supprimer un ou plusieurs objets)
getIdents (renvoie lid de lobjet)
insertObject (crer un nouvel objet)
updateObject (mise jour dun objet, si lobjet nexiste pas il sera cr)
updateObjects (mise jour dun ensemble dobjets)
Les noms des mthodes sont concatns:
<nom objet>_<opration>
Selon cette rgle de nommage, ces nouvelles mthodes sont facilement diffrencis des anciens mthodes legacy de opsi
3, que commencent par get, set ou create.
Les mthodes getObjects ont deux paramtres facultatifs:
attributes
filter
Le paramtre attributes est utilis dans la requte uniquement pour certaines proprits dun objet. Si vous utilisez des
attributs lobjet retourn a toutes les cls dattributs, mais seulement des valeurs de lattribut que vous avez demand
et pour tous les attributs qui sont utiliss pour identifier cet objet. Tous les autres attributs ont la valeur none.
Par exemple, en appelant la mthode product_getObjects avec attributes:["name"] pour le produit javavm, vous ob-
tiendrez:
"onceScript": None,
"ident": "javavm;1.6.0.20;2",
"windowsSoftwareIds": None,
"description": None,
"setupScript": None,
"changelog": None,
"customScript": None,
"advice": None,
"uninstallScript": None,
"userLoginScript": None,
"name": "Sun Java Runtime Environment",
"priority": None,
"packageVersion": "2",
"productVersion": "1.6.0.20",
"updateScript": None,
"productClassIds": None,
opsi manual opsi version 4.0.3 24 / 175

"alwaysScript": None,
"type": "LocalbootProduct",
"id": "javavm",
"licenseRequired": None

Si vous souhaitez ne pas demander des attributs mais que vous voulez utiliser le second paramtre filter vous devez
donner comme paramtre dattribut [].
Le filtre de paramtre est utilis pour dfinir les objets que vous voulez obtenir. Par exemple si vous utilisez le filtre {
"id":"javavm" } sur la mthode product_getObjects vous aurez seulement lobjet(s) qui dcrit le produit javavm.
Si vous utilisez des mthodes qui attendent un ou plusieurs objets, ces objets doivent tre donns titre dobjets JSON
ou en tant que srie dobjets JSON.
Les objets les plus importants sont:
auditHardwareOnHost (informations sur le matriel client spcifique)
auditHardware (informations sur le matriel client indpendant)
auditSoftwareOnClient (informations sur les logiciels spcifiques du client)
auditSoftware (informations sur les logiciels indpendent du client)
auditSoftwareToLicensePool (gestion des licences)
configState (gestion des paramtres dhte du client)
config (administration des paramtres dhte par dfaut)
group (administration des groupes)
host (serveur et clients)
licenseContract (gestion des licences)
licenseOnClient (gestion des licences)
licensePool (gestion des licences)
objectToGroup (administration des groupes)
productDependency (dpendances du produit)
productOnClient (information sur les clients spcifiques un produit, par exemple ltat dinstallation)
productOnDepot (informations du dpt spcifiques un produit)
productPropertyState (dpt ou client spcifique, paramtres de proprit des produits)
productProperty (dfinition des proprits du produit)
product (mta-donnes du produit)
softwareLicenseToLicensePool (gestion des licences)
softwareLicense (gestion des licences)
En plus des objets et des mthodes dcrites il y a encore plus pour des oprations spciales.
Cette conception:
est cr pour la transmission rapide des informations sur un grand nombre de clients
filtrer les donnes par une syntaxe unifie
permettre de vrifier la syntaxe correcte de toutes les entres
Conformment ces donnes nous obtenons une stabilit et des performances accrues.

5.1.2 Les objets de stockage de donnes

host (serveur et clients)

Exemple pour un OpsiClient:


opsi manual opsi version 4.0.3 25 / 175

method host_getObjects [] {"id":"xpclient.vmnat.local"}


[
{
"ident" : "xpclient.vmnat.local",
"description" : "",
"created" : "2012-03-22 12:13:52",
"inventoryNumber" : "",
"ipAddress" : "172.16.166.101",
"notes" : "Created by opsi-deploy-client-agent at Wed, 24 Aug 2011 10:24:36",
"oneTimePassword" : "",
"lastSeen" : "2012-03-30 16:20:04",
"hardwareAddress" : "00:0c:29:35:70:a7",
"opsiHostKey" : "1234567890abcef1234567890abcdef",
"type" : "OpsiClient",
"id" : "xpclient.vmnat.local"
}
]

La plupart de ces donnes sont affiches dans longlet clients de opsi-configed.


Les types possibles sont:
OpsiClient
OpsiConfigserver (ce qui signifie implicitement que cest aussi un OpsiDepotserver)
OpsiDepotserver
Les types serveur ont des donnes diffrentes et supplmentaires.
Exemple pour un serveur:
method host_getObjects [] {"id":"sepiolina.vmnat.local"}
[
{
"masterDepotId" : null,
"ident" : "sepiolina.vmnat.local",
"networkAddress" : "172.16.166.0/255.255.255.128",
"description" : "",
"inventoryNumber" : "",
"ipAddress" : "172.16.166.1",
"repositoryRemoteUrl" : "webdavs://sepiolina.vmnat.local:4447/repository",
"depotLocalUrl" : "file:///var/lib/opsi/depot",
"isMasterDepot" : true,
"notes" : "",
"hardwareAddress" : null,
"maxBandwidth" : 0,
"repositoryLocalUrl" : "file:///var/lib/opsi/repository",
"opsiHostKey" : "1234567890abcef1234567890abcdef",
"type" : "OpsiConfigserver",
"id" : "sepiolina.vmnat.local",
"depotWebdavUrl" : "webdavs://sepiolina:4447/depot",
"depotRemoteUrl" : "smb://sepiolina/opsi_depot"
}
]

La plupart de ces donnes sont affiches dans la configuration de dpt de opsi-configed.

group (ladministration des groupes)

Dcrit les groupes et leur structure hirarchique.


Exemple pour un objet de groupe:
method group_getObjects
[
{
"ident" : "sub2",
opsi manual opsi version 4.0.3 26 / 175

"description" : "sub2",
"notes" : "",
"parentGroupId" : null,
"type" : "HostGroup",
"id" : "sub2"
},
{
"ident" : "subsub",
"description" : "subsub",
"notes" : "",
"parentGroupId" : "sub2",
"type" : "HostGroup",
"id" : "subsub"
}
]

objectToGroup (ladministration des groupes)

Dcrit lappartenance dun objet dans un groupe.


On trouve Hostgroups et Productgroups
Exemple pour un objet objectToGroup:
method objectToGroup_getObjects
[
{
"groupType" : "HostGroup",
"ident" : "HostGroup;sub2;win7.vmnat.local",
"type" : "ObjectToGroup",
"groupId" : "sub2",
"objectId" : "win7.vmnat.local"
},
{
"groupType" : "HostGroup",
"ident" : "HostGroup;subsub;win7x64.vmnat.local",
"type" : "ObjectToGroup",
"groupId" : "subsub",
"objectId" : "win7x64.vmnat.local"
},
{
"groupType" : "ProductGroup",
"ident" : "ProductGroup;opsiessentials;opsi-client-agent",
"type" : "ObjectToGroup",
"groupId" : "opsiessentials",
"objectId" : "opsi-client-agent"
},
{
"groupType" : "ProductGroup",
"ident" : "ProductGroup;opsiessentials;opsi-winst",
"type" : "ObjectToGroup",
"groupId" : "opsiessentials",
"objectId" : "opsi-winst"
}
]

product (les mta-donnes du produit)

Dcrit les mtadonnes dun produit qui sont dfinies lors de la cration du paquet.
Exemple pour un objet produit:
method product_getObjects [] {"id":"jedit","productVersion":"4.5"}
[
{
opsi manual opsi version 4.0.3 27 / 175

"onceScript" : "",
"ident" : "jedit;4.5;3",
"windowsSoftwareIds" :
[

],
"description" : "jEdit with opsi-winst Syntax-Highlighting",
"setupScript" : "setup.ins",
"changelog" : "",
"customScript" : "",
"advice" : "",
"uninstallScript" : "uninstall.ins",
"userLoginScript" : "",
"name" : "jEdit programmers text editor",
"priority" : 0,
"packageVersion" : "3",
"productVersion" : "4.5",
"updateScript" : "update.ins",
"productClassIds" :
[

],
"alwaysScript" : "",
"type" : "LocalbootProduct",
"id" : "jedit",
"licenseRequired" : false
}
]

Note
Si vous avez des serveurs de dpt multiple, vous pouvez avoir des versions diffrentes dun mme produit.

Les entres productClassIds et windowsSoftwareIds ne sont pas utiliss pour le moment.

productProperty (Dfinition des proprits du produit)

Dcrit les proprits dun produit qui sont dfinies lors de la cration du paquet.
Exemple pour un objet productProperty:
method productProperty_getObjects [] {"productId":"jedit","productVersion":"4.5"}
[
{
"ident" : "jedit;4.5;3;start_server",
"description" : "Should the jedit derver started at every startup ?",
"editable" : false,
"defaultValues" :
[
false
],
"multiValue" : false,
"productVersion" : "4.5",
"possibleValues" :
[
false,
true
],
"packageVersion" : "3",
"type" : "BoolProductProperty",
"propertyId" : "start_server",
"productId" : "jedit"
}
]
opsi manual opsi version 4.0.3 28 / 175

Note
Les valeurs par dfaut relles sont stockes dans le contexte du dpt dans un objet productPropertyState.

productPropertyState (Paramtres de proprit des produits spcifiques au dpt ou aux clients)

Dcrit:
* la valeur par dfaut dune proprit du produit dans un dpt donn proprits dun produit qui sont dfinies lors
de la cration du paquet. * les paramtres spcifiques du client pour les proprits du produit.
Exemple pour un objet productPropertyState:
method productPropertyState_getObjects [] {"productId":"jedit"}
[
{
"ident" : "jedit;start_server;sepiolina.vmnat.local",
"objectId" : "sepiolina.vmnat.local",
"values" :
[
false
],
"type" : "ProductPropertyState",
"propertyId" : "start_server",
"productId" : "jedit"
},
{
"ident" : "jedit;start_server;xpclient.vmnat.local",
"objectId" : "xpclient.vmnat.local",
"values" :
[
true
],
"type" : "ProductPropertyState",
"propertyId" : "start_server",
"productId" : "jedit"
}

productDependency (dpendances du produit)

Dcrit les dpendances dun produit un autre produit tel quil est dfini lors de la cration du package.
Exemple pour un objet productDependency:
method productDependency_getObjects [] {"productId":"jedit","productVersion":"4.5"}
[
{
"ident" : "jedit;4.5;3;setup;javavm",
"productAction" : "setup",
"requiredPackageVersion" : null,
"requirementType" : "before",
"requiredInstallationStatus" : "installed",
"productVersion" : "4.5",
"requiredProductId" : "javavm",
"requiredAction" : null,
"requiredProductVersion" : null,
"type" : "ProductDependency",
"packageVersion" : "3",
"productId" : "jedit"
}
]
opsi manual opsi version 4.0.3 29 / 175

productOnClient (informations client spcifique un produit, par exemple ltat de linstallation)

Dcrit les produits dans lesquels versions sont installes sur lequel client..
Exemple pour un objet productOnClient:
method productOnClient_getObjects [] {"productId":"jedit","clientId":"xpclient.vmnat.local"}
[
{
"ident" : "jedit;LocalbootProduct;xpclient.vmnat.local",
"actionProgress" : "",
"actionResult" : "successful",
"clientId" : "xpclient.vmnat.local",
"modificationTime" : "2012-03-30 15:49:04",
"actionRequest" : "none",
"targetConfiguration" : "installed",
"productVersion" : "4.5",
"productType" : "LocalbootProduct",
"lastAction" : "setup",
"packageVersion" : "3",
"actionSequence" : -1,
"type" : "ProductOnClient",
"installationStatus" : "installed",
"productId" : "jedit"
}
]

productOnDepot (informations dpt spcifiques un produit)

Dcrit le produit qui est install et sa version sur un dpt donn..


Exemple pour un objet productOnDepot:
method productOnDepot_getObjects [] {"productId":"jedit"}
[
{
"ident" : "jedit;LocalbootProduct;4.4.1;2;depotserver.vmnat.local",
"locked" : false,
"productVersion" : "4.4.1",
"productType" : "LocalbootProduct",
"depotId" : "depotserver.vmnat.local",
"type" : "ProductOnDepot",
"packageVersion" : "2",
"productId" : "jedit"
},
{
"ident" : "jedit;LocalbootProduct;4.5;3;sepiolina.vmnat.local",
"locked" : false,
"productVersion" : "4.5",
"productType" : "LocalbootProduct",
"depotId" : "sepiolina.vmnat.local",
"type" : "ProductOnDepot",
"packageVersion" : "3",
"productId" : "jedit"
}
]

Note
Si vous avez des serveurs de dpt multiple, vous pouvez avoir des versions diffrentes dun mme produit.
opsi manual opsi version 4.0.3 30 / 175

config (ladministration des valeurs par dfaut des paramtres hte)

Dcrit le paramtre hte de la Configuration serveur de opsi-configed.


Exemple pour un objet config:
method config_getObjects [] {"id":"opsiclientd.event_gui_startup.active"}
[
{
"ident" : "opsiclientd.event_gui_startup.active",
"description" : "gui_startup active",
"defaultValues" :
[
true
],
"editable" : false,
"multiValue" : false,
"possibleValues" :
[
false,
true
],
"type" : "BoolConfig",
"id" : "opsiclientd.event_gui_startup.active"
}
]

configState (ladministration des paramtres de lhte client)

Dcrit le paramtre hte de la configuration du client de opsi-configed.


Exemple pour un objet configState:
method configState_getObjects [] {"configId":"opsiclientd.event_gui_startup.active"}
[
{
"configId" : "opsiclientd.event_gui_startup.active",
"ident" : "opsiclientd.event_gui_startup.active;wanclient.vmnat.local",
"values" :
[
false
],
"objectId" : "wanclient.vmnat.local",
"type" : "ConfigState"
}
]

Note
Un objet configState ne peut tre cr sans objet un existant config auquel il fait rfrence.

auditHardwareOnHost (informations sur le matriel spcifique au client)

Dcrit les types de matriels dtects (y compris les valeurs spcifiques du client). Lide est que vous verrez ici les
donnes spcifiques du client et dans auditHardware une seule entre pour une carte rseau qui est utilis dans tous
vos ordinateurs.
Malheureusement, dans la ralit cette ide ne fonctionne pas comme vous pourriez le penser.
Exemple pour un objet auditHardwareOnHost:
method auditHardwareOnHost_getObjects [] {"hostId":"xpclient.vmnat.local","hardwareClass":"NETWORK_CONTROLLER","\
ipAddress":"172.16.166.101"}
[
opsi manual opsi version 4.0.3 31 / 175

{
"vendorId" : "1022",
"macAddress" : "00:0C:29:35:70:A7",
"hardwareClass" : "NETWORK_CONTROLLER",
"state" : 1,
"deviceType" : "PCI",
"subsystemVendorId" : "2000",
"ipEnabled" : "True",
"type" : "AuditHardwareOnHost",
"firstseen" : "2012-03-30 15:48:15",
"revision" : "10",
"hostId" : "xpclient.vmnat.local",
"vendor" : "Advanced Micro Devices (AMD)",
"description" : "Ethernetadapter der AMD-PCNET-Familie",
"subsystemDeviceId" : "1022",
"deviceId" : "2000",
"autoSense" : null,
"netConnectionStatus" : "Connected",
"maxSpeed" : null,
"name" : "Ethernetadapter der AMD-PCNET-Familie",
"serialNumber" : null,
"lastseen" : "2012-03-30 15:48:15",
"model" : null,
"ipAddress" : "172.16.166.101",
"adapterType" : "Ethernet 802.3"
},
{
"vendorId" : "1022",
"macAddress" : "00:0C:29:35:70:A7",
"hardwareClass" : "NETWORK_CONTROLLER",
"state" : 0,
"deviceType" : "PCI",
"subsystemVendorId" : "2000",
"ipEnabled" : "True",
"type" : "AuditHardwareOnHost",
"firstseen" : "2012-03-08 14:26:14",
"revision" : "10",
"hostId" : "xpclient.vmnat.local",
"vendor" : "VMware, Inc.",
"description" : "VMware Accelerated AMD PCNet Adapter",
"subsystemDeviceId" : "1022",
"deviceId" : "2000",
"autoSense" : null,
"netConnectionStatus" : "Connected",
"maxSpeed" : null,
"name" : "VMware Accelerated AMD PCNet Adapter",
"serialNumber" : null,
"lastseen" : "2012-03-10 14:47:15",
"model" : null,
"ipAddress" : "172.16.166.101",
"adapterType" : "Ethernet 802.3"
},
{
"vendorId" : "1022",
"macAddress" : "00:0c:29:35:70:a7",
"hardwareClass" : "NETWORK_CONTROLLER",
"state" : 0,
"deviceType" : null,
"subsystemVendorId" : "1022",
"ipEnabled" : null,
"type" : "AuditHardwareOnHost",
"firstseen" : "2012-02-29 15:43:21",
"revision" : "10",
"hostId" : "xpclient.vmnat.local",
"vendor" : "Advanced Micro Devices [AMD]",
"description" : "Ethernet interface",
"subsystemDeviceId" : "2000",
"deviceId" : "2000",
opsi manual opsi version 4.0.3 32 / 175

"autoSense" : "",
"netConnectionStatus" : "yes",
"maxSpeed" : null,
"name" : "79c970 [PCnet32 LANCE]",
"serialNumber" : "00:0c:29:35:70:a7",
"lastseen" : "2012-03-30 14:58:30",
"model" : "79c970 [PCnet32 LANCE]",
"ipAddress" : "172.16.166.101",
"adapterType" : ""
}
]

auditHardware (informations sur le matriel client indpendant)

Dcrit les types de matriels dtects (indpendante des valeurs spcifiques du client). Lide est que vous verrez ici
une seule entre pour une carte rseau qui est utilis dans tous vos ordinateurs.
Malheureusement, dans la ralit cette ide ne fonctionne pas comme vous pourriez le penser.
Exemple pour un objet auditHardware:
method auditHardware_getObjects [] {"hardwareClass":"NETWORK_CONTROLLER","vendorId":"1022"}
[
{
"vendorId" : "1022",
"deviceId" : "2000",
"maxSpeed" : null,
"vendor" : "Advanced Micro Devices [AMD]",
"name" : "79c970 [PCnet32 LANCE]",
"subsystemDeviceId" : "2000",
"deviceType" : null,
"subsystemVendorId" : "1022",
"autoSense" : "",
"model" : "79c970 [PCnet32 LANCE]",
"revision" : "10",
"type" : "AuditHardware",
"hardwareClass" : "NETWORK_CONTROLLER",
"adapterType" : "",
"description" : "Ethernet interface"
},
{
"vendorId" : "1022",
"deviceId" : "2000",
"maxSpeed" : null,
"vendor" : "VMware, Inc.",
"name" : "VMware Accelerated AMD PCNet Adapter",
"subsystemDeviceId" : "1022",
"deviceType" : "PCI",
"subsystemVendorId" : "2000",
"autoSense" : null,
"model" : null,
"revision" : "10",
"type" : "AuditHardware",
"hardwareClass" : "NETWORK_CONTROLLER",
"adapterType" : "Ethernet 802.3",
"description" : "VMware Accelerated AMD PCNet Adapter"
},
{
"vendorId" : "1022",
"deviceId" : "2000",
"maxSpeed" : null,
"vendor" : "Advanced Micro Devices (AMD)",
"name" : "Ethernetadapter der AMD-PCNET-Familie",
"subsystemDeviceId" : "1022",
"deviceType" : "PCI",
"subsystemVendorId" : "2000",
"autoSense" : null,
opsi manual opsi version 4.0.3 33 / 175

"model" : null,
"revision" : "10",
"type" : "AuditHardware",
"hardwareClass" : "NETWORK_CONTROLLER",
"adapterType" : "Ethernet 802.3",
"description" : "Ethernetadapter der AMD-PCNET-Familie"
},
{
"vendorId" : "1022",
"deviceId" : "2000",
"maxSpeed" : null,
"vendor" : "Advanced Micro Devices (AMD)",
"name" : "Ethernetadapter der AMD-PCNET-Familie",
"subsystemDeviceId" : "1022",
"deviceType" : "PCI",
"subsystemVendorId" : "2000",
"autoSense" : null,
"model" : null,
"revision" : "10",
"type" : "AuditHardware",
"hardwareClass" : "NETWORK_CONTROLLER",
"adapterType" : "Ethernet 802.3",
"description" : "Ethernetadapter der AMD-PCNET-Familie"
},
{
"vendorId" : "1022",
"deviceId" : "2000",
"maxSpeed" : null,
"vendor" : "Advanced Micro Devices (AMD)",
"name" : null,
"subsystemDeviceId" : "2000",
"deviceType" : "PCI",
"subsystemVendorId" : "1022",
"autoSense" : null,
"model" : "",
"revision" : null,
"type" : "AuditHardware",
"hardwareClass" : "NETWORK_CONTROLLER",
"adapterType" : null,
"description" : "Ethernetadapter der AMD-PCNET-Familie"
},
(....)
[

auditSoftwareOnClient (informations sur les logiciels client spcifiques)

Dcrit les types de logiciels dtects (y compris les valeurs spcifiques du client). Lide est que vous verrez ici les
donnes spcifiques du client et dans auditSoftware une seule entre pour un logiciel de bureau qui est utilis dans
tous vos ordinateurs.
Exemple pour un objet auditSoftwareOnClient:
method auditSoftwareOnClient_getObjects [] {"name":"jEdit 4.5.0","clientId":"xpclient.vmnat.local"}
[
{
"ident" : "jEdit 4.5.0;4.5.0;;;x86;xpclient.vmnat.local",
"licenseKey" : "",
"name" : "jEdit 4.5.0",
"uninstallString" : "\\\"C:\\\\Programme\\\\jEdit\\\\unins000.exe\\\"",
"usageFrequency" : -1,
"clientId" : "xpclient.vmnat.local",
"lastUsed" : "0000-00-00 00:00:00",
"subVersion" : "",
"language" : "",
"state" : 1,
"version" : "4.5.0",
opsi manual opsi version 4.0.3 34 / 175

"lastseen" : "2012-03-30 16:19:55",


"binaryName" : "",
"type" : "AuditSoftwareOnClient",
"firstseen" : "2012-03-30 16:19:55",
"architecture" : "x86"
}
]

auditSoftware (informations sur les logiciels client indpendants)

Dcrit les types de logiciels dtects (indpendante des valeurs spcifiques du client). Lide est que vous verrez ici une
seule entre pour un logiciel de bureau qui est utilis dans tous vos ordinateurs.
Exemple pour un objet auditSoftware:
method auditSoftware_getObjects [] {"name":"jEdit 4.5.0"}
[
{
"windowsDisplayVersion" : "4.5.0",
"ident" : "jEdit 4.5.0;4.5.0;;;x64",
"name" : "jEdit 4.5.0",
"windowsSoftwareId" : "jedit_is1",
"windowsDisplayName" : "jEdit 4.5.0",
"installSize" : -1,
"subVersion" : "",
"language" : "",
"version" : "4.5.0",
"architecture" : "x64",
"type" : "AuditSoftware"
},
{
"windowsDisplayVersion" : "4.5.0",
"ident" : "jEdit 4.5.0;4.5.0;;;x86",
"name" : "jEdit 4.5.0",
"windowsSoftwareId" : "jedit_is1",
"windowsDisplayName" : "jEdit 4.5.0",
"installSize" : -1,
"subVersion" : "",
"language" : "",
"version" : "4.5.0",
"architecture" : "x86",
"type" : "AuditSoftware"
}
]

auditSoftwareToLicensePool (gestion des licences)

Dcrit les regroupements de licences assigns quels motifs auditSoftware.


Exemple pour un objet auditSoftwareToLicensePool:
method auditSoftwareToLicensePool_getObjects [] {"licensePoolId":"win7-msdn-prof"}
[
{
"ident" : "Windows 7 Professional N;6.1;00376-165;de-DE;x64;win7-msdn-prof",
"name" : "Windows 7 Professional N",
"language" : "de-DE",
"subVersion" : "00376-165",
"licensePoolId" : "win7-msdn-prof",
"version" : "6.1",
"architecture" : "x64",
"type" : "AuditSoftwareToLicensePool"
},
{
opsi manual opsi version 4.0.3 35 / 175

"ident" : "Windows 7 Professional N;6.1;00376-165;de-DE;x86;win7-msdn-prof",


"name" : "Windows 7 Professional N",
"language" : "de-DE",
"subVersion" : "00376-165",
"licensePoolId" : "win7-msdn-prof",
"version" : "6.1",
"architecture" : "x86",
"type" : "AuditSoftwareToLicensePool"
}
]

softwareLicenseToLicensePool (gestion des licences)

Dcrit quels softwareLicenseId est affecte quels licensePoolId.


Exemple pour un objet softwareLicenseToLicensePool:
method softwareLicenseToLicensePool_getObjects [] {"licensePoolId":"win7-msdn-prof"}
[
{
"licensePoolId" : "win7-msdn-prof",
"softwareLicenseId" : "uib-msdn-win7-vol",
"ident" : "uib-msdn-win7-vol;win7-msdn-prof",
"licenseKey" : "12345-12345-12345-12345-3dbv6",
"type" : "SoftwareLicenseToLicensePool"
}
]

softwareLicense (gestion des licences)

Dcrit les licences logicielles existantes et leurs mta-donnes.


Exemple pour un objet softwareLicense:
method softwareLicense_getObjects [] {"id":"uib-msdn-win7-vol"}
[
{
"ident" : "uib-msdn-win7-vol;msdn-uib",
"maxInstallations" : 0,
"boundToHost" : null,
"expirationDate" : "0000-00-00 00:00:00",
"licenseContractId" : "msdn-uib",
"type" : "VolumeSoftwareLicense",
"id" : "uib-msdn-win7-vol"
}
]

licenseContract (gestion des licences)

Dcrit les contrats de licences existants et leurs mta-donnes.


Exemple pour un objet licenseContract:
method licenseContract_getObjects [] {"id":"msdn-uib"}
[
{
"ident" : "msdn-uib",
"description" : "",
"conclusionDate" : "2011-04-22 00:00:00",
"notificationDate" : "0000-00-00 00:00:00",
"notes" : "",
"expirationDate" : "0000-00-00 00:00:00",
"partner" : "Microsoft",
opsi manual opsi version 4.0.3 36 / 175

"type" : "LicenseContract",
"id" : "msdn-uib"
}
]

licenseOnClient (gestion des licences)

Dcrit quel licence est utilis par quel client.


Exemple pour un objet licenseOnClient:
method licenseOnClient_getObjects [] {"clientId":"win7client.vmnat.local"}
[
{
"softwareLicenseId" : "uib-msdn-win7-vol",
"ident" : "uib-msdn-win7-vol;win7-msdn-prof;win7client.vmnat.local",
"licenseKey" : "12345-12345-12345-12345-3dbv6",
"notes" : "",
"clientId" : "win7client.vmnat.local",
"licensePoolId" : "win7-msdn-prof",
"type" : "LicenseOnClient"
}
]

licensePool (gestion des licences)

Dcrit le pool de licences et quel produit opsi est attribue.


Exemple pour un objet licensePool:
method licensePool_getObjects [] {"id":"win7-msdn-prof"}
[
{
"ident" : "win7-msdn-prof",
"type" : "LicensePool",
"description" : "MSDN Keys",
"productIds" :
[
"win7",
"win7-x64"
],
"id" : "win7-msdn-prof"
}
]

5.1.3 Les objets spciaux

Note
Ce chapitre doit tre crit

5.2 Les mthodes opsi3

Ces mthodes sont encore disponibles en tant que anciennes mthodes, ce qui signifie que les appels ces mthodes
sont mappes aux nouvelles mthodes en interne.
Voici une courte liste de certaines mthodes avec une courte description. Ceci est principalement conu pour lorien-
tation et non pas comme une rfrence complte. La courte description ne doit pas ncessairement fournir toutes les
informations dont vous avez besoin pour utiliser cette mthode.
opsi manual opsi version 4.0.3 37 / 175

method addHardwareInformation hostId, info

Ajoute des informations sur le matriel de lordinateur <hostid>. Le hachage de <info> est pass. Les informations
existantes seront crases pour la correspondance des cls. Applicable uniquement pour les cls spciales.
method authenticated

Prouver si lauthentification sur le serveur a russi.


method checkForErrors

Test du backend pour la cohrence ( prsent uniquement disponible pour les fichiers backend).
method createClient clientName, domain, description=None, notes=None

Cre un nouveau client.


method createGroup groupId, members = [], description = ""

Cre un groupe de clients (tel quutilis par the opsi-Configed).


method createLicenseKey productId, licenseKey

Assigne une cl de licence (supplmentaires) pour le produit <productId>.


method createLocalBootProduct productId, name, productVersion, packageVersion, licenseRequired=0, setupScript="", \
uninstallScript="", updateScript="", alwaysScript="", onceScript="", priority=10, description="", advice="", \
productClassNames=(localBoot)

Cre un nouveau produit localBoot (produit opsi-winst).


method createNetBootProduct productId, name, productVersion, packageVersion, licenseRequired=0, setupScript="", \
uninstallScript="", updateScript="", alwaysScript="", onceScript="", priority=10, description="", advice="", \
productClassNames=(netboot)

Cre un nouveau produit netBoot (image de dmarrage).


method createOpsiBase

Pour usage interne, seulement avec le backend LDAP.


method createProduct productType, productId, name, productVersion, packageVersion, licenseRequired=0,setupScript="", \
uninstallScript="", updateScript="", alwaysScript="", onceScript="", priority=10, description="", advice="", \
productClassNames=""

Cre un nouveau produit.


method createProductDependency productId, action, requiredProductId="", requiredProductClassId="", requiredAction="", \
requiredInstallationStatus="", requirementType=""

Cre des dpendances du produit.


method createProductPropertyDefinition productId, name, description=None, defaultValue=None, possibleValues=[]

Cre les proprits du produit.


method createServer serverName, domain, description=None

Cre un nouveau serveur dans le backend LDAP.


method createServerProduct productId, name, productVersion, packageVersion, licenseRequired=0,setupScript="", \
uninstallScript="", updateScript="", alwaysScript="", onceScript="", priority=10, description="", advice="", \
productClassNames=(server)
opsi manual opsi version 4.0.3 38 / 175

Pas encore implment pour une utilisation future.


method deleteClient clientId

Supprime un client.
method deleteGeneralConfig objectId

Supprime une configuration client ou une configuration de domaine.


method deleteGroup groupId

Supprime un groupe de clients.


method deleteHardwareInformation hostId

Supprime toutes les informations sur le matriel de lordinateur <hostid>.


method deleteLicenseKey productId, licenseKey

Supprime une cl de licence pour le produit <productId>.


method deleteNetworkConfig objectId

Supprime la configuration rseau (Par exemple lentre dpt de partage) pour un client ou un domaine.
method deleteOpsiHostKey hostId

Supprime un pckey de la base de donnes pckey.


method deleteProduct productId

Supprime un produit de la base de donnes.


method deleteProductDependency productId, action, requiredProductId="", requiredProductClassId="", requirementType=""

Supprime les dpendances du produit.


method deleteProductProperties productId *objectId

Supprime toutes les proprits dun produit.


method deleteProductProperty productId property *objectId

Supprimer une seule proprit du produit.


method deleteProductPropertyDefinition productId, name
method deleteProductPropertyDefinitions productId

Supprime une seule proprit ou toutes les proprits du produit <productId>.


method deleteServer serverId

Supprime une configuration de serveur


method exit

Quitter opsi-admin.
method getBackendInfos_listOfHashes

Fournit des informations sur les backends disponibles sur le serveur de dpt opsi et qui dentre eux sont activs.
opsi manual opsi version 4.0.3 39 / 175

method getBootimages_list

Fournitures la liste des images de dmarrage disponibles.


method getClientIds_list serverId = None, groupId = None, productId = None, installationStatus = None, actionRequest = \
None

Fournit une liste de clients qui rpondent aux critres affects.


method getClients_listOfHashes serverId = None, groupId = None, productId = None, installationStatus = None, \
actionRequest = No

Fournit une longue liste de clients qui rpondent aux critres affects (avec la description, des notes et vu la dernire
fois pour chaque client).
method getDefaultNetBootProductId clientId

Fournit le produit netboot (par exemple: logiciel systme) qui sera install lorsque limage de dmarrage install est
attribu.
method getDomain hostId

Fournit le domaine.
method getGeneralConfig_hash objectId

Fournit la configuration gnrale dun client ou dun domaine.


method getGroupIds_list

Fournit la liste des groupes de clients enregistrs.


opsi-admin -d -S method auditHardwareOnHost_getObjects [] {"hostId":"<hostId"}

Fournit les informations matriel de lordinateur spcifi.


method getHostId hostname

Fournit lID hte du nom dhte spcifi.


method getHost_hash hostId

Liste des proprits de lordinateur spcifi.


method getHostname hostId

Fournit le nom dhte de lID hte spcifi.


method getInstallableLocalBootProductIds_list clientId

Fournit une liste de tous les produits localBoot qui pourraient tre installs sur le client.
method getInstallableNetBootProductIds_list clientId

Fournit une liste de tous les produits netBoot qui pourraient tre installs sur le client.
method getInstallableProductIds_list clientId

Fournit une liste de tous les produits qui pourraient tre installs sur le client.
method getInstalledLocalBootProductIds_list hostId
opsi manual opsi version 4.0.3 40 / 175

Fournit une liste de tous les produits localBoot qui sont installs sur le client.
method getInstalledNetBootProductIds_list hostId

Fournit une liste de tous les produits netBoot products qui sont installs sur le client ou sur le serveur.
method getInstalledProductIds_list hostId

Fournit une liste des produits installs pour un client ou un serveur.


method getIpAddress hostId

Fournit ladresse IP dun hte.


method getLicenseKey productId, clientId

Fournit une cl de licence disponibles du produit spcifi ou la cl de licence du produit qui est attribu au client.
method getLicenseKeys_listOfHashes productId

Fournit une liste de toutes les cls de licence pour le produit spcifi.
method getLocalBootProductIds_list

Fournit une liste de tous les produits localBoot connus (par exemple dans larbre LDAP).
method getLocalBootProductStates_hash clientIds = []

Fournit, pour tous les clients, ltat de linstallation et la requte daction de tous les produits localBoot.
method getMacAddresses_list hostId

Fournit ladresse MAC de lordinateur spcifi.


method getNetBootProductIds_list

Fournit une liste de tous les produits NetBoot.


method getNetBootProductStates_hash clientIds = []

Fournit pour tous les clients ltat de linstallation et la requte daction de tous les produits netBoot.
method getNetworkConfig_hash objectId

Fournit les configurations rseau spcifiques dun client ou dun domaine.


method getOpsiHostKey hostId

Fournit le pckey de lID hte spcifi.


method getPcpatchPassword hostId

Fournit le mot de passe pcpatch (crypt avec la pckey de hostId).


method getPossibleMethods_listOfHashes

Fournit la liste des mthodes appelables (approximativement comme dans ce chapitre).


method getPossibleProductActionRequests_list

Affiche la liste des demandes daction disponibles dans opsi.


method getPossibleProductActions_hash
opsi manual opsi version 4.0.3 41 / 175

Fournit les actions disponibles pour chaque produit (setup, deinstall , . . . .).
method getPossibleProductActions_list productId=softprod

Fournit la liste de toutes les actions (setup, deinstall,. . . .).


method getPossibleProductInstallationStatus_list

Fournit la liste de tous les tats dinstallation (installed, not_installed,. . . )


method getPossibleRequirementTypes_list

Fournit la liste des types dexigence du produit (before, after, . . . )


method getProductActionRequests_listOfHashes clientId

Fournit la liste des actions venir du client spcifie.


method getProductDependencies_listOfHashes productId = None

Fournit la liste des dpendances de tous les produits ou du produit spcifi.


method getProductIds_list productType = None, hostId = None, installationStatus = None

Fournit une liste de produits qui rpondent aux critres spcifis.


method getProductInstallationStatus_hash productId, hostId

Fournit ltat de linstallation pour le client et le produit spcifie.


method getProductInstallationStatus_listOfHashes hostId

Fournit ltat de linstallation du client spcifi.


method getProductProperties_hash productId, objectId = None

Fournit les proprits du produit pour le produit et le client spcifi.


method getProductPropertyDefinitions_hash

Fournit toutes les proprits connus du produit avec la description, les valeurs admises,. . .
method getProductPropertyDefinitions_listOfHashes productId

Fournit les proprits produit du produit spcifi avec la description, les valeurs admises,. . . .
method getProductStates_hash clientIds = []

Fournit ltat de linstallation et la requte daction de tous les produits (pour les clients spcifi).
method getProduct_hash productId

Fournit les mta-donnes du produit (description, version, . . . )


method getProvidedLocalBootProductIds_list serverId

Fournit une liste de produits localBoot disponibles sur le serveur spcifi.


method getProvidedNetBootProductIds_list serverId

Fournit une liste de produits netBoot disponibles sur le serveur spcifi.


method getServerId clientId
opsi manual opsi version 4.0.3 42 / 175

Fournit la opsi-configserver charge du client spcifie.


method getServerIds_list

Fournit une liste des opsi-configserver connus.


method getServerProductIds_list

Fournit une liste des produits serveur.


method getUninstalledProductIds_list hostId

Fournit la liste des produits qui sont dsinstalls.


method powerOnHost mac

Envoyer un signal WakeOnLAN ladresse MAC spcifie.


method setBootimage bootimage, hostId, mac=None

Dfinir une image de dmarrage pour le client spcifi.


method setGeneralConfig config, objectId = None

Dfinir la GeneralConfig pour un client ou un domaine.


method setHostDescription hostId, description

Dfinir une description pour un client.


method setHostLastSeen hostId, timestamp

Rgler lhorodatage vu la dernire fois dun client.


method setHostNotes hostId, notes

Dfinir les notes pour un client.


method setMacAddresses hostId, macs

Dfinir ladresse MAC du client dans la base de donnes.


method setNetworkConfig objectId, serverId=, configDrive=, configUrl=, depotDrive=, depotUrl=, utilsDrive=,\
utilsUrl=, winDomain=, nextBootServiceURL=

Dfinir le rseau de donnes spcifi pour opsi-client-agent pour un client.


method setOpsiHostKey hostId, opsiHostKey

Dfinir le pckey pour un ordinateur.


method setPXEBootConfiguration hostId *args

Dfinir le pipe pour le dmarrage PXE avec *args dans append-List.


method setPcpatchPassword hostId password

Dfinir le mot de passe crypt(!) pour hostId


method setProductActionRequest productId, clientId, actionRequest

Dfinir une requte daction pour le client et le produit spcifis.


opsi manual opsi version 4.0.3 43 / 175

method setProductInstallationStatus productId, hostId, installationStatus, policyId="", licenseKey=""

Dfinir un tat de linstallation pour le client et le produit spcifis.


method setProductProperties productId, properties, objectId = None

Dfinir les proprits de produit pour le produit spcifi (et le client spcifi).
method unsetBootimage hostId

Annuler le dmarrage de limage de boot pour le client spcifi.


method unsetPXEBootConfiguration hostId

Supprimer le pipe pour le dmarrage PXE.


method unsetProductActionRequest productId, clientId

Dfinir action request none.

5.3 Les extensions backend

Dans opsi 4 nous avons la possibilit dtendre les mthodes de base de opsi 4 avec ses propres mthodes supplmentaires
qui utilisent les mthodes de base de opsi 4. Ceci est fait par exemple pour mettre en uvre les mthodes hrits de
opsi 3 ou pour crer des mthodes qui sadapte mieux aux besoins de opsi-configed.
Ces extenstions doivent tre rdig en code Python dans le rpertoire /etc/opsi/backendManager/extend.d.

6 Activation des modules non libres

Mme si opsi est open source, il y a certains composants qui ne sont pas libres ce moment. ce moment (Mai 2011)
les composantes suivantes de opsi ne sont pas libres:
gestion des licences
backend MySQL pour les donnes de configuration
le support pour les groupes de clients hirarchiss
lextension WAN/VPN
la haute disponibilit et la rpartition de charge (pas encore implment)
Logiciels la demande
Ces composants sont dvelopps dans un projet de co-financement ce qui signifie que jusqu ce que les cots de
dveloppement complet sont pays par les co-financeurs, leurs utilisation est seulement autoris aux les co-financeurs
ou des fins dvaluation. Une fois que les cots de dveloppement seront gagn nous allons donner ces modules
tout le monde gratuitement. Pour contrler lutilisation de ces composants jusqu ce quils soient libre il y a un fichier
dactivation /etc/opsi/modules, qui est protg contre les modifications via la signature lectronique. Si ce fichier
dactivation nexiste pas, seulement les parties libre de opsi fonctionneront.
Si vous avez besoin pour lvaluation un fichier dactivation temporaire valide contactez info@uib.de. Si vous devenez
un cofinanceur, vous obtiendrez un fichier dactivation illimite. Copiez ce fichier en tant que root dans /etc/opsi/
modules. Si cela est fait, excutez:
opsi-setup --set-rights /etc/opsi
opsi manual opsi version 4.0.3 44 / 175

Vous pouvez vrifier votre tat dactivation avec lune des mthodes suivantes:
Utilisant opsi-configed choisissez le menu Help/opsi-Module qui vous montre une fentre avec ltat dactivation.

Display of activation state in opsi-configed

Figure 38 Affichage de ltat dactivation dans opsi-configed

En ligne de commande vous pouvez utiliser la commande opsi-admin avec la mthode backend_info. (Remarque:
Ne donnez jamais votre fichier dactivation ou la sortie de cette commande des tierces personnes sans supprimer la
signature).
opsi-admin -d method backend_info
{
"opsiVersion" : "3.99.0.0",
"modules" :
{
"customer" : "uib GmbH",
"vista" : true,
"vpn" : true,
"license_management" : true,
"expires" : "never",
"valid" : true,
"multiplex" : true,
"signature" : "Ceci nest pas une signature authentique",
"treeview" : true,
"mysql_backend" : true
}
}

7 opsi-client-agent

7.1 Prsentation

Pour rendre la distribution de logiciels grable pour ladministrateur systme, un ordinateur client doit remarquer que
les paquets de nouveaux logiciels ou mises jour sont disponibles et les installer sans linteraction de lutilisateur. Il
est important de rendre linteraction de lutilisateur compltement obsoltes, comme linstallation peut fonctionner
sans surveillance, et que lutilisateur ne puisse pas arrter linstallation.
Ces exigences sont mises en uvre dans opsi par le opsi-client-agent:
Du ct du client le service opsiclientd examine habituellement au moment du dmarrage, avant que lutilisateur se
connecte, si une mise jour doit tre install pour ce client.
Sil y a des paquets logiciels installer sur le client, le programme de traitement de script opsi-winst est mis en marche
pour faire le travail dinstallation. Le serveur fournit tous les scripts et fichiers dinstallation de logiciels sur un partage
de fichiers. ce moment lutilisateur na aucune chance dinterfrer avec le processus dinstallation.
En option, le module supplmentaire loginblocker peut tre install pour empcher une connexion de lutilisateur avant
que la fin de la procdure dinstallation est atteinte.
Avant que tout logiciel puisse tre install avec le programme opsi-winst, il doit tre prpar comme un opsi-product-
package. Pour plus de dtails voir le chapitre Lintgration des nouveaux paquets logiciels dans le dploiement de
logiciels opsi depuis le manuel getting started.

7.2 Rpertoires de the opsi-client-agent

opsi-client-agent est install dans %ProgramFiles%\opsi.org\opsi-client-agent.


opsi manual opsi version 4.0.3 45 / 175

Ce rpertoire contient tous les programmes de opsi-client-agent comme par exemple opsiclientd, opsiclientd noti-
fier, opsi-winst et des bibliothques ncessaires. Vous trouverez ici aussi les fichiers de configuration et les modles
graphiques (skins) des programmes mentionns.
Le rpertoire %ProgramFiles%\opsi.org\opsi-client-agent est protg contre toute manipulation par les utilisa-
teurs sans privilges dadministrateur.
Le rpertoire %ProgramFiles%\opsi.org\opsi-client-agent\opsiclientd contient le fichier de configuration de
opsiclientd et vous avez besoin des privilges dadministrateur pour le lire.
Il y a aussi le rpertoire c:\opsi.org.
Ce rpertoire est utilis (pour le moment) pour mettre en cache les fichiers dinstallation et les donnes (voir lextension
WAN). A lavenir, il aura encore plus de fonctions contenant des fichiers journaux.
Vous devez disposer de privilges dadministrateur pour lire le rpertoire c:\opsi.org.
Vous trouverez les fichiers de log de opsi-client-agent dans c:\tmp.

7.3 Le service: opsiclientd

opsiclientd est le cur de opsi-client-agent. opsiclientd dbute au moment du dmarrage et sexcute avec des privilges
dadministrateur.
Les caractristiques importantes sont:
Le contrle bas sur lvnement:
Lactivit de lagent client opsi (opsiclientd) peut tre dclenche par diffrents vnements dans le systme client.
Daprs cet tat de fait, le dbut de linstallation peut tre dclenche par le systme de dmarrage dvnements
ou peut tre configur pour tre dclench par dautres systmes dvnements.
Contrle via le service web:
Cette interface est utilise pour pousser les installations et aussi des fins de maintenance.
La configuration distance:
Les donnes de configuration pour les clients peuvent tre modifies (globalement ou spcifique au client) sur le
serveur en ditant le Host parameters.
opsi-client-agent est constitu de plusieurs composants :
opsiclientd: le principal service
opsiclientd notifier: fentre dinformation et de communication
opsi-login-blocker: bloque la connexion de lutilisateur jusqu ce que linstallation est termine

7.3.1 Installation

En cas dinstallation automatique du systme dexploitation avec opsi (pas bas sur une image), opsi-client-agent sera
install automatiquement.
Vous pouvez dfinir la demande daction uninstall pour dsinstaller opsi-client-agent.
Pour une installation ultrieure sur un systme Windows existant ou des fins de rparation voir le manuel getting
started. Section 7.5.

7.3.2 opsiclientd

Composante essentielle de opsi-client-agent est le service opsiclientd. Ce service sexcute au moment du dmarrage.
opsiclientd a les tches suivantes:
Tandis que le systme dmarre et opsiclientd est en attente de linterface graphique, block_login_notifier est lanc
et affiche un cadenas dans le coin suprieur droit de lcran.
Mise en action si lvnement de configuration a lieu. Dans le cas dune action opsiclientd contacte le serveur opsi
via le service web (JSON-RPC) et demande les donnes de configuration et les actions requises.
Lvnement par dfaut est gui_startup qui se dclenche au moment du dmarrage avant le login utilisateur.
opsi manual opsi version 4.0.3 46 / 175

Cre un canal de communication nomm qui est utilis par opsi-login-blocker pour demander via JSON-RPC
opsiclientd quand dbloquer la connexion.
Dmarrer opsiclientd notifier comme un fil dinformation et dinteraction avec lutilisateur.
Si ncessaire, il se connecte opsi-depot pour mettre jour linstallation locale de opsi-winst et puis il commence
traiter les action requests (Installations de paquets logiciels).

7.3.3 opsiclientd notifier

opsiclientd notifier met en oeuvre linteraction avec lutilisateur. Il affiche des messages dtat et peut donner la
possibilit dinteragir avec le processus.
Il existe diffrentes situations o opsiclientd notifier deviendra actif de diffrentes faons:
blocking notifier
Indique que opsi-login-blocker bloque la connexion.

Figure 39 opsiclientd notification blocklogin

event notifier
Affiche des informations sur lvnement en cours.

Figure 40 opsiclientd notification vnement

action notifier
Montre ltat de traitement de lvnement.
opsi manual opsi version 4.0.3 47 / 175

Figure 41 opsiclientd notification de laction

shutdown notifier
Donne des informations sur le redmarrage / arrt demand. (si shutdown_warning_time > 0)

Figure 42 opsiclientd notification darrt

Attention
Les noms et les fonctions de notification ont chang de opsi 4.0 opsi 4.0.1.
Le notificateur dvnement de opsi 4.0 nexiste plus.
Le notificateur dvnement de opsi 4.0.1 est gal au notifiant daction de opsi 4.0.
Le notificateur daction de opsi 4.0.1 a presque la mme fonctionnalit du notificateur dvnement de opsi 4.0,
mais il ne sera activ que sil existe une action request.

7.3.4 opsi-login-blocker

opsi-login-blocker pour NT5 (Win2K/WinXP) est mis en oeuvre en tant que GINA (opsigina.dll). GINA attend jusqu
ce que les rapports opsiclientd, que tous product actions sont termins ou, si opsiclientd nest pas joignable, jusqu
ce que le dlai dattente de connexion opsiclientd est atteint (normalement 120 secondes). Puis le contrle intgral
est transmis lautre GINA, qui est normalement msgina.dll.
opsi-login-blocker pour NT6 (Vista/Win7) est mis en oeuvre en tant que filtre fournisseur dinformations didentifica-
tion (OpsiLoginBlocker.dll). Ce "filtre fournisseur dinformations didentification" bloque tous les credential providers
jusqu ce que les rapports opsiclientd, que tous product actions sont termins ou, si opsiclientd nest pas joignable,
jusqu ce que le dlai dattente de connexion opsiclientd est atteint (normalement 120 secondes).

7.3.5 Droulement du processus

Le fonctionnement de opsiclientd peut tre configur dans de nombreux dtails. Pour comprendre ces options de
configuration, il est ncessaire de comprendre la squence de traitement. Voici un aperu du flux de travail dun
standard event comme event_gui_startup.
opsi manual opsi version 4.0.3 48 / 175

Figure 43 flux de travail simplifi dun standard event

Les paramtres les plus importants ont les relations suivantes:

ASTUCE
Sil y a une erreur lors de la connexion opsi-configserver, les logs de ces problmes ne peuvent pas tre envoys au
serveur. Mais vous pouvez trouver les logs dans le fichier journal locale opsiclientd.log dans le rpertoire des journaux
(c:\tmp) sur le client.

1. Si un vnement se dclenche, event_notifier_command est lanc.


Maintenant, opsiclientd essaie datteindre opsi-configserver en utilisant ladresse url.
Si, aprs user_cancelable_after secondes il nexiste toujours pas de connexion tablie, alors opsiclientd notifier
activera un bouton abandonner. Si aucune connexion na pu tre tablie dans connection_timeout secondes, le
processus de connexion opsiclientd sera interrompue et lvnement se terminera par un message derreur. Pour
viter linterruption de la part de lutilisateur, rglez user_cancelable_after = connection_timeout .
2. Aprs une connexion russie au opsi-configserver, opsiclientd vrifie sil y a une action requests pour ce client.
Si il y a des action requests et action_warning_time > 0, action_notifier_command sera excut.
Cest normalement opsiclientd notifier, qui affiche maintenant la liste des action requests pour ce client pendant
action_warning_time secondes.
Si action_warning_time = 0 (par dfaut) alors action_notifier_command ne sera pas excut.
opsi manual opsi version 4.0.3 49 / 175

Vous pouvez permettre lutilisateur de suspendre le processus en ce moment en mettant action_user_cancel


able >= 0. Lutilisateur peut suspendre les actions jusqu action_user_cancelable fois. Apres action_user
_cancelable suspensions en squence ou si action_user_cancelable = 0 lutilisateur nobtient pas la facult
de suspendre les actions.
Dans tous les cas, il y aura un bouton qui permettra lutilisateur de dmarrer les installations immdiatement,
sans attendre le dcompte des action_warning_time secondes. Les messages affichs par opsiclientd notifier peut
tre configur avec les options action_message ou action_message[lang] . Ces messages peuvent contenir des
espaces rservs %action_user_cancelable% (nombre total de permission de suspensions) et %action_cancel
_counter% (nombre de suspensions dj utiliss par lutilisateur).
Si les actions ne sont pas suspendues par lutilisateur, action_cancel_counter se rinitialise et opsi-winst est
excute pour le traitement de action requests.
3. Si opsi-winst se termine par une demande de redmarrage ou darrt, shutdown_notifier_command sera excut
si shutdown_warning_time > 0.
shutdown_notifier_command montre pendant shutdown_warning_time secondes un message indiquant que le
client va tre redmarr. Si shutdown_user_cancelable > 0 lutilisateur peut suspendre le redmarrage jusqu
shutdown_user_cancelable fois en squence. Si lutilisateur suspend le redmarrage, shutdown_notifier_c
ommand sera redmarr aprs shutdown_warning_repetition_time. shutdown_notifier_command affiche un
message qui peut tre configur par shutdown_warning_message ou shutdown_warning_message[lang]. Ce
message peut contenir les espaces rservs %shutdown_user_cancelable% (nombre maximum de permission de
suspensions) et %shutdown_cancel_counter% (nombre de suspensions dj fait par lutilisateur).
Si le client est redmarr (par lutilisateur ou opsi-client-agent) %shutdown_cancel_counter% sera rinitialis.

ASTUCE
La squence de traitement des vnements et actions de lutilisateur sont visualises sous forme de graphique chronologique
la page dinformation de opsiclientd.

(Section 7.3.8).
opsi manual opsi version 4.0.3 50 / 175

Figure 44 le flux de travail complt dun vnement


opsi manual opsi version 4.0.3 51 / 175

7.3.6 Configuration

Configuration de diffrents vnements

Pour rpondre aux exigences des diffrentes situations dans lesquelles opsi-client-agent devient actif, une configuration
un peu complexe est ncessaire. Afin de rduire la complexit, le fichier de configuration utilise quelque chose comme
hritage.
Dans lentte de la section de configuration de opsiclientd par exemple [event_<config-id>] introduit une nouvelle
section de configuration des vnements. Une configuration dvnement peut tre dsactive en rglant loption de
section active =false.
Il existe diffrents types de configurations dvnements (type).
Il y a event configuration templates (type = template).
Les configurations dvnements peuvent hriter les configurations dun autre vnement. Dans ce cas, loption super
points lautre vnement pour hriter de tous ses paramtres ( lexclusion du paramtre active). Ces paramtres
hrits peuvent tre remplaces par des paramtres locaux dans la section vnement en cours. Donc une section
vnement a besoin uniquement des paramtres qui sont diffrents de lvnement super.
Le rglage dun vnement active =false ne change rien dans le processus dhritage.
Les autres types dvnements sont:

gui startup
Un vnement gui startup dbute lors du dmarrage du client et le chargement de linterface graphique utilisateur
(GUI). Cest lvnement le plus utilis, dfinie comme active dans la configuration par dfaut.
custom
Les configurations dvnement du type custom sont dclenchs par un vnement wql. Un vnement wql est
dfini par la dclaration correspondante wql dans la configuration des vnements. Si la dclaration wql est vide,
lvnement ne sera jamais dclench, mais peut tre excute partir de linterface Web interactive.
user login
sera dclenche lors de la connexion dun utilisateur.
timer
sera dclenche toutes les interval secondes.
sync completed
sera dclenche si la synchronisation des configurations (sync_config_from_server) ou des produits (cache_pr
oducts) est complt.
sw on demand
sera dclenche par lutilisateur choisissant Dmarrer les actions maintenant dans la page Web software-on-
demand de opsiclientd. Elle ne sera jamais dclenche si software-on-Demand nest pas utilis.
Il y a des Preconditions
Preconditions dfinit des tats spciaux du systme (par exemple un utilisateur est connect). Dans la configuration
de opsiclientd une entte de section de la forme [precondition_<precondition-id>] dbute la dclaration dune
Precondition. Une Precondition est vrai, si toutes les options dclares sont vraies. Une option non dclare (mais
possible) est suppos comme vraie.
Les options possibles pour Preconditions sont:
user_logged_in: est vrai si un utilisateur est actuellement connect.
config_cached: est vrai si la mise en cache des donnes de configuration est termine (voir: sync_config_from
_server).
products_cached: est vrai si la mise en cache des fichiers du produit est termine (voir: cache_products).
Une Precondition peut tre affect une configuration dvnement.
Si il y a une Precondition dans un entte de configuration des vnements, il doit galement avoir une configuration
pour cet vnement sans precondition. La configuration des vnements avec condition pralable hrite de tous les
paramtres de la configuration des vnements sans precondition.
Si lvnement est dclench, dabord, il sera vrifi que preconditions sont vraies. Sil ny a pas de precondition
vraie, la configuration sans precondition est utilis. Si une precondition est vraie, la configuration utilis est li
cette precondition. Si plus dune des preconditions sont vraies, la configuration dvnement la plus spcifique est
utilise (qui est la configuration avec les options les plus appariement).
opsi manual opsi version 4.0.3 52 / 175

Un petit exemple pour mieux comprendre:


Lors de linstallation du logiciel, il peut tre ncessaire de redmarrer lordinateur. Sil y a actuellement un utilisateur
connect, vous devriez le mettre en garde contre le redmarrage en attente. Cet avertissement devrait avoir un dlai
dattente et il peut tre judicieux de demander lutilisateur, si le redmarrage devrait tre annule (pour le moment).
Si aucun utilisateur nest connect, na aucun sens de demander et dattendre une rponse. Donc, dans ce cas, le
redmarrage devrait avoir lieu immdiatement.
Pour faire face ces diffrentes situations, il faut configurer event_on_demand de la faon suivante:
Nous dfinissons une Precondition user_logged_in qui se ralise si un utilisateur est connect au systme (user_l
ogged_in =true).
Dans la configuration par dfaut de lvnement event_on_demand (sans aucune Precondition) on met shutdown_w
arning_time =0 (redmarrage immdiat sans avertissement).
Dans la configuration event_on_demand{user_logged_in} on met shutdown_warning_time =300 (avertissement
avec 300 secondes de dlai dattente).

Configuration via le fichier de configuration

Le fichier de configuration est dans:


c:\program files\opsi.org\opsi-client-agent\opsiclientd\opsiclientd.conf

Attention
Ce fichier de configuration est cod en UTF-8.
Toute modification laide des diteurs qui ne prennent pas en charge ce type de codage (par exemple notepad.exe)
peut dtruire tout trma dans ce fichier.

La configuration crite dans ce fichier peut tre modifi par des donnes de configuration diffrentes, qui viennent par
le biais du service Web aprs une connexion russie au serveur opsi.
Un exemple de opsiclientd.conf:
; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
; = configuration file for opsiclientd =
; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - global settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[global]

# Location of the log file.


log_file = c:\\tmp\\opsiclientd.log

# Set the log (verbosity) level


# (0 <= log level <= 9)
# 0: nothing, 1: essential, 2: critical, 3: errors, 4: warnings, 5: notices
# 6: infos, 7: debug messages, 8: more debug messages, 9: passwords
log_level = 4

# Client id.
host_id =

# Opsi host key.


opsi_host_key =

# Verify opsi server certs


verify_server_cert = false

# Verify opsi server certs by ca


verify_server_cert_by_ca = false
opsi manual opsi version 4.0.3 53 / 175

# On every daemon startup the user login gets blocked


# If the gui starts up and no events are being processed the login gets unblocked
# If no gui startup is noticed after <wait_for_gui_timeout> the login gets unblocked
# Set to 0 to wait forever
wait_for_gui_timeout = 120

# Application to run while blocking login


block_login_notifier = %global.base_dir%\\notifier.exe -s notifier\\block_login.ini

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - config service settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[config_service]
# Service url.
# http(s)://<opsi config server address>:<port>/rpc
url = https://opsi.uib.local:4447/rpc

# Conection timeout.
connection_timeout = 30

# The time in seconds after which the user can cancel the connection establishment
user_cancelable_after = 30

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - depot server settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[depot_server]

# Depot server id
depot_id =

# Depot url.
# smb://<depot address>/<share name>/<path to products>
url =

# Local depot drive


drive =

# Username that is used for network connection [domain\]<username>


username = pcpatch

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - cache service settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[cache_service]
# Maximum product cache size in bytes
product_cache_max_size = 5000000000

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - control server settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[control_server]

# The network interfaces to bind to.


# This must be the IP address of an network interface.
# Use 0.0.0.0 to listen to all interfaces
interface = 0.0.0.0

# The port where opsiclientd will listen for HTTPS rpc requests.
port = 4441

# The location of the server certificate.


ssl_server_cert_file = %global.base_dir%\\opsiclientd\\opsiclientd.pem

# The location of the server private key


ssl_server_key_file = %global.base_dir%\\opsiclientd\\opsiclientd.pem

# The location of the static files


opsi manual opsi version 4.0.3 54 / 175

static_dir = %global.base_dir%\\opsiclientd\\static_html

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - notification server settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[notification_server]

# The network interfaces to bind to.


# This must be the IP address of an network interface.
# Use 0.0.0.0 to listen to all interfaces
interface = 127.0.0.1

# The first port where opsiclientd will listen for notification clients.
start_port = 44000

# Port for popup notification server


popup_port = 45000

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - opsiclientd notifier settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[opsiclientd_notifier]

# Notifier application command


command = %global.base_dir%\\notifier.exe -p %port% -i %id%

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - opsiclientd rpc tool settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[opsiclientd_rpc]

# RPC tool command


command = %global.base_dir%\\opsiclientd_rpc.exe "%global.host_id%" "%global.opsi_host_key%" "%control_server.port%"

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - action processor settings -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[action_processor]
# Locations of action processor
local_dir = %global.base_dir%\\opsi-winst
remote_dir = opsi-winst\\files\\opsi-winst
filename = winst32.exe

# Action processor command


command = "%action_processor.local_dir%\\%action_processor.filename%" /opsiservice "%service_url%" /clientid %global.\
host_id% /username %global.host_id% /password %global.opsi_host_key%

# Load profile / environment of %run_as_user%


create_environment = false

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - events -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[event_default]
; === Event configuration
# Type of the event (string)
type = template
# Interval for timer events in seconds (int)
interval = -1
# Maximum number of event repetitions after which the event will be deactivated (int, -1 = forever)
max_repetitions = -1
# Time in seconds to wait before event becomes active (int, 0 to disable delay)
activation_delay = 0
# Time in seconds to wait before an event will be fired (int, 0 to disable delay)
notification_delay = 0
# Event notifier command (string)
event_notifier_command = %opsiclientd_notifier.command% -s notifier\\event.ini
# The desktop on which the event notifier will be shown on (current/default/winlogon)
opsi manual opsi version 4.0.3 55 / 175

event_notifier_desktop = current
# Block login while event is been executed (bool)
block_login = false
# Lock workstation on event occurrence (bool)
lock_workstation = false
# Logoff the current logged in user on event occurrence (bool)
logoff_current_user = false
# Get config settings from service (bool)
get_config_from_service = true
# Store config settings in config file (bool)
update_config_file = true
# Transmit log file to opsi service after the event processing has finished (bool)
write_log_to_service = true
# Shutdown machine after action processing has finished (bool)
shutdown = false
# Reboot machine after action processing has finished (bool)
reboot = false

; === Sync/cache settings


# Sync configuration from local config cache to server (bool)
sync_config_to_server = false
# Sync configuration from server to local config cache (bool)
sync_config_from_server = false
# Sync configuration from local config cache to server after action processing (bool)
post_sync_config_to_server = false
# Sync configuration from server to local config cache after action processing (bool)
post_sync_config_from_server = false
# Work on local config cache
use_cached_config = false
# Cache products for which actions should be executed in local depot cache (bool)
cache_products = false
# Maximum transfer rate when caching products in byte/s (int, 0 = no limit)
cache_max_bandwidth = 0
# Dynamically adapt bandwith to other network traffic (bool)
cache_dynamic_bandwidth = false
# Work on local depot cache
use_cached_products = false

; === Action notification (if product actions should be processed)


# Time in seconds for how long the action notification is shown (int, 0 to disable)
action_warning_time = 0
# Action notifier command (string)
action_notifier_command = %opsiclientd_notifier.command% -s notifier\\action.ini
# The desktop on which the action notifier will be shown on (current/default/winlogon)
action_notifier_desktop = current
# Message shown in the action notifier window (string)
action_message = Starting to process product actions. You are allowed to cancel this event a total of %\
action_user_cancelable% time(s). The event was already canceled %state.action_processing_cancel_counter% time(s).
# German translation (string)
action_message[de] = Starte die Bearbeitung von Produkt-Aktionen. Sie knnen diese Aktion insgesamt %\
action_user_cancelable% mal abbrechen. Die Aktion wurde bereits %state.action_processing_cancel_counter% mal \
abgebrochen.
# Number of times the user is allowed to cancel the execution of actions (int)
action_user_cancelable = 0

; === Action processing


# Should action be processed by action processor (bool)
process_actions = true
# Type of action processing (default/login)
action_type = default
# Update the action processor from server before starting it (bool)
update_action_processor = true
# Command which should be executed before start of action processor
pre_action_processor_command =
# Action processor command (string)
action_processor_command = %action_processor.command%
# The desktop on which the action processor command will be started on (current/default/winlogon)
action_processor_desktop = current
opsi manual opsi version 4.0.3 56 / 175

# Action processor timout in seconds (int)


action_processor_timeout = 10800
# Command which should be executed before after action processor has ended
post_action_processor_command =

; === Shutdown notification (if machine should be shut down or rebooted)


# Process shutdown requests from action processor
process_shutdown_requests = true
# Time in seconds for how long the shutdown notification is shown (int, 0 to disable)
shutdown_warning_time = 0
# Shutdown notifier command (string)
shutdown_notifier_command = %opsiclientd_notifier.command% -s notifier\\shutdown.ini
# The desktop on which the action notifier will be shown on (current/default/winlogon)
shutdown_notifier_desktop = current
# Message shown in the shutdown notifier window (string)
shutdown_warning_message = A reboot is required to complete software installation tasks. You are allowed to delay this \
reboot a total of %shutdown_user_cancelable% time(s). The reboot was already delayed %state.\
shutdown_cancel_counter% time(s).
# German translation (string)
shutdown_warning_message[de] = Ein Neustart wird bentigt um die Software-Installationen abzuschliessen. Sie knnen \
diesen Neustart insgesamt %shutdown_user_cancelable% mal verschieben. Der Neustart wurde bereits %state.\
shutdown_cancel_counter% mal verschoben.
# Number of times the user is allowed to cancel the shutdown (int)
shutdown_user_cancelable = 0
# Time in seconds after the shutdown notification will be shown again after the user has canceled the shutdown (int)
shutdown_warning_repetition_time = 3600

[event_gui_startup]
super = default
type = gui startup
name = gui_startup
block_login = true

[event_gui_startup{user_logged_in}]
name = gui_startup
shutdown_warning_time = 300
block_login = false

[event_gui_startup{cache_ready}]
use_cached_config = true
use_cached_products = true
action_user_cancelable = 3
action_warning_time = 60

[event_on_demand]
super = default
type = custom
name = on_demand

[event_on_demand{user_logged_in}]
name = on_demand
shutdown_warning_time = 300

[event_software_on_demand]
super = default
type = sw on demand

[event_sync]
super = default
type = template
process_actions = false
event_notifier_command =
sync_config_to_server = true
sync_config_from_server = true
cache_products = true
cache_dynamic_bandwidth = true

[event_timer]
opsi manual opsi version 4.0.3 57 / 175

super = sync
type = timer
active = false
interval = 3600

[event_net_connection]
super = sync
type = custom
active = false
wql = SELECT * FROM __InstanceModificationEvent WITHIN 2 WHERE TargetInstance ISA Win32_NetworkAdapter AND \
TargetInstance.NetConnectionStatus = 2

[event_sync_completed]
super = default
type = sync completed
event_notifier_command =
process_actions = false
get_config_from_service = false
write_log_to_service = false

[event_sync_completed{cache_ready_user_logged_in}]
reboot = true
shutdown_user_cancelable = 10
shutdown_warning_time = 300

[event_sync_completed{cache_ready}]
reboot = true

[event_user_login]
super = default
type = user login
action_type = login
active = false
message = Starting to process user login actions.
message[de] = Beginne mit der Verarbeitung der Benutzer-Anmeldungs-Aktionen.
block_login = false
process_shutdown_requests = false
get_config_from_service = false
update_config_file = false
write_log_to_service = false
update_action_processor = false
action_notifier_command = %opsiclientd_notifier.command% -s notifier\\userlogin.ini
action_notifier_desktop = default
action_processor_command = %action_processor.command% /usercontext %event.user%
action_processor_desktop = default
action_processor_timeout = 300

[precondition_user_logged_in]
user_logged_in = true

[precondition_cache_ready]
config_cached = true
products_cached = true

[precondition_cache_ready_user_logged_in]
user_logged_in = true
config_cached = true
products_cached = true

Configuration via le web service (Host Parameter)

La configuration de opsiclientd peut tre modifi par longlet Rseau et paramtres supplmentaires dans linterface
de gestion OPSI.
Les entres dans Rseau et paramtres supplmentaires doivent tre selon les modes suivants:
opsi manual opsi version 4.0.3 58 / 175

opsiclientd.<nom de la section>.<nom de la cl>


Exemple:
opsiclientd.event_gui_startup.action_warning_time =20
dfinie dans le fichier configuration opsiclientd.conf dans la section [event_gui_startup] la valeur de action_w
arning_time 20.
La figure ci-dessous montre comment changer la configuration gnrale du serveur via opsi-configed

Figure 45 Rglage de la configuration du serveur par dfaut pour opsiclientd

Utilisant le menu contextuel, vous pouvez choisir ajouter une proprit pour dfinir une nouvelle paire cl/valeur.
Pour supprimer un dfaut du serveur, utilisez loutil opsi-admin:
Exemple:
opsi-admin -d method config_delete "opsiclientd.event_gui_startup.action_warning_time"

Il est galement possible de manipuler ces entres spcifiquement pour un client via opsi-configed.
Pour supprimer une entre spcifique au client, utilisez loutil opsi-admin:
Exemple:
@opsi-admin> method configState_delete "opsiclientd.event_gui_startup.action_warning_time" "myclient.uib.local"
opsi manual opsi version 4.0.3 59 / 175

Figure 46 configuration spcifique au client opsiclientd via opsi-configed

7.3.7 Journalisation

opsiclientd ecrit ces logs dans:


c:\tmp\opsiclientd.log.
Toutes les informations du journal seront transfrs opsi-configserver via le web service. Au niveau du serveur
vous trouverez ces infos dans /var/log/opsi/clientconnect/<ip-ou-nom-du-client>.log. Ils sont prsents dans
opsiconfiged longlet Journaux systmes / clientconnect.
Chaque ligne du journal a le motif:
[<log level>] [<time stamp>] [message source] message.
Il y a les niveaux de journalisation suivants:
# Set the log ( verbosity ) level
# (0 <= log level <= 9)
# 0: rien , 1: essentiel , 2: critique , 3: erreurs , 4: avertissements , 5: notices
# 6: infos , 7: messages de dbogage , 8: plus de messages de dbogage , 9: mots de passe

Exemple:
(...)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config sync_completed{cache_ready} added to event \
generator sync_completed (Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config gui_startup added to event generator \
gui_startup (Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config gui_startup{cache_ready} added to event \
generator gui_startup (Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config on_demand added to event generator on_demand \
(Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config sync_completed{cache_ready_user_logged_in} added\
to event generator sync_completed (Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config gui_startup{user_logged_in} added to event \
generator gui_startup (Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config sync_completed added to event generator \
sync_completed (Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config software_on_demand added to event generator \
software_on_demand (Events.pyo|1107)
opsi manual opsi version 4.0.3 60 / 175

[5] [Mar 22 10:17:46] [ event processing gui_startup ] Event config on_demand{user_logged_in} added to event \
generator on_demand (Events.pyo|1107)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] Updating config file: C:\Program Files (x86)\opsi.org\opsi-\
client-agent\opsiclientd\opsiclientd.conf (Config.pyo|287)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] No need to write config file C:\Program Files (x86)\opsi.org\\
opsi-client-agent\opsiclientd\opsiclientd.conf, config file is up to date (Config.pyo|318)
[5] [Mar 22 10:17:46] [ event processing gui_startup ] No product action requests set (EventProcessing.pyo|591)
[5] [Mar 22 10:17:49] [ event processing gui_startup ] Writing log to service (EventProcessing.pyo|247)
[6] [Mar 22 10:17:49] [ opsiclientd ] shutdownRequested: 0 (Windows.pyo|340)
[6] [Mar 22 10:17:49] [ opsiclientd ] rebootRequested: 0 (Windows.pyo|326)
[5] [Mar 22 10:17:49] [ opsiclientd ] Block login now set to False (Opsiclientd.pyo|111)
[6] [Mar 22 10:17:49] [ opsiclientd ] Terminating block login notifier app (pid 1620) (Opsiclientd.\
pyo|148)
[6] [Mar 22 10:17:49] [ event processing gui_startup ] Stopping notification server (EventProcessing.pyo|225)
[6] [Mar 22 10:17:51] [ control server ] client connection lost (Message.pyo|464)
[6] [Mar 22 10:17:52] [ event processing gui_startup ] Notification server stopped (Message.pyo|651)
[5] [Mar 22 10:17:52] [ event processing gui_startup ] ============= EventProcessingThread for event gui_startup \
ended ============= (EventProcessing.pyo|1172)
[5] [Mar 22 10:17:52] [ opsiclientd ] Done processing event <ocdlib.Events.GUIStartupEvent object at\
0x023CE330> (Opsiclientd.pyo|405)
[5] [Mar 22 10:19:41] [ opsiclientd ] Session HSzMB1wtOiBS6vHl7mh3ro5r6s3TanFu from ip 127.0.0.1,\
application opsi jsonrpc module version 4.0.1 expired after 120 seconds (Session.pyo|184)
[6] [Mar 22 10:19:41] [ opsiclientd ] Session timer <_Timer(Thread-20, started daemon 2636)> canceled\
(Session.pyo|120)
[5] [Mar 22 10:19:41] [ opsiclientd ] Session HSzMB1wtOiBS6vHl7mh3ro5r6s3TanFu from ip 127.0.0.1,\
application opsi jsonrpc module version 4.0.1 deleted (Session.pyo|207)
[6] [Mar 22 10:27:55] [ control pipe ] Creating pipe \\.\pipe\opsiclientd (ControlPipe.pyo|253)
[5] [Mar 22 10:27:55] [ event generator wait_for_gui ] -----> Executing: getBlockLogin() (JsonRpc.pyo|123)
[5] [Mar 22 10:27:55] [ opsiclientd ] rpc getBlockLogin: blockLogin is False (ControlPipe.pyo\
|428)
[6] [Mar 22 10:27:55] [ event generator wait_for_gui ] Got result (JsonRpc.pyo|131)

opsi-login-blocker enregistre dans le fichier journal: c:\tmp\opsi_loginblocker.log.

7.3.8 opsiclientd page dinformation

Daprs les fait quil existe un grand nombre de sous-composants de opsiclientd qui travaillent et journalisent en mme
temps, le fichier journal de opsiclientd devient complexe.
Afin de rendre plus facile comprendre comment les diffrents sous-composants travaillent ensemble, opsiclientd a
une propre "page dinformation" qui permet de visualiser les tches en cours dexcution sur une chronologie.
Vous pouvez voir cette "page dinformation" dans le navigateur ladresse:
https://<address-of-the-client>:4441/info.html
opsi manual opsi version 4.0.3 61 / 175

Figure 47 Page dinformation de opsiclientd aprs linstallation pousse avec le cache activ du produit

7.3.9 opsi-client-agent commande distance

opsiclientd possde sa propre interface de service Web qui peut tre utilis pour transmettre des commandes opsi-
clientd. Les commandes possibles peuvent tre rpartis dans les catgories suivantes:
envoyer des messages (Popup)
Pousser les installations (dmarrer lvnement on_demand)
autres tches de maintenance
Cela peut tre fait en ligne de commande en utilisant loutil opsi-admin en appelant lune des mthodes hostControl_*.
Lappel une de ces mthodes prend le paramtre *hostid qui:
peut tre dpos pour envoyer la commande tous les clients
peut tre le nom dun client (ex. "pcbon4.uib.local")
peut tre une liste de noms de client selon le schma [ <client1>, <client2>]
ex. ["pcbon1.uib.local", "pcbon2.uib.local"]
peut contenir des jokers comme *
ex. "pcbon4.*" or "pcbon*"
Si un client nest pas joignable (par exemple hors tension) vous obtiendrez un message.

Lenvoi de messages pop-up

En utilisant opsi-configed vous pouvez envoyer des messages aux clients. Section 4.3.8
Sur la ligne de commande, vous pouvez le faire avec loutil opsi-admin:
opsi-admin -d method hostControl_showPopup message *hostid

Exemple:
opsi-admin -d method hostControl_showPopup "This is my message" "myclient.uib.local"
opsi manual opsi version 4.0.3 62 / 175

Pousser les installations: dmarrer lvnement la demande

serveur opsi peut envoyer une commande au client que le client doit traiter les requtes dactions configures imm-
diatement. Ceci est fait en activant lvnement on_demand sur le client.
Ceci est possible en utilisant opsi-configed et il est dcrit dans le chapitre: Pousser linstallation: dmarrer lvnement
on demand
A partir de serveur opsi le client peut tre invit excuter les product actions.
Lexcution dvnements peut galement tre effectue partir de opsi-configed. Section 4.3.8
Sur la ligne de commande, vous pouvez utiliser opsi-admin pour dclencher un vnement:
opsi-admin -d method hostControl_fireEvent event *hostIds

Exemple:
opsi-admin -d method hostControl_fireEvent "on_demand" "myclient.uib.local"

Tches de maintenance supplmentaires (arrt, redmarrage,. . . ..)

En utilisant le port de contrle du serveur vous pouvez contrler distance opsiclientd. Pour ce faire, vous devez vous
authentifier auprs du service web. Cela pourrait se faire soit avec le compte dadministrateur local (avec un mot de
passe non vide) ou avec le opsi-host-Id (FQDN, le nom du client et le nom de domaine DNS) comme nom dutilisateur
et le opsi-hostkey comme mot de passe.
En utilisant opsi-configed vous pouvez choisir le menu opsiClient ou le menu contextuel de longlet Selection des clients.

Figure 48 Service Web de opsiclientd

Sur la ligne de commande, vous pouvez galement dmarrer un client:


arrt:
opsi-admin -d method hostControl_shutdown *hostIds

redmarrage:
opsi-admin -d method hostControl_reboot *hostIds
opsi manual opsi version 4.0.3 63 / 175

7.4 Blocage de la connexion de lutilisateur avec opsi-Loginblocker


Pour viter une connexion de lutilisateur avant que toutes les installations sont termines, opsi fournit loption opsi-
login-blocker.

7.4.1 opsi loginblocker de Windows 2000 XP (NT 5)

opsi-login-blocker est implment comme Gina opsigina.dll. Gina signifie Graphical Identification and Authentica-
tion et cest le hook officiel de Microsoft pour manipuler le processus de connexion.
Si vous avez dj un particulier Gina-DLL install, qui est diffrent de loriginal Microsoft msgina.dll (ex. Novell
nwgina.dll), vous ne devez pas installer opsi-login-blocker sans consulter opensides ou https://forum.opsi.org. Il est
possible de chaner diffrentes gina.dlls, mais par consquent linstallation doit tre personnalise. Lenchanement
correct des DLL Gina est une tche trs critique et peut entraner un verrouillage de lordinateur si cela est fait
incorrectement.
Que opsi-login-blocker est install ou pas est configur par le commutateur LoginBlockerStart=on/off dans la section
[opsi-client-agent-install] de la configuration du client.

7.4.2 opsi loginblocker pour NT 6 (Win 7 & Co)

opsi-login-blocker dans Vista est implment comme un "Filtre fournisseur dinformations didentification". Il bloque
tous "informations didentification" jusqu la libration par opsiclientd ou dlai dattente.

7.5 Installation ultrieure de opsi-client-agents


Les informations sur une Installation ultrieure de opsi-client-agent vous les trouverez dans le manuel opsi-getting-
started (Chapitre Premires tapes).

7.5.1 Installation de opsi-client-agent partir dune image matre ou comme exe

# doit tre crit #

8 Produits Localboot: distribution de logiciels automatique avec opsi


Un produit localboot est un produit opsi qui sera install par opsi-client-agent aprs que le client dmarr lOS par
dfaut partir du disque dur local. Cela le distingue des produits netboot qui seront dcrit plus loin.

8.1 produits standards dopsi


Les produits suivants sont des produits de base qui viennent avec linstallation de opsi-server.

8.1.1 opsi-client-agent

Le paquet opsi-client-agent contient le mcanisme dinstallation et de mise jour pour opsi-client-agent.

8.1.2 opsi-winst

Le paquet opsi-winst est un cas particulier. Il comprend opsi-winst winst32.exe, qui est mis jour par le paquet
opsi-client-agent mme. opsi-client-agent contrle dans le serveur si il y a une version diffrente de winst32.exe puis
copie le nouveau opsi-winst (tous ses fichiers) sur le client. Cette mise jour automatique ne fonctionne pas pour
Windows 2000 depuis opsi 4.
opsi manual opsi version 4.0.3 64 / 175

8.1.3 javavm: Java Runtime Environment

Le paquet javavm installe lenvironnement dexcution Java 1.6 requis par opsi-configed) sur les clients.

8.1.4 opsi-adminutils

Le paquet opsi-adminutils offre des utilitaires et une installation locale de opsi-configed.

8.1.5 jedit

Editeur Java avec coloration syntaxique pour les scripts opsi-winst.

8.1.6 Swaudit et hwaudit: Produits pour linventaire matriel et logiciel

Les paquets hwaudit et swaudit ils fournissent linventaire matriel et logiciel. Les don-
nes du matriel sont acquises en utilisant WMI et crites dans linventaire du matriel via
le web service opsi. Les donnes de linventaire logiciel sont tires de la base de registre
(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) et transmis au serveur
dinventaire par le web service opsi.

8.1.7 opsi-template

Modle pour vos propres scripts opsi.


Vous pouvez extraire ce modle avec:
opsi-package-manager -x opsi-template_<version>.opsi

il est galement possible de le renommer en mme temps:


opsi-package-manager -x opsi-template_<version>.opsi --new-product-id myprod

8.1.8 xpconfig

Paquet pour personnaliser les paramtres de linterface graphique et dExplorer (et pas seulement) pour Windows XP.

8.2 La manipulation de la squence dinstallation en fonction des priorits du produit

Depuis opsi 4.0 la squence dinstallation sera calcul en ce qui concerne les dpendances entre produits et les priorits
du produit.
dpendances du produit
dfinit les dpendances et la squence dinstallation ncessaire entre les paquets opsi. Un exemple typique est la
dpendance entre un programme Java et lenvironnement dexcution Java (javavm).
priorits du produit
sera utilis pour pousser certains paquets au dbut de la squence dinstallation et dautres paquets la fin. Par
exemple, il est utile installer le Service Pack et les correctifs au dbut dune squence dinstallation et linventaire
logiciel la fin.
Les priorits de produit sont des nombres compris entre 100 et -100 (0 est la valeur par dfaut)
Il existe diffrentes possibilits dutilisr ces deux facteurs pour calculer la squence dinstallation. Opsi propose deux
algorithmes diffrents.
Vous pouvez basculer entre ces algorithmes:
en utilisant opsi-configed, dans longlet Rseau et paramtres supplmentaires de la configuration du serveur
opsi manual opsi version 4.0.3 65 / 175

Figure 49 opsi-configed: configuration du serveur

ou vous pouvez le faire en ligne de commande:


opsi-setup --edit-config-defaults

Figure 50 Choisissez lalgorithme de tri: Partie 1


opsi manual opsi version 4.0.3 66 / 175

Figure 51 Choisissez lalgorithme de tri: Partie 2

8.2.1 Algorithm1: dpendance lgard de la prioritaire du produit (par dfaut)

Grce cet algorithme, la squence dinstallation du produit dans un premier temps sera calcul en fonction des
priorits du produit. Dans un deuxime temps, il fera recours aux les dpendances du produit. Cet algorithme peut
pousser les produits avec une priorit basse avant les produits ayant une plus grande priorit pour rpondre aux
besoins de dpendances du produit. Mais par consquent vous ne verrez pas les problmes dinstallation la suite de
dpendances non rsolues du produit.

8.2.2 Algorithm2: dpendance lgard de la dpendance du produit

La philosophie de base de cet algorithme est, que dans la pratique, il y a trois classes de priorit ncessaires:
Les produits qui doivent tre installs au dbut dune squence , comme les mises jour de lOS. Ces produits ont
besoin dun rang de priorit lev (ex. 100)
Les produits "normalaux" pour installer des applications (priorit par dfaut = 0)
Les produits qui doivent tre installs la fin dune squence dinstallation, comme linventaire logiciel. Ces produits
ont besoin dun faible degr de priorit (ex. -100)
Les dpendances du produit seront seulement rsolu lintrieur de la classe de priorit. Cela garantit que les produits
ayant une haute priorit seront installs trs tt. Mais est de votre responsabilit quil ny a pas de dpendances du
produit qui vont franchir les frontires de classe de priorit.

8.2.3 Dfinir les priorits et les dpendances du produit

Les priorits et les dpendances de produits appartiennent aux mtadonnes dun produit. Il vous sera demand pour
ces mta-donnes crant un nouveau produit en utilisant la commande opsi-newprod.
Ces mta-donnes seront stockes dans le fichier de contrle des produits et peuvent tre dit. Aprs avoir modifi le
fichier de contrle que vous avez crer et install le paquet nouveau.
Pour plus de dtails, voir le manuel getting started dans le chapitre de cration dun paquet opsi.

8.3 Lintgration des nouveaux paquets logiciels dans le dploiement de logiciels opsi.

Les informations sur "Lintgration des nouveaux paquets logiciels dans le dploiement de logiciels opsi" vous les
trouverez dans le manuel opsi-getting-started.
opsi manual opsi version 4.0.3 67 / 175

9 Produits Netboot

9.1 Paramtres de limage de dmarrage Linux pour opsi

Limage dmarrage Linux pour opsi a des paramtres qui peuvent tre utiliss pour modifier son comportement. Vous
essayerez cette option si limage de dmarrage ne fonctionne pas correctement avec les paramtres standard de votre
matriel (par exemple un cran noir).
Vous pouvez modifier ces paramtres standards via opsi-configed choisissant longlet Rseau et paramtres supplmen-
taires et en utilisant lentre opsi-linux-bootimage.append.
Les valeurs typiques sont (peuvent tre combins):
acpi=off
noapic
irqpoll
reboot=bios
Une autre valeur par dfaut importante est le mot de passe de lutilisateur root dans limage de dmarrage Linux. Ce
mot de passe est linux123 par dfaut et vous devez le changer pour des raisons de scurit.
Pour ce faire, modifiez lentre opsi-linux-bootimage.append dans Configuration serveur.
Loption que vous devez changer est pwh (password hash). Comme valeur pour cette option, vous devez donner un
nouveau mot de passe de hachage, qui sera charg dans /etc/shadow au moment du dmarrage.
La meilleure faon dobtenir le hash correct du mot de passe est de se connecter via ssh votre image de dmarrage:
ssh root@<client.domain.tld>

Lancien mot de passe est linux123.


Maintenant dfinissez un nouveau mot de passe pour lutilisateur root:
passwd

Rcuprez le nouveau hachage


grep root /etc/shadow

Le rsultat devrait ressembler ceci:


root:$6$344YXKIT$D4RPZfHMmv8e1/i5nNkOFaRN2oYNobCEjCHnkehiEFA7NdkDW9KF496OHBmyHHq0kD2FBLHZoTdr5YoDlIoWz\
/:14803:0:99999:7:::

Maintenant, copiez daprs le premier deux-points jusquau deuxime deux-points et utilisez cela comme valeur pour
pwh.
Donc loption pour opsi-linux-bootimage.append sera:
pwh=$6$344YXKIT$D4RPZfHMmv8e1/i5nNkOFaRN2oYNobCEjCHnkehiEFA7NdkDW9KF496OHBmyHHq0kD2FBLHZoTdr5YoDlIoWz/

9.2 Installation automatise de lOS sans assistance

9.2.1 Aperu

tapes dune r-installation:


En utilisant PXE-Boot:
Choisissez le client qui doit tre install avec lutilitaire opsi-configed ou opsi-admin.
opsi manual opsi version 4.0.3 68 / 175

Au prochain redmarrage, le client dtecte (via PXE-Bootprom) la demande de re-installation et charge limage de
dmarrage partir de serveur opsi.
En utilisant CD-Boot:
Le client dmarre limage de dmarrage partir de opsi-client-bootcd.
Limage damorage dmarre et demande confirmation pour procder la rinstallation. Cest la seule question
interactive. Aprs avoir confirm, linstallation se poursuit sans aucune nouvelle demande dinteraction.
Limage de dmarrage partitionne et formate le disque dur.
Limage de dmarrage copie les fichiers dinstallation et de configuration du serveur opsi vers le client et dclenche
le redmarrage.
Aprs le redmarrage le client installe le systme dexploitation en fonction des informations de configuration fournies
sans aucune interaction.
Aprs opsi-client-agent est install en tant quinstallateur OPSI pour la distribution automatis de logiciel.
Opsi installe tous les logiciels tel que dfini dans la configuration du client.

9.2.2 Conditions pralables

Lordinateur client doit tre quip dun contrleur rseau amorable. Les contrleurs rseau les plus rcents offrent
cette fonctionnalit (PXE boot), galement les contrleurs rseau rcentes qui sont intgrs sur la carte mre du PC.
Le logiciel PXE, qui est stock dans bootprom du contrleur de rseau, commande le processus de dmarrage via le
rseau en fonction de la squence damorage du BIOS. Habituellement, la squence de dmarrage doit tre dfini dans
le BIOS, network-boot doit tre le priphrique de dmarrage initial. Sil ny a aucune possibilit dutiliser PXE vous
pouvez dmarrer partir du opsi-client-bootcd.
Le paquet dinstallation opsi pour le systme dexploitation pour tre install doit tre prsent sur le serveur de dpt.
Dans ce qui suit nous supposons que Windows XP soit le systme dexploitation installer.

9.2.3 Dmarrage du PC client via le rseau

Le microprogramme PXE sactive au dmarrage de lordinateur. Une partie de la mise en uvre PXE est un client
DHCP.

Figure 52 tape 1 pendant le Boot PXE


opsi manual opsi version 4.0.3 69 / 175

Au dbut, le PC ne connat que ladresse Ethernet de son contrleur rseau (MAC), compos de six caractres
hexadcimaux deux chiffres.
Le firmware dclenche une diffusion DHCPDISCOVER: Jai besoin dune adresse IP, qui est mon serveur DHCP?
Le serveur DHCP propose une adresse (DHCPOFFER).
DHCPREQUEST est la rponse du client au serveur si ladresse IP est accepte. (Ce nest pas une tape obsolte car
il pourrait y avoir plus dun serveur DHCP dans le rseau.)
Le serveur envoie un DHCPACK pour reconnatre la demande. Linformation est envoye nouveau au client.
Vous pouvez observer ce processus sur lcran, pour PXE-BOOTPROM affiche des informations sur le micrologiciel
et son MAC. Le symbole "pipe" en rotation est affich lors de la demande. Lorsquune offre a t faite, il est remplac
par un \ et vous obtenez les informations transmises (IP du CLIENT, MASQUE, IP du serveur DHCP, IP de la
PASSERELLE). Un peu plus tard, vous devriez obtenir une rponse comme ceci: Mon adresse IP SEMBLE TRE
.......
Ce processus rend le PC rgulirment membre part entire du rseau configur. Ltape suivante consiste charger
le fichier de dmarrage (image de dmarrage) propose dans les informations de configuration.

9.2.4 Chargement de pxelinux

Limage damorage est charg via le protocole de transfert trivial de fichiers (tftp). Le message affich est LOADING.
tftp est un protocole assez ancien et simple pour transfrer des fichiers sans authentification. En fait, toutes les donnes
disponibles via tftp sont accessibles tous dans le rseau. Donc laccs tftp se limite un rpertoire, qui est gnralement
/tftpboot. Ce rpertoire est spcifi dans inetd (internet daemon, /etc/inetd.conf), qui dbutera le dmon tftp tftpd
la demande. La commande de dmarrage comme indiqu dans inetd.conf est quelque chose comme
tftpd -p -u tftp -s /tftpboot
Le processus de dmarrage PXE est multi-tape:
La premiere tape est de charger et lancer le fichier soumis dans le cadre du processus de dcouverte dadresse
(habituellement /tftpboot/linux/pxelinux.0).
Le logiciel pxelinux.0 cherche alors des informations de configuration et damorage dans /tftpboot/linux/pxelinux.cfg.
Il recherche dabord un fichier PC spcifique avec un nom bas sur ladresse Ethernet (MAC) du contrleur rseau
avec un premier 01. Le nom de fichier pour le contrleur avec ladresse Ethernet 00:0C:29:11:6B:D2 serait 01-00-0c-
29-11-6b-d2. Si le fichier nest pas trouv, pxelinux.0 commencera raccourcir le nom du fichier ( partir de la fin)
pour obtenir une correspondance. Si ce processus se termine sans rsultat, le fichier default sera charg. Ce fichier ne
contient que les instructions pour dmarrer partir du disque dur local. Dans ce cas sur lordinateur rien sera install
et tout simplement dmarrera le systme dexploitation actuel depuis son disque dur.
opsi manual opsi version 4.0.3 70 / 175

Figure 53 Etape 2 Boot PXE

Pour lancer la rinstallation dun certain PC, un fichier chargeable est prpar pour le programme pxelinux.0. Afin
de le faire, opsipxeconfd cre un fichier personnalis pour le PC dans /tftpboot/linux/pxelinux.cfg. Une partie de ce
fichier est la commande pour charger limage damorage de linstallation. Ce fichier contient aussi la cl du client
pour dchiffrer le mot de passe pcpatch. Ce fichier est cr en tant que canal nomm et disparat donc aprs avoir t
lu une fois. Plus de dtails ce sujet dans le chapitre sur la scurit des partages de fichiers.
Sur la base des informations de pxelinux.0 obtenues partir du canal nomm, limage de dmarrage actuelle est charg
partir du serveur de dpt opsi via tftp. Limage de dmarrage est bas sur un noyau Linux (/tftpboot/linux/install)
au sein dun systme de fichiers initrd appropri (/tftpboot/linux/miniroot.gz) et dune taille denviron 65 MB.

9.2.5 Dmarrer partir du CD

Analoguement linitialisation tftp via PXE-bootprom, limage de dmarrage de linstallation peut tre dmarr
partir du CD de dmarrage dopsi.
Cela pourrait tre recommand dans les conditions suivantes:
le client na pas de PXE bootprom;
il ny a pas de dhcp;
il y a un dhcp mais il nest pas autoris configurer les donnes du client et les adresses matrielles des clients sont
inconnus;
il y a un dhcp mais il nest pas configur pour cette demande.
Selon les diffrentes situations, plusieurs informations doivent tre fournies limage de dmarrage via CD en saisie
interactive. Le cas le plus simple est de ne pas fournir aucune autre information. ventuellement, le nom dhte du
client peut tre transmis par hn=<nom hte>. En utilisant loption ASK_CONF=1 plusieurs paramtres peuvent
tre interrogs. En appuyant sur F1 au prompt du CD montre la syntaxe.
Lisez le chapitre Crer un nouveau client en utilisant opsi-client-bootcd dans le manuel opsi-getting-started.

9.2.6 Limage de dmarrage linux se prpare pour la rinstallation

Limage damorage effectue nouveau une requte DHCP et configure linterface rseau daprs les informations
perues. Ensuite, les donnes de configuration pour le client seront chargs via web service dopsi.
opsi manual opsi version 4.0.3 71 / 175

Figure 54 Boot PXE charg pour la prparation de limage de dmarrage sur le disque dur pour linstallation du
systme dexploitation

Il dtient galement des informations sur la faon de partitionner le disque dur, le systme de fichiers utiliser et le
systme dexploitation installer. En outre, il fournit le mot de passe crypt pour se connecter au partage de fichiers.
Ces informations seront combines avec des informations tires de la rponse DHCP et ensuite seront transmises au
script dinstallation pour un traitement ultrieur.
Ensuite le mot de passe de lutilisateur pcpatch sera dchiffr avec la cl transfr pour monter le partage de fichiers de
linstallation, puis sera la fois de lappelle au script dinstallation partir du partage mont pour lancer linstallation
du systme dexploitation. Les oprations spcifiques qui excute le script dpendent du systme dexploitation qui
doit tre installe. Ci-dessous seront dcrites les tapes dune installation de Windows XP.
Prparer le disque: Sur le disque dur, limage de dmarrage cre une nouvelle partition (de la taille de 6 GB),
formate et installe un noyau amorable ntloader.
Copiez le fichier dinstallation: Les fichiers ncessaires linstallation de lOS et les fichiers de configuration pour
opsi-client-agent (qui est le paquet de distribution de logiciel OPSI) seront copis partir du serveur de partage de
fichiers (ex. /opt/pcbin/install/winxppro/i386) sur le disque dur local.
Entretenir les informations de configuration: Certains des fichiers de configuration et de contrle contiennent
des caractres de remplacement, qui seront mis jour avant de commencer linstallation relle. Avec un script spcifi
(patcha-script) les espaces rservs seront remplacs par des paramtres pris dans le paquet dinformations, qui est
construit partir des fichiers de configuration et de la rponse DHCP. Par exemple dans le fichier unattend.txt, qui est
le fichier de contrle pour linstallation sans assistance du systme dexploitation, sera patch avec des informations
spcifiques comme IP de lhte, IP du client, nom du client, groupe de travail, passerelle par dfaut etc..
Prparer le redmarrage: Lenregistrements damorage sera install qui dmarrera le programme dinstallation de
Windows au prochain redmarrage. Le fichier patch unattend.txt est transmis la configuration en tant que fichier
de commande de linstallation automatique.
Redmarrage: Au cours de lamorage prcdent, le canal nomm (qui indique une demande dinstallation) a t
limine, en le lisant une fois. Donc la prochaine initialisation PXE chargera la rponse netboot par dfaut, qui
excute la commande hdboot. Le chargeur damorage locale sera lanc et la configuration de linstallation du systme
dexploitation dmarre.
Ces tapes sont contrles par un script python spcifique au systme dexploitation.
opsi manual opsi version 4.0.3 72 / 175

9.2.7 Installation du systme dexploitation et dopsi-client-agent

Linstallation de lOS est bas sur linstallation sans assistance de Microsoft. Une partie de cela est la dtection
du matriel standard. En plus des possibilits offertes lors de linstallation de non-OEM ou support dinstallation
slipstreamed, pilotes et correctifs (ex. service packs) peuvent tre installs pendant linstallation initiale, rendant
linstallation spare des pilotes obsolte.
Une des caractristiques de linstallation sans assistance est la possibilit dengager des installations supplmentaires
une fois linstallation principale termin. Ce mcanisme est utilis pour installer opsi-client-agent, qui met en uvre le
systme automatis de distribution de logiciels. Une entre dans la base de registre indique la machine comme tant
encore dans le mode de rinstallation.
Le redmarrage final entrane le demarrage su service opsi-client-agent pour la distribution de logiciels avant le premier
login de lutilisateur. Sur la base de la valeur de la cl de registre mentionne ci-dessus the opsi-client-agent commute
dans le mode de rinstallation. Par consquent, en ce qui concerne ltat de la configuration de chaque paquet opsi,
chaque paquet qui est marqu en tant que setup ou tat de linstallation installed lintrieur de la configuration de
ce client est install. Aprs que tous logiciels client dsigns ont t installs, le processus de rinstallation est termine
et ltat interne est commut de mode de rinstallation mode standard. Dans mode standard seuls les logiciels qui
sont marqus comme setup seront installs.

9.2.8 Comment fonctionne le programme Patcha

Comme mentionn ci-dessus les informations recueillies auprs du dhcp et de opsi-webservice seront utiliss pour
patcher certains fichiers de configuration comme par exemple unattend.txt. Le programme utilis pour patcher est le
script /user/local/bin/patcha.
Ce script remplace les motifs comme @flagname() dans un fichier avec des valeurs comme flagname=value prises
partir dun fichier de contrle (lentre par dfaut est /proc/cmdline). Dans les fichiers qui doivent tre corrigs, le
motif de recherche et de remplacement doit commencer par @, peut disposer en option de aprs le nom du drapeau
et doit avoir un ou plusieurs .
Donc en appelant patcha <nom de fichier> le fichier <nom de fichier> sera patch avec les informations extraites de
/proc/cmdline.
En appelant patcha sans aucun paramtre affichera toutes les entres nom du drapeau=valeur depuis /proc/cmdline.
Un fichier dentre diffrente (another_cmdline) peut tre pass patcha: patcha -f another_cmdline
Sans aucun autre paramtre patcha affiche les informations tires de another_cmdline. Ce fichier dentre doit avoir
la syntaxe cmdline, qui signifie avoir des entres comme <nom du drapeau>=<valeur> spars par un espace.
patcha -f another_cmdline patchfile
Cela va patcher patchfile avec des substitutions prises de another_cmdline.
Usage: patcha [-h|-v] [-f <params file>] <patch file>

Fill placeholders in file <patch file>


Options:
-v Show version information and exit
-h Show this help
-f <params file> File containig key value pairs
If option not given key value pairs from kernel cmdline are used

patcha patcht nur einen Tag pro Zeile.


Avertissement: patch a patches only the first pattern of each line.
Chaque motif sera tendu (ou rduit) la longueur de la valeur remplacer, puis remplac. Des caractres de fin ne
seront pas affects.
Exemples:
Avec le fichier dentre try.in
cat try.in
tag1=hallohallohallo1 tag2=t2
opsi manual opsi version 4.0.3 73 / 175

et le fichier patch.me patcher:


cat patch.me
<#@tag1##########################>
<#@tag2##########################>
<#@tag1#>
<#@tag2#>
<#@tag1*##########################>
<#@tag2*##########################>
<#@tag1*#>
<#@tag2*#>
<#@tag1#><#@tag1#####>
<#@tag2*#######><#@tag1#>

le rsultat sera:
./patcha -f try.in patch.me
cat patch.me
<hallohallohallo1>
<t2>
<hallohallohallo1>
<t2>
<hallohallohallo1>
<t2>
<hallohallohallo1>
<t2>
<hallohallohallo1><#@tag1#####>
<t2><#@tag1#>

9.2.9 Structure des produits dinstallation sans assistance

Vous trouverez les informations sur la Structure des produits dinstallation sans assistance dans le manuel opsi-getting-
started.

9.2.10 Intgration simplifie des pilotes avec liens symboliques

Vous trouverez les informations sur la Intgration simplifie des pilotes avec liens symboliques dans le manuel opsi-
getting-started.

9.3 Quelques conseils sur les produits netboot NT6 (Vista / Win7 / 2008)

Les produits netboot pour linstallation des systmes dexploitation de la famille NT6, contiennent un grand nombre
de proprits qui seront dcrites ci-dessous.
opsi manual opsi version 4.0.3 74 / 175

Figure 55 proprits du produit NT6

additional_drivers
Un ou plusieurs rpertoires sous <productid>\drivers\drivers\additional. Tous les rpertoires du pilote
sous les rpertoires donns seront intgrs. Sil y a t-il un pilote dun priphrique trouv, aucune autre pilote
sera intgr par lintgration automatique du pilote.
askbeforeinst
Faut-il y avoir un dialogue de confirmation avant de commencer installer ?
boot_partition_label
Etiquette de la partition de dmarrage (partition Bitlocker)
boot_partition_letter
Lettre du lecteur de partition de dmarrage (partition Bitlocker)
boot_partition_size
Taille de la partition de dmarrage (partition Bitlocker). 0 = ne pas crer de partition
data_partition_label
Etiquette de la partion de donnes (si elle est cre)
data_partition_letter
Lettre du lecteur de la partion de donnes (si elle est cre)
fullname
Nom complet du titulaire de la licence, qui est donn au programme dinstallation
imagename
Nom de la variante du systme dexploitation
opsi manual opsi version 4.0.3 75 / 175

Figure 56 Nom de la variante NT6

orgname
Nom de lentreprise ou de lorganisation du titulaire de la licence, qui est donn au programme dinstallation
productkey
Cl de licence pour linstallation. Nest utilise que si license-management.use dans longlet Rseau et
paramtres supplmentaires est dfini sur false. Si cest dfini sur True la cl de licence sera obtenue par-
tir du module de gestion des licences.
system_keyboard_layout
Slectionnez la langue du clavier (voir: http://msdn.microsoft.com/en-us/goglobal/bb895996 )

Figure 57 Slectionnez la langue du clavier

system_language
Slectionnez la langue du systme
system_timezone
Slectionner le fuseau horaire
windows_partition_label
Etiquette de la partion systme (c:)
opsi manual opsi version 4.0.3 76 / 175

windows_partition_size
Taille de la partition systme (c:). La taille peut tre donn comme pourcentage de la taille du disque dur ou
comme taille absolue (G=Gigabyte). Si vous choisissez une autre valeur que 100%, le reste sera utilis comme
partition de donnes.

Figure 58 Taille de la partition systme

winpenetworkmode
Si true le PE essaie de monter le dpt de partage et de commencer linstallation du systme dexploitation
partir du partage (plus rapide). Si false tous les fichiers dinstallation seront copis sur le disque dur et
linstallation dmarre partir du disque local (plus lent).

9.4 image Ntfs (crire et restaurer)


Les produits ntfs-write-image et ntfs-restore-image sont des utilitaires pour sauvegarder et restaurer des images de
partitions des clients. La cible (et la source) pour le fichier image doivent tre sur le serveur de dpt OPSI et seront
transfrs par ssh (utilisateur pcpatch) comme spcifi en tant que proprit du produit.

9.5 memtest
Le produit memtest est un utilitaire pour effectuer un test de mmoire du client.

9.6 hwinvent
Ce produit offre un inventaire du matriel du client.

9.7 wipedisk
Le produit wipedisk crase le disque dur entier (partion=0) ou plusieurs partitions avec des motifs diffrents. Le nombre
doprations dcriture conscutives effectuer est spcifi en tant que proprit du produit itrations (1-25).
opsi manual opsi version 4.0.3 77 / 175

10 Inventaire

Linventaire peut tre ordonne avec les produits Localboot hwaudit et swaudit ou avec le produit Netboot hwinvent.

10.1 Inventaire Hardware

Linventaire matriel est contrl par un fichier de configuration opsi. Cela signifie que les informations sur lesquelles
les donnes seront compiles ne sont pas enchss dans les produits correspondants hwaudit et hwinvent. En fait, les
produits seront contrles par un fichier de configuration. Le fichier de configuration sera appele et interprt avec
chaque envoi du service Web. Simultanment, le fichier de configuration dtermine la structure de la base de donnes,
de sorte quun changement de ce fichier de configuration modifiera le schma de base de donnes.
Le fichier de configuration est /etc/opsi/hwaudit/opsihwaudit.conf.
Tous le objets inventoris sont dfinis et dcrits dans ce fichier, comme la faon dont ces objets et leurs donnes
sont instancies (sous Linux et Windows). Ce fichier va galement dfinir la structure de donne associe. Pour tre
plus prcis, ce fichier de configuration contient les dfinitions dhritage orient objet. La raison cela est le fait
que beaucoup dobjets contiennent des identiques champs de donnes (ex. comme Nom et Vendeur). Les informations
gnrales seront dfinies dans des classes de base virtual du matriel. Le objets dinventaire rels sont alors des classes
structural du matriel, lorsque de nombreuses proprits pourraient ventuellement tre hrite de la substitution des
classes de base virtual.
Lexemple suivant peut tre instructif:
Dans un premier temps le fichier de configuration dfinit une virtual Class appel "BASIC_INFO". Celle-ci dfinit les
proprits (Values):
"name"
"description"
Vient ensuite la virtual Class appel "HARDWARE_DEVICE", qui hrite de tous les paramtres supplmentaires de
"BASIC_INFO", et inclut les lments suivants:
"vendor"
"model"
"serialNumber"
Suivant suit le premier objet qui se trouve dans linventaire, qui est la premire structural Class appel "COM-
PUTER_SYSTEM", qui hrite de lensemble des paramtres supplmentaires de "HARDWARE_DEVICE", elle est
dfinie (et crase les proprits) comme:
"name"
"systemType"
"totalPhysicalMemory"
La dfinition de la classe comprendra une description de diffrents paramtres et leur Values:
Dfinition de la classe:

"Type"
est "STRUCTURAL" ou "VIRTUAL"
"Super"
cette classe dont elle va tre hrite.
"Opsi"
donne la nom de la classe, qui sera utilis par la suite dans opsi comme un nom daffichage.
De plus, la dfinition de classe permet de dfinir la manire dont les donnes seront compiles. Ces informations
peuvent galement tre trouvs dans la dfinition de Values.
Pour linventaire sous Linux:
"Linux": "[<commande>]<paramtre>"
Excute la commande <commande> sur la ligne de commande, avec largument <paramtre>.
opsi manual opsi version 4.0.3 78 / 175

"Python": "<code python avec espace rserv>"


Excute le code Python dont la sortie sera plac dans lespace rserv qui est comprise entre les signes "#" (voir
lexemple ci-dessous).
Pour linventaire sous Windows:
"WMI": "<wmi select statement>"
WMI sexcute lorsquil est appel
"Cmd": "<Objet texte Python avec espace rserv>"
Dans ce cas, cest le chemin relatif au programme excutable Python, dont la sortie sera plac dans lespace
rserv.
"Registry": "[<cl de registre>] <nom de la valeur>"
La valeur de <nom de la valeur> sera lu partir de la base de registre, et donne le nom de la cl <cl de registre>.
Le registre doit tre lu dune manire spcifique larchitecture. Cela signifie que le secteur 64 bits seront lus sur
un systme 64 bits.
Dfinition de la valeur:
"Type": "<MySQL Database type>"
<MySQL Database type> donne le type de base de donnes MySQL qui sera appliqu cette valeur (ex. une
chane Python sera "<MySQL Datenbase type>"="varchar(200)").
"Scope": "<porte>"
Le champ <porte> sera utilis de la manire suivante:
"g" signifie: Cet attribut est le mme dans tous les liens de ces types.
"i" signifie: Cet attribut peut avoir diffrents types de valeurs avec ces liens.
"Opsi": "<id>"
"<id>" est le nom interne des champs. Cela peut tre trouv dans le fichier situ dans /etc/opsi/hwaudit/
locales .
"WMI": "<id ou commande>"
<id ou commande> est soit le nom dune commande WMI qui affiche la valeur ou une seule commande WMI.
Si la commande WMI est donne dans la dfinition de classe (ex. "select * from Win32_ComputerSystem") , les
rsultats sont attribus aux variables "WMI" dans la dfinition de la classe "Values" . Sil ny a pas de commande
WMI, les variables "WMI" dans la section "Values" sont des commandes WMI (voir lexemple ci-dessous).
"Linux": "<id>"
Cela fait partie de la dfinition de classe, <id> est le nom de la valeur affiche lorsque la commande Linux est
donne.
"Condition": "<condition>"
<condition> est une condition qui doit tre remplie, avec laquelle les Value seront dtermins. Ainsi, par exemple
si la <condition> est dfinie comme "vendor=[dD]ell*", ensuite les valeurs de "vendor" doivent contenir Dell ou
dell.
Voici un exemple de la classe "COMPUTER_SYSTEM":
{
"Class": {
"Type": "STRUCTURAL",
"Super": [ "HARDWARE_DEVICE" ],
"Opsi": "COMPUTER_SYSTEM",
"WMI": "select * from Win32_ComputerSystem",
"Linux": "[lshw]system"
},
"Values": [
{
"Type": "varchar(100)",
"Scope": "i",
"Opsi": "name",
"WMI": "Name",
"Linux": "id"
},
{
"Type": "varchar(50)",
opsi manual opsi version 4.0.3 79 / 175

"Scope": "i",
"Opsi": "systemType",
"WMI": "SystemType",
"Linux": "configuration/chassis"
},
{
"Type": "bigint",
"Scope": "i",
"Opsi": "totalPhysicalMemory",
"WMI": "TotalPhysicalMemory",
"Linux": "core/memory/size",
"Unit": "Byte"
},
{
"Type": "varchar(50)",
"Scope": "i",
"Opsi": "dellexpresscode",
"Condition": "vendor=[dD]ell*",
"Cmd": "#dellexpresscode\dellexpresscode.exe#.split(=)[1]",
"Python": "str(int(#{COMPUTER_SYSTEM:serialNumber,CHASSIS:serialNumber}#,36))"
}
]
},

En ce qui concerne les commandes "WMI", la dfinition de classe contient "select * from Win32_ComputerSystem".
Cette commande est excute par WMI, qui comporte des colonnes de sortie "Name", "SystemType", et "TotalPhysi-
calMemory". Ces valeurs sont ensuite affects aux valeurs de opsi "name", "systemType", et "totalPhysicalMemory".
Particulirement intressant est ici la dernire valeur "dellexpresscode":
Ceci est vraiment utile quand lIT sinterroge sur un ordinateur Dell, sur son tat.
Le programme en ligne de commande dellexpresscode.exe a t conu pour Windows, et indique hwaudit.exe
que les dellexpresscode est fourni dans le rpertoire dellexpresscode\. Les lments entre # sont des espaces rservs
pour la sortie. Ainsi, la dclaration "dellexpresscode\dellexpresscode.exe" excute dellexpresscode.exe, et produit
une sortie sous la forme : dellexpresscode=123456789. La valeur qui sera utilis est lune aprs la sparation sur
lespace rserv =, ce qui est fait en Python en utilisant la mthode split () comme tel .split(=)[1] . Sous Linux,
on trouvera une valeur pour serialNumber pour les lments (COMPUTER_SYSTEM ou CHASSIS), qui est ensuite
utilis pour attribuer les codes Dell Express. Lappel int(,36) convertit la sortie nombre entier en base-36.
Les noms opsi des valeurs seront convertis en utilisant les fichiers trouvs dans /etc/opsi/hwaudit/locales/*. Le
fichier /etc/opsi/hwaudit/locales/en_US peut contenir des traductions telles que:
COMPUTER_SYSTEM = Computer
COMPUTER_SYSTEM. systemType = Type

Le nom de la classe COMPUTER_SYSTEM sera traduit en "Computer". Lattribut Opsi "systemType" de la classe
COMPUTER_SYSTEM sera traduit en "Type" pour langlais. Si lon regarde dans le fichier /etc/opsi/hwaudit/loc
ales/de_DE, on verrait que lattribut "COMPUTER_SYSTEM.systemType" sera traduit en "Typ" pour lallemand.
Enfin, une autre suggestion: Lorsquun nouveau champ est cr, il doit tre plac dans ces fichiers, mme si ne traduit
pas explicitement le terme. Ceci vite tous les messages de "Warning".

10.2 Inventaire des logiciels

Linventaire logiciel se fait avec le produit Localboot swaudit. Dans ce cas, les informations seront hrits de la
dsinstallation du Registre, et des informations supplmentaires seront obtenues partir des correctifs et des cls de
licence.
Le code source de ces paquets peut tre trouv ici:
https://svn.opsi.org/listing.php?repname=swaudit
https://svn.opsi.org/listing.php?repname=hwaudit
opsi manual opsi version 4.0.3 80 / 175

11 Serveur opsi

11.1 Prsentation
Les fonctionnalits dun serveur opsi peuvent tre installs sur diffrents types de distributions Linux.
Il y a deux rles diffrents quun serveur opsi peut avoir:
opsi-configserver
Le opsi-configserver a le stockage central de donnes et fournit laccs ces donnes via le service web opsi. Un
opsi-configserver a normalement en plus le rle de opsi-depotserver.
opsi-depotserver
Le opsi-depotserver na pas de stockage de donnes de configuration. Un opsi-depotserver stocke les fichiers din-
stallation dans un partage et fournit les services PXE / tftpboot pour les produits netboot.
Les exigences matrielles sont faibles. Le serveur OPSI peut galement fonctionner comme une instance virtuelle, ex.
vmware (www.vmware.com) ou virtualbox (www.virtualbox.org).

11.2 Installation et mise en service


Linstallation et le dmarrage dun serveur opsi sont dcrites dans le manuel getting started.

11.3 Configuration Samba


Le serveur de dpt opsi vous offre les partages rseau qui dtient les informations de configuration et les paquets
logiciels. Ces partages peuvent tre monts par les clients. Pour les clients Windows les partages sont fournies par
SAMBA (version 3.x).
Pour configurer votre samba en fonction des besoins de opsi (ou pour rparer) excutez:
opsi-setup --auto-configure-samba

Aprs chaque changement de configuration de samba, vous devez recharger votre samba (/etc/init.d/samba reload).

11.4 Le dmon opsiconfd


opsiconfd est le dmon centrale opsi (service). opsiconfd fournit le service web opsi et fait beaucoup plus des choses.
opsiconfd est configur dans /etc/opsi/opsiconfd.conf.

11.5 Comptes dutilisateurs et groupes administratifs ncessaires


Utilisateur opsiconfd
Le dmon opsiconfd sexcute en tant que cet utilisateur.
Utilisateur pcpatch
Cet utilisateur est utilis par opsi-client-agent pour monter le dpt de partage. Cet utilisateur a normalement le
uid 992. Vous pouvez dfinir le mot de passe pour cet utilisateur avec
opsi-admin -d task setPcpatchPassword.
Groupe pcpatch
Le groupe pcpatch a lautorisation dcriture sur plusieurs fichiers et vous aurez besoin dtre dans ce groupe afin
de construire et dinstaller des produits opsi.
Groupe opsiadmin
Les membres du groupe opsiadmin sont autoriss se connecter au service web dopsi et peuvent utiliser par exemple
lditeur de configuration opsi-configed. Par consquent, tous les administrateurs dopsi doivent tre membres du
groupe pcpatch.

Un utilisateur peut rejoindre le groupe opsiadmin avec: addgroup <utilisateur> opsiadmin.


opsi manual opsi version 4.0.3 81 / 175

11.6 Rpertoire de partage ncessaires

Depotshare avec les fichiers dinstallation (opt_pcbin)


Le dpt de partage fournit tous les paquets logiciels qui peuvent tre installs par le logiciel opsi-winst. Le rpertoire
par dfaut pour les paquets logiciels est /opt/pcbin/install. Dans ce rpertoire chaque paquet logiciel a son propre
rpertoire sous le nom du paquet logiciel. Ces sous-rpertoires contiennent les scripts dinstallation et les fichiers
spcifiques des paquets.

ASTUCE
Le rpertoire /opt/pcbin/install sera remplac par le rpertoire (LSB conformes) /var/lib/opsi/depot. Le partage
opt_pcbin sera remplac par le partage en lecture seule opsi_depot.

Le rpertoire de construction des paquets (opsi_workbench)


Dans /home/opsiproducts vous y trouverez lendroit idal pour crer de nouveaux paquets et partir de l vous
devriez installer les paquets avec opsi-package-manager.
Partage avec les fichiers de configuration des backends (opsi_config)
Dans /var/lib/opsi vous trouverez les fichiers de configuration des backends.

11.7 la gestion des problmes

Si vous avez des incidents en utilisant opsi, vous devriez vrifier la liste suivante ou plutt excuter les commandes
suivantes. Lexprience a montr que la combinaison des commandes dans ce chapitre fixe la plupart des incidents.
Vrifiez laccessibilit et la charge de opsi-webservice:
Appelez avec votre navigateur ladresse URL: https://<server-ip>:4447/info. Si ne pouvez pas vous connecter,
passez ltape suivante. Si vous pouvez vous connecter: vrifier la charge de opsi-webservice et vrifiez lespace
libre sur le disque (dfiler vers le bas dans la page dinformation).
Vrifiez que les dmons sont en marche et redmarrez-les:
ps -ef | grep opsiconfd
ps -ef | grep opsipxeconfd
/etc/init.d/opsiconfd restart
/etc/init.d/opsipxeconfd restart

Initialiser la configuration

opsi-setup --init-current-config

Dfinissez les droits pour les fichiers et les rpertoires importants dans opsi:

opsi-setup --set-rights

Nettoyez le backend

opsi-setup --cleanup-backend

Vrifiez que samba est en marche:

ps -ef | grep mbd

Il doit excuter au moins un processus nmbd et un processus smbd.


Pour redmarrer samba:
/etc/init.d/samba restart
opsi manual opsi version 4.0.3 82 / 175

ou
service nmbd restart
service smbd restart

Dfinissez le mot de passe pcpatch:

opsi-admin -d task setPcpatchPassword

12 La scurit

12.1 Introduction

OPSI est un outil puissant pour ladministration de nombreux clients.


Daprs cette ralit, le serveur opsi doit tre au centre des considrations de scurit.
Si vous contrlez le serveur opsi, vous contrlez tous les clients qui se connectent ce serveur opsi.
Combien de temps et dargent vous devez dpenser pour la scurit de votre serveur opsi, dpend de vos besoins en
matire de scurit et de lenvironnement oprationnel pour lutilisation de opsi. Ainsi, par exemple un serveur opsi
dans le cloud est plus en danger que un serveur opsi dans un rseau scuris.
Dans le chapitre suivant, nous avons rassembl les questions et les problmes les plus importantes.
A ce stade, nous disons merci tous les clients et les utilisateurs qui nous renseignent sur les problmes de scurit
et qui nous aident amliorer la scurit du systme opsi. Si vous trouvez un problme de scurit, vous pouvez nous
informer (opsi@opensides.be) avant de divulguer la faille de scurit publiquement.

12.2 Restez lcoute

Des informations sur les mises jour de scurit et les nouvelles sont publis dans
la zone des Nouveauts, sur le forum OPSI:
https://forum.opsi.org/viewforum.php?f=15

12.3 La scurit gnrale du serveur

Le logiciel OPSI peut pas tre plus scuris que le systme dexploitation sous-jacent. Assurez-vous de mettre jour
votre serveur avec les mises jour de scurit de votre distribution Linux. Cela doit tre fait non seulement pour
opsi-configserver, mais aussi pour tous les opsi-depotserver.
Il peut vous aider linstallation de programmes qui informent par e-mail sil y a des nouvelles mises jour disponibles.
Debian, Ubuntu
apticron
RHEL, CentOS
yum-updatesd
Il y a beaucoup de possibilits pour amliorer la scurit de votre serveur Linux. Mais ce nest pas la tche de ce
manuel.
Nous serions heureux de vous aider dans cette tche dans le cadre dun contrat de support.
opsi manual opsi version 4.0.3 83 / 175

12.4 Dpt en lecture seule

Le dpt de partage qui est utilis par les clients, devrait tre en lecture seule. Ceci est important pour viter les
infections des fichiers par des virus dans le dpt de partage par un client infectes.
Depuis opsi 4.0.1 il y a un nouveau partage opsi_depot qui est en lecture seule. Pour utiliser ce partage, excutez (sur
tous vos opsi-servers):
opsi-setup --auto-configure-samba

Cette commande cre le nouveau partage. Ce partage pointe vers le rpertoire /var/lib/opsi/depot. Selon votre
distribution Linux, un lien symbolique de ce rpertoire dans /opt/pcbin/install sera cr.
Pour dire aux clients quils doivent maintenant utiliser ce nouveau partage, vous devez excuter le script suivant sur
votre opsi-configserver:
for depot in $(opsi-admin -dS method host_getIdents unicode "{\"type\":\"OpsiDepotserver\"}"); do
echo "Depot: $depot"
depot_remote=$(opsi-admin -dS method host_getObjects [] "{\"id\":\"$depot\"}" | grep "depotRemoteUrl=" | cut -d "=" \
-f2)
depot_local=$(opsi-admin -dS method host_getObjects [] "{\"id\":\"$depot\"}" | grep "depotLocalUrl=" | cut -d "=" -\
f2)
depot_remote_new=$(echo $depot_remote | sed "s|/opt_pcbin/install|/opsi_depot|")
depot_local_new=$(echo $depot_local | sed "s|/opt/pcbin/install|/var/lib/opsi/depot|")
servertype=$(opsi-admin -dS method host_getObjects [] "{\"id\":\"$depot\"}" | grep "type=" | cut -d "=" -f2)
opsi-admin -d method host_updateObjects "{\"type\":\"$servertype\",\"id\":\"$depot\",\"depotLocalUrl\":\"\
$depot_local_new\",\"depotRemoteUrl\":\"$depot_remote_new\"}"
done

12.5 Lauthentification du client sur le serveur

Le client sauthentifie en utilisant le nom de domaine complet comme nom dutilisateur et le opsi-host-key comme mot
de passe.
Le opsi-host-key est stock sur le client dans le fichier:
%programfiles%\opsi.org\opsi-client-agent\opsiclientd\opsiclientd.conf
qui est lisible avec des privilges administratifs seulement.
Le opsi-host-key est stock au niveau du serveur dans le backend utilis (ex. dans /etc/opsi/pckeys).
En plus de cette authentification, vous pouvez dire opsiconfd de vrifier si ladresse IP du client correspond au FQDN
donn. Pour activer cette vrification, vous pouvez dfinir dans /etc/opsi/opsiconfd.conf:
verify ip = yes

et recharger opsiconfd:
/etc/init.d/opsiconfd reload

Attention
Nutilisez pas cette fonction si vous ntes pas vraiment sr que votre rsolution de noms fonctionne correctement
dans les deux sens pour tous les clients.

12.6 Lauthentification du serveur au client

Depuis opsi 4.0.1 il existe diffrentes possibilits de vrifier la fiabilit du serveur contact.
opsi manual opsi version 4.0.3 84 / 175

Attention
Ne les utilisez pas en combinaison. Choisissez une seule voie ou vous serez verrouill depuis votre client.

12.6.1 Variante 1: verify_server_cert

Lors du premier contact un serveur opsi, le client accepte le certificat SSL donne et le stocke dans C:\opsi.org\
opsiclientd\server-certs.
Pendant tout contact ultrieur, le client cre une chane alatoire et utilise la public key du certificat stock pour
chiffrer cette chane (et les paramtres daccs). Ces donnes cryptes sont transmises au serveur.
Le serveur utilise la private key de son propre certificat SSL pour dcrypter les donnes et envoie la chane alatoire
dcrypte en retour vers le client.
Maintenant, le client vrifie si la chane correcte a t renvoy. Si ce nest pas le cas, la communication avec le serveur
est interrompue.
Vous pouvez empcher la possibilit de diriger vos clients vers un mauvais serveur, par exemple en manipulant les
DNS. Si vous configurez un nouveau serveur, vous pouvez migrer le certificat SSL de lancien vers le nouveau serveur
sans problmes. Et vous ne devez pas dployer aucune autorit de certification (CA).
Linconvnient de cette mthode est que un attaque man-in-the-middle est encore possible.
Cette mthode de scurit vrifie la communication entre le client et opsi-configserver.
En utilisant lextension WAN dopsi et que clientconfig.depot.protocol webdav, aussi les communication vers
opsi-depotserver sont vrifies.
Section 15.3.1
Pour activer cette vrification, rgl opsiclientd.conf dans la section [global] loption:
verify_server_cert = true

Excutez la commande suivante sur votre opsi-configserver pour crer cette entre de configuration pour tous les
clients:
opsi-admin -d method config_createBool opsiclientd.global.verify_server_cert "verify_server_cert" false

Maintenant, vous pouvez activer cette fonction, en utilisant opsi-configed avec le bouton Configuration du Serveur ou
longlet Rsaux et paramtres supplmentaires des clients slectionns en modifiant la valeur de false true.

Attention
Soyez trs prudent avec lactivation de "verify_server_cert", car, en cas de mauvaise configuration, vos clients
refusront la connexion!

12.6.2 Variante 2: verify_server_cert_by_ca

Cette variante fonctionne exactement comme les certificats SSL qui sont vrifies dans votre navigateur.
Le certificat SSL donne ne sera accepte que sil est mis pour le FQDN exacte (commonName) du serveur (ou si le
DNS vrifie que cest le nom de domaine complet correspondant ladresse IP du serveur) et le certificat est dlivr
et sign par uib gmbh.
Si une de ces conditions nest pas vrai, la communication avec le serveur est interrompu.
Cette mthode est plus sre que la premire. Mais vous devrez acheter les certificats chez uib gmbh. Pour les prix et
conditions, vous pouvez jeter un oeil la liste des prix uib gmbh:
http://uib.de/en/opsi_support/index.html
Tous les profits de la vente de ces certificats seront investis dans le maintien de la scurit dopsi.
Pour activer cette mthode de scurit, rgl dans opsiclientd.conf dans la section [global] loption:
opsi manual opsi version 4.0.3 85 / 175

verify_server_cert_by_ca = true

Excutez la commande suivante sur votre opsi-configserver pour crer cette entre de configuration pour tous les
clients:
opsi-admin -d method config_createBool opsiclientd.global.verify_server_cert_by_ca "verify_server_cert_by_ca" false

Maintenant, vous pouvez lactiver en utilisant opsi-configed avec le bouton Configuration du Serveur ou longlet Rsaux
et paramtres supplmentaires des clients slectionns en modifiant la valeur de false true.

Attention
Soyez trs prudent avec lactivation de "verify_server_cert_by_ca", car, en cas de mauvaise configuration, vos
clients refusront la connexion!

12.7 Lauthentification au niveau du serveur de commande du client

opsiclientd fournit une interface de service Web, ce qui permet le contrle distance de opsiclientd et donc le contrle
distance du client.
(Section 7.3.9).
Pour accder cette interface est ncessaire lauthentification. Vous pouvez vous authentifier en tant quadministrateur
local avec un mot de passe non vide, ou avec un nom dutilisateur vide et le opsi-host-key comme mot de passe.

12.8 Configuration du rseau admin

Lide dun rseau admin est dinterdire tout accs administratif partir du rseau de production standard et permettre
ces accs qu partir dun rseau admin spcial.
Avec opsi tous les clients ont un accs restreint au opsi web service, ce qui leur permet de lire et modifier leurs propres
donnes. Laccs administratif avec des privilges supplmentaires est accord seulement aux membres du groupe unix
opsiadmin.
Si vous configurez un paramtre admin networks, tous les accs administratifs sont limits ce rseau(x).
Dfinissant loption [global] admin networks dans /etc/opsi/opsiconfd.conf limitera laccs administratif op-
siconfd pour les connexions en provenance de ladresse de rseau spcifique(s).
Vous pouvez donner plusieurs adresses spares par des virgules.
Laccs non administratif peut galement provenir dautres rseaux.
La valeur par dfaut est:
admin networks = 0.0.0.0/0

et permet un accs administrateur depuis tous les rseaux.


Une configuration comme par exemple:
admin networks = 127.0.0.1/32, 10.1.1.0/24

restreint laccs administratif au serveur lui-mme et depuis le rseau 10.1.1.0/24.


opsi manual opsi version 4.0.3 86 / 175

12.9 Lutilisateur pcpatch


Avec opsi 4 lutilisateur pcpatch est seulement utilis par opsi-client-agent pour monter le dpt de partage (et en ce
moment par les produits netboot ntfs-write-image et ntfs-restore-image pour lire et crire les fichiers images via ssh).
Le mot de passe de lutilisateur pcpatch est gnralement stock et transmis crypt. Dans des circonstances spciales
il pourrait tre possible de capturer le mot de passe en clair. Pour rduire les risques rsultants , vous devez faire ce
qui suit:
Refuser lutilisateur pcpatch laccs tous les partages autres que le partage opsi_depot. Vous devez faire cela en
ajoutant lentre suivante toutes les dfinitions de partage (sauf opsi_depot) dans /etc/samba/smb.conf:
invalid users = root pcpatch

Alternative
Dans /etc/samba/smb.conf restreindre les privilges de lutilisateur pcpatch en lecture seule globale en dfinissant
dans la section [global]:
read list = pcpatch

Comme tche supplmentaire vous devriez changer frquemment le mot de passe de lutilisateur pcpatch. Vous pouvez
dfinir le mot de passe comme une chane alatoire que personne ne doit connatre (sauf opsi). Vous pouvez le faire
en appelant la commande suivante, par exemple par une tche cron:
opsi-admin -d task setPcpatchPassword $(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c16)

Si vous ne prvoyez pas dutiliser les produits netboot ntfs-write-image et ntfs-restore-image, vous pouvez refuser
une ouverture de session pour lutilisateur unix pcpatch en dfinissant dans /etc/passwd le shell /bin/false pour
lutilisateur pcpatch.

13 Sauvegarde dopsi

13.1 Introduction
Votre serveur opsi devrait tre sauvegards (comme tout autre systme important). Ce chapitre montre ce quil faut
sauvegarder et comment.
Et, bien sr, comment restaurer.

13.2 Conditions pralables la sauvegarde


Vous devez excuter commande opsi-backup comme root.
Vous devez installer le programme mysqldump avant de pouvoir utiliser opsi-backup dans le cadre du backend mysql.
Habituellement, ce programme fait partie des paquets du client mysql.

13.3 Mise en route rapide


Crer une sauvegarde:
opsi-backup create opsi_backup.tar.bz2

Cre une sauvegarde des backends utiliss et toutes les donnes de configuration dans le rpertoire courant avec le
nom opsi_backup.tar.bz2.
Restaurer une sauvegarde:
opsi-backup restore --backends=all --configuration opsi_backup.tar.bz2

Restaure les donnes partir du fichier de sauvegarde opsi_backup.tar.bz2, qui est recherch dans le rpertoire
courant.
opsi manual opsi version 4.0.3 87 / 175

13.4 lments de base dopsi

OPSI peut tre divis en cinq parties diffrentes qui peuvent tre sauvegards ou pas. Lemplacement o se trouvent
ces parties peut varier (selon la distribution Linux, la version et la configuration).

13.4.1 La configuration dopsi

La partie la plus importante de OPSI est la configuration. Vous la trouverez dans /etc/opsi.
Cette partie sera sauvegard par opsi-backup.

13.4.2 Les backends Opsi

Les donnes sur les clients grs et les produits peuvent tre stockes dans diffrents backends. Les backends les plus
importants sont:

Table 1: backends opsi

Backend Description
file-Backend backend bas sur les fichiers (backend par dfaut)
mysql-Backend backend bas sur MySQL (depuis opsi 4 pour toutes
les donnes de configuration)
ldap Stocker les donnes de configuration dans lannuaire
ldap
univention backend LDAP spcial pour les serveurs dentreprise
Univention
dhcp Backend spcial qui est utilis en combinaison avec un
dhcpd du serveur opsi

Des backends diffrents peuvent tre utiliss des fins diffrentes en mme temps. Donc, vous devriez jeter un oeil
/etc/opsi/backendManager/dispatch.conf pour voir quels backends vous utilisez.
Cette partie sera sauvegard par opsi-backup.

13.4.3 dpt de partage opsi

Dans le dpt de partage opsi Vous trouverez les fichiers dinstallation des logiciels installer sur les clients par opsi.
Les rpertoires qui contiennent ces fichiers (produits Localboot et produits netboot) sont situs dans /opt/pcbin/
install ou /var/lib/opsi/depot.
Selon le nombre des systmes dexploitation, pilotes, logiciels et ainsi de suite qui se trouvent ici, cette partie pourrait
tre de grande taille.
Cette partie ne sera pas sauvegard par opsi-backup.
Donc, si vous voulez sauvegarder cette partie, vous pouvez utiliser rsnapshot ou dautres utilitaires de sauvegarde.

13.4.4 opsi work bench

opsi work bench est le lieu qui est utilis pour crer ses propres paquets. Il est gnralement situ dans /home/
opsiproducts et exports comme partage Samba opsi_workbench. Puisque ce rpertoire contient votre propre travail,
il doit tre sauvegard.
Cette partie ne sera pas sauvegard par opsi-backup.
Donc, si vous voulez sauvegarder cette partie, vous pouvez utiliser rsnapshot ou dautres utilitaires de sauvegarde.
opsi manual opsi version 4.0.3 88 / 175

13.4.5 dpt opsi

Le rpertoire /var/lib/opsi/repository est utilis pour stocker les paquets opsi, qui sont tlchargs via opsi-
product-updater ou qui sont installs par opsi-package-manager lorsque vous utilisez loption -d.
Cette partie ne sera pas sauvegard par opsi-backup.
Donc, si vous voulez sauvegarder cette partie, vous pouvez utiliser rsnapshot ou dautres utilitaires de sauvegarde.

13.5 Le logiciel opsi-backup

opsi-backup est un programme en ligne de commande qui facilite la cration et la restauration des sauvegardes de
donnes opsi.
Les commandes de base sont create, restore et verify.
Loption --help affiche des informations sur les options de ligne de commande. Utilisez aussi <command> --help (ex.
opsi-backup create --help) pour obtenir des informations sur les options de la commande.
opsi-backup --help

Lutilitaire opsi-backup stocke les donnes de configuration et le backend dans presque le mme format auquel ils
ont t trouvs sur le serveur. Donc, vous ne pouvez pas restaurer ces donnes sur un serveur qui utilise
dautres backends, ou dispose dautres versions dopsi ou est dune autre manire diffrente en ce qui
concerne la structure des donnes opsi.
opsi-backup cre toujours une sauvegarde complte. Il ny a pas de support pour les sauvegardes incrmentielles ou
diffrentiel.

Attention
Remarquez que opsi-backup ne cre pas de sauvegarde de:
* opsi depot share * opsi work bench * opsi repository

opsi-backup cre un fichier de sauvegarde, dans le format compress tar. Donc vous pouvez accder aux donnes
laide dautres outils standard.

Attention
Un fichier de sauvegarde cr par opsi-backup peut contenir un mot de passe, touches de raccourci et dautres
donnes lies la scurit. Donc, assurez-vous de stocker les fichiers de sauvegarde dans un endroit sr.

13.5.1 Crer une sauvegarde

Pour crer une sauvegarde utilisez opsi-backup create.


Cette commande (sans options supplmentaires) crera une sauvegarde de toutes les donnes de configuration et
de tous les backends utilises. Le fichier de sauvegarde sera stock dans le rpertoire courant avec un nom gnr
automatiquement.
Pour obtenir des informations sur les options possibles de create appelez
opsi-backup create --help
opsi-backup create
opsi-backup create --help
usage: opsi-backup create [-h] [--flush-logs]
[--backends {file,mysql,dhcp,auto,all}]
[--no-configuration] [-c [{gz,bz2,none}]]
[destination]
opsi manual opsi version 4.0.3 89 / 175

positional arguments:
destination Destination of the generated output file. (optional)

optional arguments:
-h, --help show this help message and exit
--flush-logs Causes mysql to flush table logs to disk before the
backup. (recommended)
--backends {file,mysql,dhcp,auto,all}
Select a backend to backup or all for all backends.
Can be given multiple times. (Default: auto)
--no-configuration Backup opsi configuration.
-c [{gz,bz2,none}], --compression [{gz,bz2,none}]
Sets the compression format for the archive (Default:
bz2)

Vous pouvez donner le rpertoire cible ou le chemin complet vers le fichier de sauvegarde en option pour opsi-backup
create. Si loption donne est un nom de fichier, la sauvegarde sera cr dans ce fichier - les fichiers existants seront
crass. Si loption est un dossier, le fichier de sauvegarde sera cr dans ce rpertoire avec un nom de fichier gnr
en utilisant le motif: <nom dhte>_<version dopsi>_<date>_<heure>
opsi-backup create /mnt/backup/opsi_backup.tar.bz2
opsi-backup create /mnt/backup/

Les autres options pour create sont:


--backends {file,mysql,dhcp,all,auto}
est utilis pour slectionner les backends qui doivent tre inclus dans la sauvegarde. Vous pouvez donner cette option
plusieurs fois.
Loption --backends=all comprend tous les backends supports.
La valeur par dfaut est --backends=auto, qui signifie que opsi-backup lit le fichier de configuration /etc/opsi/
backendManager/dispatch.conf et sauvegarde tous les backends supports utiliss dans cette configuration. Les
backends supports sont: mysql, file, dhcp
opsi-backup create --backends=file --backends=mysql
opsi-backup create --backends=all

ASTUCE
Si vous utilisez un backend pas pris en charge (comme ldap), vous pouvez utiliser opsi-convert pour convertir vos
donnes vers un backend qui est pris en charge par la sauvegarde.

--no-configuration
Exclut kes fichiers opsi configuration de la sauvegarde.

opsi-backup create --no-configuration

-c [{gz,bz2,none}], --compression [{gz,bz2,none}]


Spcifie la mthode de compression. none signifie pas de compression.
La valeur par dfaut est bz2.

opsi-backup create -c bz2

--flush-log
La sauvegarde du backend mysql utilise la commande mysqldump. Cela signifie que toutes les donnes connues par
la base de donnes sont sauvegards, peu importe si elles sont sur le disque ou encore seulement dans la mmoire.
Cela signifie, que votre sauvegarde peut tre plus actuel que vos fichiers de base de donnes (ce qui nest vraiment
pas un problme).
Si vous voulez vous assurer que la base de donnes stocke les donnes sur le disque avant de commencer