Archives de catégorie : Jamf

Jamf Pro : contrôler quand installer un profil durant le déploiement

Allez, ça faisait un longtemps, un article bien technique, à l’attention d’un public averti. Je vais d’ailleurs cette année essayer de pousser un peu plus ces articles techniques destinés aux administrateurs systèmes et gestionnaires de MDM Apple.

Dans le cadre d’une intégration Jamf Pro chez un des mes clients, j’ai du gérer la problématique suivante :

Comment contrôler à quel moment un profil de configuration doit être installé sur un Mac ?

En effet, une fois un Mac enrôlé dans le MDM (que ça soit automatiquement au démarrage via le programme Apple Business Manager ou Apple School Manager, ou manuellement), à partir du moment où l’on souhaite par exemple déployer un profil Wi-Fi, il est déployé automatiquement via la magie du push. Ce qui pose le risque de casser le déploiement si le profil Wi-Fi impose une bascule automatique.

Exemple : vous êtes employé de Gete.Net Consulting, et vous recevez votre nouveau Mac rutilant. Votre nouveau boss, qui a tout prévu, vous a fait livrer votre Mac, et vous devez l’enrôler dans votre solution de gestion. Ce Mac a été prévu pour se connecter automatiquement au réseau GeteOuEssayéMaisRienNWiFi, dont le mot de passe particulièrement complexe est intégré au profil. Ce qui peut présenter l’avantage d’éviter de devoir transmettre le mot de passe oralement ou par écrit, et de lui donner une complexité bien plus importante. Le profil pourrait aussi permettre de pousser une authentification au Wi-Fi via certificat, ce qui est bien plus sécurisé.

Cependant, si le réseau est à portée d’antenne, le Mac aura tendance durant l’enrôlement à basculer sur ce réseau Wi-Fi sécurisé dès qu’il sera disponible, sans s’occuper de savoir si le reste de l’enrôlement (installation de logiciels par ex) est terminé. Ce qui peut être gênant, vous en conviendrez.

Pour éviter cette rupture dans le déploiement, on peut avoir deux approches :

  1. Fournir le profil à l’utilisateur via le Self Service de Jamf Pro ;
  2. Utiliser une méthode un peu plus complexe, mais entièrement automatisée.

Si nous optons pour l’approche automatisée, voici comment faire. Attention, c’est particulièrement sioux.

Créer un attribut d’extension

Dans la console Jamf Pro, cliquez sur Réglages > Ordinateur et sélectionnez Attributs d’extension.

Cliquez sur Nouveau

Appliquez les différents réglages comme sur la capture d’écran ci-dessous. Pour ce qui est du script lui-même, voici son contenu :

!/usr/bin/env bash
RESULT="Wifi KO"
if [ -f "/var/db/.wifi-ok" ] ; then
RESULT="Wifi OK"
fi
/bin/echo "$RESULT"

Par défaut, on aura donc un attribut d’extension dont le résultat est Wi-Fi KO. Les chemins et les noms de fichier choisis ici sont par ailleurs totalement arbitraires, vous pouvez donc les customiser comme vous le souhaitez.

Variante : vous pouvez aussi créer le fichier à la fin d’un script d’enrôlement pour indiquer que l’enrôlement est bien terminé pour appliquer d’autres conditions. Vous pourriez donc nommer le fichier .EnrolementFini si ça vous chante. Par contre, je vous conseille de le laisser invisible. Perso, je génère un dossier au nom du client dans /usr/local et j’essaie de créer une petite hiérarchie propre dedans, donc ça pourrait être /usr/local/getenet/.EnrolementFini.

Créez un groupe intelligent

Une fois votre attribut étendu généré :

  1. Cliquez sur Groupe intelligent d’ordinateurs > Nouveau ;
  2. Cliquez sur Afficher les critères avancés ;
  3. Choisissez votre critère Activation Wi-Fi ;
  4. Dans la case Valeur, tapez Wifi OK (ou toute autre valeur générée dans le script).
  5. Enregistrez.

Associer le groupe au profil Wi-Fi

Il nous faut maintenant créer notre profil Wi-Fi pour l’associer au Groupe intelligent. Pas l’opération la plus dure :

  1. Cliquez sur Profils de configuration ;
  2. Cliquez sur Nouveau ;
  3. Remplissez votre profil de configuration Wi-Fi comme d’habitude ;
  4. Cliquez sur Périmètre ;
  5. Cliquez sur Computer Groups ;
  6. Cliquez sur le bouton Add en face de votre groupe intelligent créé précédemment (oui, la régionalisation de Jamf Pro, c’est pas toujours ça…) ;
  7. Validez, comme Johnny.

Pfiouuuu. Allez, c’est presque fini.

Activer l’état Wi-Fi Ready

Mais comment lui faire changer son état ? Facile : il suffit de générer le fichier /var/db/.wifi-ok via une simple commande, par exemple en ajoutant dans le script de déploiement la commande :

touch /var/db/.wifi-ok

Suivie d’une mise à jour de l’inventaire :

jamf recon

Notez que tout cela doit se faire dans le contexte du compte root (mais Jamf lance tous les scripts en tant que root, donc c’est OK).

Personnellement, j’ai utilisé cette méthode chez deux clients différents, et elle fonctionne parfaitement avec une version modifiée du script DEPNotify Starter, en générant le fichier à la fin du script.

Et si vous avez besoin d’aide pour mettre cette solution en place, il suffit de demander.