Opsi – Pour aller plus loin

01. Fichiers et dossiers importants

01.1. /etc/opsi/

Contient les fichiers de configuration des différents backends :

  • /etc/opsi/backendManager/dispatch.conf : fichier de configuration général des backends utilisés (file, opsipxecond, mysql)
  • /etc/opsi/backends/dhcpd.conf : fichier de configuration du backend DHCP
  • /etc/opsi/backends/file.conf : fichier de configuration du backend file
  • /etc/opsi/backends/opsipxeconfd.conf : fichier de configuration du backend DHCP
  • /etc/opsi/backends/mysql.conf : fichier de configuration du backend mysql

Contient les fichiers de configuration des différents services :

  • /etc/opsi/opsipxeconfd.conf : fichier de configuration du service opsipxeconfd
  • /etc/opsi/opsiconfd.conf : fichier de configuration du service opsiconfd

Contient des fichier de configuration divers :

  • /etc/opsi/opsi-product-updater.conf : fichier de configuration des dépôts uib déclarés
  • /etc/opsi/passwd : mot de passe crypté de l’utilisateur pcpatch
  • /etc/opsi/version : version du service Opsi Configed
  • /etc/opsi/pckeys : clefs uniques permettant de décrypter le mot de passe de l’utilisateur pcpatch et ainsi assurer la connexion d’un client au serveur.

 

01.2. /tftpboot/linux/

Contient les images de boot PXE et TFTP :

  • pxelinux.0 et son fichier de configuration /tftpboot/linux/pxelinux.cfg/default
  • install et install-x64
  • miniroot.bz2 et miniroot-x64.bz2

L’image de boot pxelinux.0 (obtenue via PXE) charge l’image /tftpboot/linux/pxelinux.cfg/install si le client existe ou /tftpboot/linux/pxelinux.cfg/default le cas échéant, et charge ensuite l’image miniroot.bz2 (obtenues via TFTP).
 

01.3. /var/log/opsi/

Contient les fichiers de logs des différents services ou évènements :

  • /var/log/opsi/opsiconfd/ : logs du service opsiconfd
  • /var/log/opsi/opsipxeconfd.log : logs du service opsipxeconfd
  • /var/log/opsi/clientconnect/ : logs de connexion au serveur des différents clients
  • /var/log/opsi/instlog/ : journaux systèmes d’installation de produits des différents clients (que l’on retrouve sur Opsi Configed)
  • /var/log/opsi/opsi-product-updater.log : logs d’installation et mises à jour des produits niveau serveur
  • /var/log/opsi/package.log : logs d’installation ou suppression manuelles de produits via opsi-package-manager

 

01.4. /var/lib/opsi/repository/

Contient les produits localboot et netboot téléchargés sur les dépôts uib déclarés et actifs.
Chaque produit possède 3 fichiers :

  • productID_version.opsi : archive contenant les fichiers du produit
  • productID_version.opsi.md5 : empreinte md5 du produit
  • productID_version.opsi.zsync : fichier référence permettant de ne télécharger que les parties modifiées du produits lors de mises à jour

Les produits sont téléchargés dans ce dossier puis extraits dans le dossier /var/lib/opsi/depot/ lors de leur installation automatique.
 

01.5. /home/opsiproducts/

Dépôt des produits personnels créés manuellement via opsi-newprod.
 

01.6. /var/lib/opsi/depot/

Dépôts des produits installés :

  • Soit automatiquement lors de l’extraction des produits issus des dépôts uib stockés dans /var/lib/opsi/repository/
  • Soit manuellement via la commande opsi-package-manager exécutée sur les produits personnels stockés dans /home/opsiproducts/ pour extraire le contenu des archives .opsi

 

01.7. /var/lib/opsi/config/products/

Contient, pour chaque produit installé, un fichier nommé productID_version.localboot ou productID_version.netboot, en fonction de la nature du produit (localboot ou netboot).
Il s’agit d’une copie du fichier control de chaque produit lorsque celui-ci est installé.
Il contient donc toutes les données relatives au produit, comme ses propriétés, valeurs possibles, versions, dépendances, etc.
Si le fichier control est modifié et le produit réinstallé, les modifications faites sur ce fichier seront écrasées, il faut donc modifier le fichier control.
Toutefois, bizarrement, une modification des valeurs par défaut d’une propriété sur le fichier de control n’a pas d’effet sur Opsi Configed après réinstallation du produit. Pour les modifier il faut également éditer le fichier de configuration du dépôt local d’Opsi Configed /var/lib/opsi/config/depots/host-fqdn.ini, par ex : /var/lib/opsi/config/depots/opsi-test.opensharing.priv.ini
 

