Opsi – Installation d’un client Windows 7

Opsi

Opsi (Open PC Server Integration) est un outil de gestion de clients Windows basé sur un serveur Linux et sous licence AGPLv3 (hors code des modules cofinancés), version modifiée et orientée serveurs de la licence GPLv3. Son code source est la propriété de la société uib gmgh et son représentant en France/Belgique est la société Opensides.

uibopensides

Ses fonctionnalités principales sont :

  • Installation automatisée via PXE de systèmes d’exploitation clients Windows par le biais d’une image
  • Distribution automatique des logiciels via une connexion agent/serveur
  • Intégration automatique des drivers en se basant sur l’ID de ceux-ci
  • Inventaires matériels et logiciels
  • Dépôts logiciels multiples et décentralisés

 

Objectif

 

Dans cet article, nous installerons un client Opsi Windows 7 32 bits présentant les caractéristiques suivantes :

  • Nom court : opsiclt7-01
  • FQDN : opsiclt7-01.opensharing.priv
  • Adresse IP : 192.168.1.201
  • Adresse MAC : 00:50:56:32:66:32

Plusieurs scénarios seront envisagés :

  • Scénario 1 : installation assistée d’un nouveau client en PXE; configuration réseau obtenue via PXE, images de boot et de l’OS obtenus via TFTP
  • Scénario 2 : installation assistée d’un nouveau client en bootant à partir de l’ISO de l’image de boot stockée sur un support externe; configuration réseau obtenue via PXE et image de l’OS obtenue via TFTP
  • Scénario 3 : installation automatisée d’un nouveau client en PXE à partir de l’interface de gestion Opsi Configed; configuration réseau obtenue via PXE, images de boot et de l’OS obtenus via TFTP
  • Scénario 4 : réinstallation automatisée d’un client en PXE à partir de l’interface de gestion Opsi Configed; configuration réseau obtenue via PXE, images de boot et de l’OS obtenus via TFTP
  • Scénario 5 : intégration d’un client existant; installation locale de l’agent Opsi directement sur l’hôte via le script service_setup.cmd
  • Scénario 6 : intégration d’un client existant; installation distante de l’agent Opsi depuis le serveur Opsi via le script opsi-deploy-client-agent

 

Déroulement commun aux scénarios 1 à 4 :

  • Récupération des paramètres réseau auprès du serveur DHCP via PXE : adresse IP, nom d’hôte, masque, passerelle, serveur de boot, domaine, serveurs DNS
  • Inventaire matériel et des drivers requis
  • Chargement en local des fichiers du dossier winpe relatif à la distribution Windows 7 32 bits
  • Chargement en local des fichiers stockés dans /var/lib/opsi/depot/opsi-client-agent/ (ici 999 fichiers et 178 dossiers)
  • Chargement en local des fichiers des drivers identifiés
  • Chargement en local de l’image Windows 7 via TFTP
  • Installation de l’agent opsi et redémarrage
  • Installation éventuelle de paquets programmés

Déroulement commun aux scénarios 5 et 6 :

  • Chargement en local des fichiers stockés dans /var/lib/opsi/depot/opsi-client-agent/ (ici 999 fichiers et 178 dossiers)
  • Installation de l’agent opsi et redémarrage
  • Installation éventuelle de paquets programmés

 

Pré-requis

 

Ajout d’une réservation pour notre client sur les serveurs DHCP master et slave :

	group {
		use-host-decl-names true; 
		host opsiclt7-01 { hardware ethernet 00:50:56:32:66:32; fixed-address 192.168.1.201; }
	}
Contenu du fichier /etc/dhcp/dhcpd.conf sur le serveur DHCP master
include "/etc/bind/tsig.key";

authoritative;
ddns-update-style standard;
update-static-leases off;
ignore client-updates;
default-lease-time 1800;
max-lease-time 1800;
log-facility local7;
db-time-format local;

