Après avoir installé PowerShell sur WSL, nous allons voir comment installer les modules. En effet, pour pouvoir manipuler les environnements Azure ou autre, les modules PowerShell sont indispensables.
Pour savoir comment installer PowerShell sur un environnement WSL, vous pouvez vous référer à l’article ci-dessous :
La distribution utilisée est “Ubuntu 20.04” pour cette démonstration.
Dans cet exemple, nous allons installer les modules PowerShell pour Azure (Az).
Pour lancer PowerShell depuis WSL, il suffit d’exécuter la commande suivante :
pwsh
Comme nous pouvons le constater, PowerShell vient d’être installé sur la distribution WSL et ne comporte pas de module à l’exception de ceux par défaut.
Get-Module -ListAvailable
Sommaire
Installation /mise à jour de NuGet
Le repo contenant les modules PowerShell (PowerShell Gallery) est géré par un package /provider nommé NuGet.
Vous pouvez par courir la galerie PowerShell et trouver les modules qui vous intéressent :
Nous allons commencer par vérifier que ce repo est bien installé sur notre machine :
Get-PackageProvider
Si cela n’était pas le cas, vous pouvez l’installer avec la commande suivante :
Install-PackageProvider -Name NuGet -Force
Installation des module AZ
Le module PowerShell AZ qui contient en réalité tous les modules pour manipuler Azure peut être consulté depuis la gallerie PowerShell :
L’installation des modules AZ est réalisée à l’aide de la commande ci-dessous.
Install-Module -Name Az -Scope AllUsers -Repository PSGallery -Force
Installation du module MSOnline
Un second exemple, avec l’installation du module “MSOnline“. Module permettant l’administration d’Office 365.
Install-Module -Name MSOnline -Scope AllUsers -Repository PSGallery -Force
Je ne vais pas installer tous les modules PowerShell disponibles, cependant l’ensemble des modules permettant l’administration des ressources Cloud et surtout utilisées pour l’industrialisation des déploiements sont présents.
Mise à jour des modules
Comme tout produit, les modules PowerShell peuvent /doivent être mis à jour.
Pour se faire, utiliser la commande ci-dessous :
Update-Module -Name MSOnline -Force
Comme nous pouvons le constater, les deux versions (ancienne et nouvelle) sont présentes. Lors de l’import du module, la dernière sera utilisée. Cependant il est possible en cas de problème de compatibilité entre vos scripts et la nouvelle version du module de supprimer la nouvelle version et d’utiliser l’ancienne.
Pour ce faire, suivez la même procédure que pour supprimer les anciennes versions, mais au lieu de supprimer la version antérieure, supprimer la version supérieure.
Suppression des anciennes versions
Comme expliqué dans le chapitre précédent, lors de la mise à jour d’un module, il est possible de supprimer l’ancienne version.
Pour se faire, il faut identifier le répertoire d’installation de module et supprimer le répertoire correspondant aux anciennes versions.
Pour se faire, s’appuyer sur l’exemple ci-dessous :
Get-Module -ListAvailable -Name MSOnline | Select-Object Name, ModuleBase, Version
rm -fr /root/.local/share/powershell/Modules/MSOnline/old-version
Conclusion
Voilà nous avons vu comment installer un module PowerShell sous WSL. La gestion est la même que sous un environnement Windows traditionnel. Le plus important à retenir est qu’il est possible d’utiliser PowerShell et les modules sous WSL /Linux.
Ceux-ci apportent bon nombre de possibilités pour mixer différents langages /outils d’industrialisation sous WSL ou Linux. Tout en gardant à l’esprit que certains outils ne sont pas ou difficilement utilisable avec Windows. Les agents Azure DevOps sous Linux peuvent exécuter les scripts PowerShell.