01.8. /var/lib/opsi/config/clients/

Contient les fichiers de backends pour chaque client installé.
Par ex : /var/lib/opsi/config/clients/opsiclt7-01.opensharing.priv.ini

[info]
created = 2017-02-12 02:55:23
description = 
hardwareaddress = 00:50:56:32:66:32
inventorynumber = 
ipaddress = 192.168.1.201
lastseen = 2017-02-24 17:10:32
notes = Automatically created by linux bootimage

[generalconfig]
clientconfig.configserver.url = ["https://192.168.1.13:4447/rpc"]
clientconfig.depot.drive = ["p:"]
clientconfig.depot.dynamic = [false]
clientconfig.depot.id = ["opsi-test.opensharing.priv"]
clientconfig.depot.protocol = ["cifs"]
clientconfig.dhcpd.filename = [""]
clientconfig.install_by_shutdown.active = [false]
clientconfig.windows.domain = ["WORKGROUP"]
[...]

 

01.9. /var/lib/opsi/config/depots/

Contient le fichier de configuration du dépôt local d’Opsi Configed. On y trouve toutes les produits netboot et localboot, leur état (installé ou non), les propriétés de chacun et leurs valeurs par défaut.
Par ex : /var/lib/opsi/config/depots/opsi-test.opensharing.priv.ini

[activate-win-install]
httpproxy = [""]
method = ["only-activate"]
poolid-or-licensekey = []

[activate-win-state]
locked = False
packageversion = 9
producttype = LocalbootProduct
productversion = 1.0
[...]
[depotshare]
localurl = file:///var/lib/opsi/depot
remoteurl = smb://opsi-test/opsi_depot
webdavurl = webdavs://opsi-test.opensharing.priv:4447/depot

[firefox-state]
locked = False
packageversion = 1
producttype = LocalbootProduct
productversion = 45.7.0
[...]

 

01.10. /var/lib/opsi/config/config.ini

Fichier de configuration serveur du dépôt local d’Opsi Configed (on peut par exemple y modifier la lettre de montage sur le client, p: par défaut).

[clientconfig.configserver.url]
defaultvalues = ["https://192.168.1.13:4447/rpc"]
description = URL(s) of opsi config service(s) to use
editable = true
multivalue = true
possiblevalues = ["https://192.168.1.13:4447/rpc"]
type = UnicodeConfig

[clientconfig.depot.drive]
defaultvalues = ["p:"]
description = Drive letter for depot share
editable = false
multivalue = false
possiblevalues = ["a:", "b:", "c:", "d:", "dynamic", "e:", "f:", "g:", "h:", "i:", "j:", "k:", "l:", "m:", "n:", "o:", "p:", "q:", "r:", "s:", "t:", "u:", "v:", "w:", "x:", "y:", "z:"]
type = UnicodeConfig
[...]

 

 

02. Les services Opsi

02.1. Le service opsiconfd

C’est le démon central Opsi, il fournit le service web Opsi Configed et bien d’autres choses.
Son fichier de configuration est /etc/opsi/opsiconfd.conf.

02.2. Le service opsipxeconfd

Il assure le lien entre le boot PXE et le service TFTP.
Il génère les fichiers /tftpboot/linux/pxelinux.cfg/MAC-address lors de la programmation d’une installation d’un produit Netboot sur un client via l’interface Opsi Configed.
Son fichier de configuration est /etc/opsi/opsipxeconfd.conf.

02.3. Le service opsiclientd

Service de l’agent Opsi en écoute côté client permettant l’installation/suppresion à la demande de produits ou la programmation d’installation/suppression lors du démarrage.

 

03. Les utilisateurs et groupes Opsi

03.1. L’utilisateur pcpatch

Cet utilisateur est uniquement utilisé par opsi-client-agent sur le client pour monter le dépôt de partage [opsi_depot], en lecture seule, pointant sur /var/lib/opsi/depot/ (par défaut avec la lettre p:).
Cet utilisateur a normalement l’UID 992. Son mot de passe, initialement généré aléatoirement, peut être redéfini et choisi avec la commande suivante :