failover peer "opensharing-failover" {
        primary;
        address 192.168.1.11;
        port 647;
        peer address 192.168.1.12;
        peer port 647;
        max-response-delay 30; 
        max-unacked-updates 3; 
        load balance max seconds 3;
        mclt 480;
        split 128;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.1.1;
	ddns-domainname "opensharing.priv";
	ddns-rev-domainname "in-addr.arpa";
	option domain-name "opensharing.priv";
	option domain-name-servers dns1.opensharing.priv, dns2.opensharing.priv;
	set vendor-string = option vendor-class-identifier;
	pool {
	        failover peer "opensharing-failover";
		range 192.168.1.100 192.168.1.199;
		allow unknown-clients;
	}

	group {
		use-host-decl-names true; 
		host opsiclt7-01 { hardware ethernet 00:50:56:32:66:32; fixed-address 192.168.1.201; }
	}
}

zone opensharing.priv {
	primary 192.168.1.11;
	key "tsig-key";
}

zone 1.168.192.in-addr.arpa. {
	primary 192.168.1.11;
	key "tsig-key";
}
Contenu du fichier /etc/dhcp/dhcpd.conf sur le serveur DHCP slave
include "/etc/bind/tsig.key";

authoritative;
ddns-update-style standard;
update-static-leases off;
ignore client-updates;
default-lease-time 1800;
max-lease-time 1800;
log-facility local7;
db-time-format local;

failover peer "opensharing-failover" {
        secondary;
        address 192.168.1.12;
        port 647;
        peer address 192.168.1.11;
        peer port 647;
        max-response-delay 30; 
        max-unacked-updates 3; 
        load balance max seconds 3;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
	option subnet-mask 255.255.255.0;
	option routers 192.168.1.1;
	ddns-domainname "opensharing.priv";
	ddns-rev-domainname "in-addr.arpa";
	option domain-name "opensharing.priv";
	option domain-name-servers dns1.opensharing.priv, dns2.opensharing.priv;
	set vendor-string = option vendor-class-identifier;
	pool {
	        failover peer "opensharing-failover";
		range 192.168.1.100 192.168.1.199;
		allow unknown-clients;
	}

	group {
		use-host-decl-names true; 
		host opsiclt7-01 { hardware ethernet 00:50:56:32:66:32; fixed-address 192.168.1.201; }
	}
}

zone opensharing.priv {
	primary 192.168.1.11;
	key "tsig-key";
}

zone 1.168.192.in-addr.arpa. {
	primary 192.168.1.11;
	key "tsig-key";
}

 

Ajout d’un enregistrement de type A sur le serveur DNS master (répliqué automatiquement sur le DNS slave) :

# nsupdate -k /etc/bind/tsig.key
> update add opsiclt7-01.opensharing.priv 86400 a 192.168.1.201
> send
> update add 201.1.168.192.in-addr.arpa 86400 ptr opsiclt7-01.opensharing.priv
> send

 

Vérification de la résolution de noms directe et inversée :

# host opsiclt7-01
opsiclt7-01.opensharing.priv has address 192.168.1.201
# host 192.168.1.201
201.1.168.192.in-addr.arpa domain name pointer opsiclt7-01.opensharing.priv.
 

 

Réalisation

 

Scénario 1

Il faut dans un premier temps booter le client en PXE, donc sur son interface réseau.
Le client envoie alors une requête d’IP au serveur DHCP en broadcast. Ce dernier lui attribue l’IP réservée, c’est-à-dire 192.168.1.201 et lui communique les informations réseaux telles que le masque, la passerelle, son nom d’hôte, son domaine et son serveur DNS. Puis il l’informe que le serveur de boot est le serveur Opsi possédant l’IP 192.168.1.13.
Le client reçoit alors via TFTP une image de boot nommée pxelinux.0 puis miniroot.bz2, en 32 bits ou 64 bits en fonction de son choix :

    start opsi bootimage : pour une image de boot miniroot.bz2 en 32 bits, si le PC a une architecture 32 bits
    start opsi bootimage (x64) : pour une image de boot miniroot-x64.bz2 en 64 bits, si le PC a une architecture 64 bits

 
Peu d’informations sont demandées à l’utilisateur :

  • Quelle image de boot utiliser (miniroot.bz2 32 ou 64 bits)
  • Comment obtenir la clef de l’hôte (par un compte administrateur local du serveur Opsi)
  • Identifiant et mot de passe du compte administrateur adminuser
  • Quel produit Netboot installer (Win7, correspondant à Windows 7 32 bits)
  • Valider l’installation de l’OS
  • Choisir la langue d’installation

 


 