opsi-admin -d task setPcpatchPassword

Ce mot de passe crypté est stocké dans le fichier /etc/opsi/passwd
Pour générer un mot de passe aléatoire, connu uniquement du serveur Opsi (ce qui devrait être le cas) :

opsi-admin -d task setPcpatchPassword $(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c16)

03.2. Le groupe pcpatch

Tout utilisateur utilisé pour générer des paquets (opsi-newprod et opsi-makeproductfile), les installer ou les supprimer (opsi-package-manager) doit être membre du groupe pcpatch (adminuser, voire root éventuellement si ajouté au groupe). Il a normalement pour GID 992.
Le groupe pcpatch est propriétaire du dossier /home/opsiproducts, avec les droits 2770, sur lequel pointe le partage [opsi_workbench].

03.3. Le groupe opsiadmin

Ce groupe est autorisé à se connecter à l'interface Opsi Configed, c'est pourquoi l'utilisateur adminuser doit en être membre.

03.4. L'utilisateur adminuser

Il doit être membre du groupe pcpatch pour utiliser les commandes de création ou suppression de produits : opsi-newprod, opsi-makeproductfile, opsi-product-manager
Il doit être membre du groupe opsiadmin pour pouvoir se connecter à l'interface web de gestion Opsi Configed.
Il permet à un client l'obtention de la clef pckey permettant de décrypter le mot de passe de l'utilisateur pcpatch et ainsi le montage du dépôt [opsi_depot].

 

04. L'image de boot miniroot.bz2

L'image de boot miniroot.bz2 (ou miniroot-x64.bz2) est une archive CPIO de 270 Mo compressée au format bz2 (88 Mo).
Elle contient, une fois décompressée et désarchivée, l'image live OS modifiée et adaptée d'une distribution Debian 9 Stretch (version de la branche testing en évaluation).


 
Par défaut, cette image (stockée dans /tftpboot/linux/) est chargée sur le client en langue allemande.
Pour modifier sa langue, en français par exemple, il faut éditer les fichiers suivants et ajouter le paramètre lang=fr :
 
/tftpboot/linux/pxelinux.cfg/default

label install
  menu label Start ^opsi bootimage
  text help
                 Start opsi linux bootimage from tftp server.
  endtext
  kernel install
  append initrd=miniroot.bz2 video=vesa:ywrap,mtrr vga=791 quiet splash --no-log console=tty1 console=ttyS0 service=https://192.168.1.13:4447/rpc lang=fr
 
label install-x64
  menu label Start o^psi bootimage (x64)
  text help
                 Start opsi linux bootimage 64-Bit from tftp server.
  endtext
  kernel install-x64
  append initrd=miniroot-x64.bz2 video=vesa:ywrap,mtrr vga=791 quiet splash --no-log console=tty1 console=ttyS0 service=https://192.168.1.13:4447/rpc lang=fr

/tftpboot/linux/pxelinux.cfg/install

default opsi-install

label opsi-install
  kernel install
  append initrd=miniroot.bz2 video=vesa:ywrap,mtrr vga=791 quiet splash --no-log console=tty1 console=ttyS0 lang=fr

/tftpboot/linux/pxelinux.cfg/install-x64

default opsi-install-x64

label opsi-install-x64
  kernel install-x64
  append initrd=miniroot-x64.bz2 video=vesa:ywrap,mtrr vga=791 quiet splash --no-log console=tty1 console=ttyS0 lang=fr

 

05. Installer l'OS en français avec clavier français

Il faut pour cela éditer le fichier unattend relatif à l'OS et mettre toutes les références à la langue sur fr-FR :

  • Windows XP : /var/lib/opsi/depot/winxppro/custom/unattend.txt
  • Windows 7 : /var/lib/opsi/depot/win7/custom/unattend.xml
  • Windows 10 : /var/lib/opsi/depot/win10/custom/unattend.xml

Par exemple, pour Windows 7 :

<!-- Lignes 79 à 86 -->
[...]
				<UILanguage>fr-FR</UILanguage>
				<WillShowUI>OnError</WillShowUI>
			</SetupUILanguage>
			<InputLocale>fr-FR</InputLocale>
			<SystemLocale>fr-FR</SystemLocale>
			<UILanguage>fr-FR</UILanguage>
			<UILanguageFallback>fr-FR</UILanguageFallback>
			<UserLocale>fr-FR</UserLocale>