Après la fin de l’installation, le nouveau client opsiclt7-01 apparait bien sur l’interface de gestion Opsi Configed et son fichier de backend /var/lib/opsi/config/clients/opsiclt7-01.opensharing.priv.ini a été généré :

 
Toutefois, on a pu constater plusieurs correctifs à apporter par la suite :

  • L’image miniroot.bz2 est en allemand
  • La langue de l’OS est demandée à l’utilisateur
  • Le clavier de l’OS Windows 7 est en allemand
  • L’agent Opsi est également en allemand
  • Le compte local administrateur par défaut de l’OS a pour identifiants de connexion Administrateur/nt123

Pour cela, voir l’article Opsi – Pour aller plus loin.

 

Scénario 2

Il faut dans un premier temps booter le client avec l’ISO du "Client Boot CD de Opsi" depuis un support externe comme un CD ou une clef bootable. Cet ISO contient l’image de boot miniroot.bz2.
L’ISO client utilisée ici est opsi4.0.7-32bit-client-boot-cd_20161221.iso. Choisir l’option Start opsi (french) afin de charger l’image de boot miniroot.bz2 en français.
Le client envoie alors une requête d’IP au serveur DHCP en broadcast. Ce dernier lui attribue l’IP réservée, c’est-à-dire 192.168.1.201, et lui communique les informations réseaux telles que le masque, la passerelle, son nom d’hôte, son domaine et son serveur DNS. Il est demandé à l’utilisateur de spécifier le serveur Opsi, nous saisissons donc l’IP 192.168.1.13.

 
Peu d’informations sont demandées à l’utilisateur :

  • Quelle image de boot utiliser (Start opsi (french) par exemple pour miniroot.bz2 en français)
  • IP du serveur Opsi
  • Comment obtenir la clef de l’hôte (par un compte administrateur local du serveur Opsi)
  • Identifiant et mot de passe du compte administrateur adminuser
  • Quel produit Netboot installer (Win7, correspondant à Windows 7 32 bits)
  • Valider l’installation de l’OS
  • Choisir la langue d’installation

 


 
Après la fin de l’installation, le nouveau client opsiclt7-01 apparait bien sur l’interface de gestion Opsi Configed et son fichier de backend /var/lib/opsi/config/clients/opsiclt7-01.opensharing.priv.ini a été généré :

 
Toutefois, on a pu constater plusieurs correctifs à apporter par la suite :

  • L’IP du serveur Opsi est demandée
  • La langue de l’OS est demandée à l’utilisateur
  • Le clavier de l’OS Windows 7 est en allemand
  • L’agent Opsi est également en allemand
  • Le compte local administrateur par défaut de l’OS a pour identifiants de connexion Administrateur/nt123

Pour cela, voir l’article Opsi – Pour aller plus loin.

 

Scénario 3

L’installation du client se fait ici via l’interface Opsi Configed. On commence par définir le nouvel hôte (avec IP, MAC, et nom valides du point de vue DHCP/DNS) puis on programme l’installation pour le prochain démarrage du poste en définissant un setup pour la distribution Windows 7 32 bits (identifiée comme win7). Lorsque ensuite nous bootons en PXE le poste considéré, celui-ci récupère ses informations réseaux auprès du serveur DHCP (IP réservée 192.168.1.201, masque, passerelle, nom d’hôte) puis consulte le serveur Opsi qui lui envoie l’image de boot miniroot.bz2 en 32 bits qui lance ensuite WinPE et l’installation de Windows 7.

Créer un nouveau client opsi

Remplir les champs relatifs au nouveau client opsi : Nom du client, Adresse matérielle et Adresse IP puis Créer

L'hôte apparait sous l'onglet Sélection des clients

Sous Produits Netboot, mettre un setup (clic gauche sur champs Action) puis Sauver (clic droit sur champs Action)

 
Peu d’informations sont demandées à l’utilisateur :

  • Choisir la langue d’installation

 

 