[...]
<!-- Lignes 163 à 167 -->
			<InputLocale>fr-FR</InputLocale>
			<SystemLocale>fr-FR</SystemLocale>
			<UILanguage>fr-FR</UILanguage>
			<UILanguageFallback>fr-FR</UILanguageFallback>
			<UserLocale>fr-FR</UserLocale>

 

06. Choisir le mot de passe Administrateur

Exemple pour Windows 7, éditer le fichier /var/lib/opsi/depot/win7/custom/unattend.xml

<!-- Lignes 284 à 287 -->
[...]
				<AdministratorPassword>
					<PlainText>true</PlainText>
					<Value>nt123</Value>
				</AdministratorPassword>
[...]
<!-- Lignes 309 à 317 -->
[...]
			<AutoLogon>
				<Enabled>true</Enabled>
				<LogonCount>1</LogonCount>
				<Username>Administrator</Username>
				<Password>
					<PlainText>true</PlainText>
					<Value>nt123</Value>
				</Password>
			</AutoLogon>

 

07. Les dépôts uib

Fichier /etc/opsi/opsi-product-updater.conf

  • autoInstall : installe tous les produits disponibles dans les sections actives. Si un produit est déjà installé et à jour, il ne sera pas à nouveau installé
  • autoUpdate : met à jour les produits obsolètes déjà installés. N'installera pas de produits supplémentaires
  • autoSetup : suite à l'installation ou la mise à jour d'un produit, programmera l'installation de ce dernier sur chaque client où le produit est installé

 

08. Le boot PXE

Quand on met un setup pour un hôte sur une distribution à déployer, un fichier /tftpboot/linux/pxelinux.cfg/MAC-address est généré. Il est chargé en priorité sur le fichier /tftpboot/linux/pxelinux.cfg/default.

# cat /tftpboot/linux/pxelinux.cfg/01-00-50-56-32-66-32
default opsi-install

label opsi-install
  kernel install
  append initrd=miniroot.bz2 video=vesa:ywrap,mtrr vga=791 quiet splash --no-log console=tty1 console=ttyS0 dn=opensharing.priv product=win10 hn=opsiclt7-01 pckey=e1694e57703be9a808711bd93339786c service=https://192.168.1.13:4447/rpc

Il s'agit d'une copie modifiée (produit, pckey, etc.) du fichier /tftpboot/linux/pxelinux.cfg/install pour un système 32 bits ou /tftpboot/linux/pxelinux.cfg/install-x64 pour un système 64 bits.

 

09. Renouveler une clef GPG expirée

# apt-key list
/etc/apt/trusted.gpg
--------------------
[...]
pub   1024D/4DC87421 2010-07-23 [expirée : 2017-02-17]
uid                  home:uibmz OBS Project 
[...]
# apt-key del 4DC87421
OK
# wget -O - http://download.uib.de/opsi4.0/uibmz_key.pub | apt-key add -
--2017-03-05 16:34:13--  http://download.uib.de/opsi4.0/uibmz_key.pub
Résolution de download.uib.de (download.uib.de)… 5.9.1.108
Connexion à download.uib.de (download.uib.de)|5.9.1.108|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 999
Sauvegarde en : « STDOUT »

-            100%[===================================================================>]     999  --.-KB/s   ds 0s     

2017-03-05 16:34:13 (177 MB/s) — envoi vers sortie standard [999/999]

OK
# apt-key list
/etc/apt/trusted.gpg
--------------------
[...]
pub   1024D/4DC87421 2010-07-23 [expire : 2019-04-27]
uid                  home:uibmz OBS Project 
[...]

 

Aller plus loin

 

Opsi - Installation du serveur Part1 Opsi - Installation du serveur Part2
Opsi - Creation d'une image Windows 7 Opsi - Installation d'un client Windows 7
Opsi - Creation d'une image Windows 10 Opsi - Installation d'un client Windows 10
Opsi - Creation d'une image Windows XP Opsi - Installation d'un client Windows XP
Opsi - Pour aller plus loin Opsi - Fonctionnement des scripts
Opsi - Exemples de scripts Opsi - Script de test local
Opsi - Scripts avancés Opsi - Création d'un produit
Opsi - Commandes utiles Opsi - Package activate-win Officiel
Opsi - Package windomain Officiel

 

Références

 

Fermer le menu
%d blogueurs aiment cette page :