Après la fin de l’installation, le nouveau client opsiclt7-01 apparait bien sur l’interface de gestion Opsi Configed et son fichier de backend /var/lib/opsi/config/clients/opsiclt7-01.opensharing.priv.ini a été généré :

Toutefois, on a pu constater plusieurs correctifs à apporter par la suite :

  • La langue de l’OS est demandée à l’utilisateur
  • Le clavier de l’OS Windows 7 est en allemand
  • L’agent Opsi est également en allemand
  • Le compte local administrateur par défaut de l’OS a pour identifiants de connexion Administrateur/nt123

Pour cela, voir l’article Opsi – Pour aller plus loin.

 

Scénario 4

 
La réinstallation du client se fait ici via l’interface Opsi Configed. On commence par réinitialiser les produits Localboot, en d’autres termes on vide la liste des logiciels installés, puis on programme l’installation pour le prochain démarrage du poste en définissant un setup pour la distribution Windows 7 32 bits (identifiée comme win7). Lorsque ensuite nous bootons en PXE le poste considéré, celui-ci récupère ses informations réseaux auprès du serveur DHCP (IP réservée 192.168.1.201, masque, passerelle, nom d’hôte) puis consulte le serveur Opsi qui lui envoie l’image de boot miniroot.bz2 en 32 bits qui lance ensuite WinPE et l’installation de Windows 7.

Ré-initialiser les produits LOCALBOOT


Sous Produits Netboot, mettre un setup (clic gauche sur champs Action) puis Sauver (clic droit sur champs Action)

 
Peu d’informations sont demandées à l’utilisateur :

  • Choisir la langue d’installation

 

 
Après la fin de la réinstallation, le client opsiclt7-01 a bien été réinitialisé et réinstallé :

Toutefois, on a pu constater plusieurs correctifs à apporter par la suite :

  • La langue de l’OS est demandée à l’utilisateur
  • Le clavier de l’OS Windows 7 est en allemand
  • L’agent Opsi est également en allemand
  • Le compte local administrateur par défaut de l’OS a pour identifiants de connexion Administrateur/nt123

Pour cela, voir l’article Opsi – Pour aller plus loin.

 

Scénario 5

 
L’installation de l’agent Opsi se fait directement sur l’hôte existant en montant un lecteur réseau temporaire (peu importe la lettre, mais avec un utilisateur membre du groupe opsiadmin comme adminuser) pointant sur le partage [opsi_depot] du serveur Opsi, lui-même pointant sur le dossier /var/lib/opsi/depot/ en lecture seule. Il suffit ensuite d’exécuter le script service_setup.cmd situé dans le dossier opsi-client-agent/ du montage. Une fois l’agent installé, l’hôte redémarre automatiquement.

 
Après la fin de l’installation, le nouveau client opsiclt7-01 apparait bien sur l’interface de gestion Opsi Configed et son fichier de backend /var/lib/opsi/config/clients/opsiclt7-01.opensharing.priv.ini a été généré :

 

Scénario 6

 
L’installation de l’agent Opsi se fait de manière distante, depuis le serveur Opsi. Il suffit de préciser l’IP ou le FQDN de l’hôte cible existant mais aussi de fournir les identifiants d’un compte d’administrateur local sur ce dernier.

# cd /var/lib/opsi/depot/opsi-client-agent
# ./opsi-deploy-client-agent opsiclt7-01.opensharing.priv --username Administrateur --password administrateur --verbose
Starting deployment to host u'opsiclt7-01.opensharing.priv'
Querying for ip address of host u'opsiclt7-01.opensharing.priv'
Got ip address '192.168.1.201' from syscall
Pinging host '192.168.1.201' ...
Host 192.168.1.201 is up
Testing winexe
Patching config.ini
Copying installation files
Installing opsi-client-agent
opsi-client-agent successfully installed on u'opsiclt7-01.opensharing.priv'

 
Après la fin de l’installation, le nouveau client opsiclt7-01 apparait bien sur l’interface de gestion Opsi Configed et son fichier de backend /var/lib/opsi/config/clients/opsiclt7-01.opensharing.priv.ini a été généré :

Il suffit alors de redémarrer le client (son redémarrage n’est pas automatique).

 

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

 

Fermer le menu
%d blogueurs aiment cette page :