SlideShare une entreprise Scribd logo
1  sur  35
PowerShell Saturday
Paris 16/09/2017
French PowerShell User Group - PowerShell Saturday
French PowerShell User
Group
French PowerShell User Group - PowerShell Saturday
Site http://frpsug.github.io
Twitter @frpsug
Slack PowerShell.slack.com
Future meetings https://www.meetup.com/fr-FR/preview/FrenchPSUG
PowerShell et
Hyper-V
ou comment j’ai tué ma souris
French PowerShell User Group - PowerShell Saturday
Olivier Miossec
CTO Mediactive Network
o.miossec@mediactive.fr
1925 vCpu
6,7 Tb Ram
456 Tb VHDs
https://www.linkedin.com/in/omiossec/
@omiossec_med
French PowerShell User Group - PowerShell Saturday
https://bitbucket.org/omiossec
https://github.com/omiossec
About Me
A g e n d a
• Présentation Hyper-v
• PowerShell et Hyper-v
• Automation, WinOps, DevOps
• DSC pour le déploiement des VM
• Tester son déploiement, tester son infra : Pester
• Protéger son infra: JEA
• Q/A
French PowerShell User Group - PowerShell Saturday
Qu’allons nous voir ?
French PowerShell User Group - PowerShell Saturday
• Hyper-V existe depuis la version 2008 de Windows
Server.
• Il est aujourd’hui disponible sur toutes les versions
serveur de Windows de 2008 à 2016.
• En tant que freeware avec Hyper-v Server (en
version 2012 R2 et 2016).
• Sur les postes clients Windows 8, 8.1 et 10.
• Il fait même tourner X-Box One.
• C’est un hyperviseur de type 1, barre metal.
• Les premiers cmdlets sont apparus sous Hyper-V
2008 R2.
H Y P E R - V
L e m o d u l e P o w e r S h e l l H y p e r - v
French PowerShell User Group - PowerShell Saturday
• Présent depuis 2008 R2, il peut être installé même si Hyper-v n’est pas présent sur la
machine.
• Add-windowsFeature –name hyper-v-powershell
• Ce module dispose de 232 Cmdlets sous Windows 2016 (178 sous 2012 R2).
• La quasi totalité des commandes dispose d’un paramètre –computername permettant de
lancer la commande depuis une machine distante.
• Certaines commandes sont spécifiques à la version de l’hyperviseur.
Q u ’est ce q u ’u n e V M s ou s Hyp er -V
French PowerShell User Group - PowerShell Saturday
Contrôleur SCSI
0-4
VHD
0-255
Contrôleur Ethernet
0-8
VM
HOST Set-vmhost
New-vmswitch
Set-VMHostCluster
New-vm
Compare-VM
Enable-VMMigration
mount-VHD
Get-VHD
Add-VMScsiController
set-VMNetworkAdapterVlan
Add-VMNetworkAdapter
Connect-VMNetworkAdapter
A u t o m a t i o n : W i n O p s , D e v O p s e t c
Les temps changent. Il y a quelques années
encore, la création d’une VM pouvait attendre
quelques jours (voir quelques semaines).
Aujourd'hui, les développeurs et les autres
consommateurs s’attendent à avoir une infra à la
demande.
French PowerShell User Group - PowerShell Saturday
PowerShell & Hyper-V permet :
• D’automatiser la construction des
architectures
• Le contrôle des infrastructures au cours du
cycle de vie.
• De partager en toute sécurité le management
des VM
A u t o m a t i o n : D S C
French PowerShell User Group - PowerShell Saturday
• La classe Hyper-V de WMI.
• Scripts ou Modules utilisant le module Hyper-v.
• Desired State of Configuration (DSC pour les intimes).
Quel moyen pour déployer une infra ?
A u t o m a t i o n : D S C
French PowerShell User Group - PowerShell Saturday
DSC est l’outil de configuration management intégré à PowerShell.
Il permet d’avoir une source de configuration lisible car sous format texte, ce qui permet son
édition et sa gestion des versions dans un Source Control (Git, Mercurial…).
DSC, indique uniquement l’état souhaité de la machine cible.
En résumé, c’est le Make It So, de Jean Luc Picard.
DSC c’est quoi ?
A u t o m a t i o n : D S C
French PowerShell User Group - PowerShell Saturday
DSC c’est quoi ?
A u t o m a t i o n : D S C
French PowerShell User Group - PowerShell Saturday
L’utilisation de DSC est contre intuitif.
Lorsque l’on pense à DSC, on pense à la configuration d’un ou plusieurs serveurs ou services et non
pas à la création d’une VM.
Mais si l’on regarde une VM, avec ses paramètres (Disques, réseau, ram, …) c’est une configuration
comme une autre.
DSC permet facilement de créer des VM sur plusieurs hosts suivant des données complexes.
DSC pour déployer des VM ?
A u t o m a t i o n : D S C
French PowerShell User Group - PowerShell Saturday
• Une Collection de VM.
• Une VM est aussi une collection d’éléments.
La VM et ses propriétés.
• Un ou plusieurs contrôleurs de disques.
Les disques attachés à ce contrôleur.
• Une ou 8 cartes réseaux.
• Difficile de faire tenir cela sur un fichier Excel.
Comment définir une infra ?
A u t o m a t i o n : D S C , C o n f i g u r a t i o n D a t a
French PowerShell User Group - PowerShell Saturday
Schématisation d’une Archi
Projet
1-X VM
SCSI
1-4 Contrôleur
Ethx
1-8 Carte réseau
1-255 VHD
A u t o m a t i o n : D S C , C o n f i g u r a t i o n D a t a
French PowerShell User Group - PowerShell Saturday
Schématisation d’une Archi
Projet
1-X VM
SCSI
1-4 Contrôleur
Ethx
1-8 Carte réseau
1-255 VHD
Projet
|-Nom
|-VM
|-vm1
|-Nom
|-Emplacement
|-Ram
|-Cpu
|-Génération
|-Ram
|-Contrôleurs Raid
|-Numéro
|-Disques
|-Chemin
|-Taille
|-Block
|-Type
….
|-Réseau
|-Nom Carte
|-Nom Switch
|-MAC
A u t o m a t i o n : D S , C o n f i g u r a t i o n D a t a
French PowerShell User Group - PowerShell Saturday
• Séparation des données de configuration.
Cela rend l’outil plus universel.
Cela permet la mise en place.
• Les données de configuration sont le QUOI.
• La Configuration est le COMMENT.
Séparation des données
A u t o m a t i o n : D S , C o n f i g u r a t i o n D a t a
French PowerShell User Group - PowerShell Saturday
Les données de configuration en DSC sont définies par un HASTABLE contenant la clé AllNodes.
La valeur de AllNodes est un ARRAY de HASHTABLE devant contenir la clé NodeName.
AllNodes
A u t o m a t i o n : D S , R e s s o u r c e c o n f i g u r a t i o n
French PowerShell User Group - PowerShell Saturday
Configuration dynamique
• Dans une configuration DSC, les noms des ressources doivent être uniques.
• Impossible d’avoir deux ressources File VmFolder.
• Comment créer une configuration dynamique où les noms des ressources sont gérés par la donnée.
• Une configuration est un script PowerShell. Les noms des ressources peuvent être dynamiques.
• Il est tout à fait possible de nommer une ressource grâce à une variable.
• File « VmFolder_$($vmname) » .
• La seule règle est que le nom soit unique pour toute la configuration,
A u t o m a t i o n : D S , R e s s o u r c e c o n f i g u r a t i o n
French PowerShell User Group - PowerShell Saturday
Configuration dynamique
A u t o m a t i o n : D S , R e s s o u r c e c o n f i g u r a t i o n
French PowerShell User Group - PowerShell Saturday
Script Ressources
• Lorsque aucun module n’est disponible pour effectuer une tâche de configuration, il reste toujours la
ressource Script.
• Une ressource Script se compose :
• Une fonction SetScript pour effectuer la configuration.
• Une fonction TestScript qui renvoie $True si la configuration a été faite $false dans le cas contraire.
• Une fonction GetScript qui renvoie un hashable de la configuration.
A u t o m a t i o n : D S C , R e s s o u r c e c o n f i g u r a t i o n
French PowerShell User Group - PowerShell Saturday
Script Ressources
A u t o m a t i o n : D S , r e s s o u r c e c o n f i g u r a t i o n
French PowerShell User Group - PowerShell Saturday
xHyper-V Ressources
Projet communautaire et Open Source (https://github.com/PowerShell/xHyper-V).
Permet de la création de VM, de disques virtuels et la configuration des Hosts.
• xVHD : Création et management des disques virtuelles
• xVHDFile : Gère l’intérieur des VHD, idéal pour copier des données dans un VHD
• xVMHOST : Gère les paramêtres du Host Hyper-V
• xVMHyperv: Gère les VM sur un host
• xVMNetAdapter : Gère les cartes réseau virtuelles attachées à une VM ou à l’hôte
• xVMProcessor : gère les processeurs virtuels d’une VM
• xVMSwitch : Gère les vSwitch sur un host
French PowerShell User Group - PowerShell Saturday
DEMO
T e s t s d ’ i n f r a s t r u c t u r e
French PowerShell User Group - PowerShell Saturday
Tester un déploiement est aussi essentiel que le déploiement lui-même.
On peut diviser les tests en deux catégories :
- Tests d’intégration.
Tester que l’infra déployer et bien celle qui a été demandé
Bref on test si le travail a été fait et bien fait
Quel outil de test ? PESTER
Tester mais pourquoi faire ?
T e s t : P e s t e r , t e s t d ’ i n t é g r a t i o n
French PowerShell User Group - PowerShell Saturday
Pester est un Framework permettant de réaliser des tests unitaires.
Il permet de tester des fonctionnalités pour s’assurer que le résultat est bien celui attendu.
T e s t : P e s t e r , t e s t d ’ i n t é g r a t i o n
French PowerShell User Group - PowerShell Saturday
Si le déploiement est automatique et les tests ?
• Comment automatiser les tests.
• Comment rendre le résultat lisible.
T e s t : P e s t e r , T e s t d ’ i n t é g r a t i o n
French PowerShell User Group - PowerShell Saturday
Si le déploiement est automatique et les tests ?
• Comment automatiser les tests.
Pester est un Framework PowerShell.
Il s’utilise comme un script.
Les données à tester sont dans le fichier données.
• Comment rendre le résultat lisible.
Pester est un Framework de Tests Unitaires.
Il permet d’afficher les données suivantes plusieurs formats.
French PowerShell User Group - PowerShell Saturday
DEMO
P r o t e c t i o n : J u s t E n o u g h A d m i n i s t r a t i o n
French PowerShell User Group - PowerShell Saturday
• Maintenir un archi sur un ou plusieurs serveurs demande d’être membre du
groupe »Administrateur » ou « Hyper-V Administrateur ».
• Plusieurs personnes doivent pouvoir intervenir: Equipe de support, développeur …
• Comment faire pour les droits nécessaires pour stopper, relancer et modifier des VM.
Le problème
P r o t e c t i o n : J u s t E n o u g h A d m i n i s t r a t i o n
French PowerShell User Group - PowerShell Saturday
• Disponible avec PowerShell 5.
• Permet de déléguer uniquement les tâches définies par l’administrateur.
• Les commandes peuvent être exécutées en tant qu’administrateur virtuel sur la machine
distante.
La Solution, Just Enough Administration
P r o t e c t i o n : J u s t E n o u g h A d m i n i s t r a t i o n
French PowerShell User Group - PowerShell Saturday
• Un module Manifest dans un répertoire.
New-ModuleManifest –Path PathToModule
• Un fichier Role, ce fichier défini le quoi, quelles fonctions, quels modules sont disponibles.
New-PSRoleCapabilityFile –Path PathToModuleRoleCapabilities
• Un fichier de configuration de session.
New-PSSessionConfigurationFile –Path jeaConfigurationPath
• Enregistrer la configuration.
Register-psessionconfiguration
• Relancer WinRM.
Comment implémenter JEA dans Hyper-V
French PowerShell User Group - PowerShell Saturday
DEMO
T h i s i s t h e E n d
French PowerShell User Group - PowerShell Saturday
Quelques Liens
• Module PowerShell: https://technet.microsoft.com/itpro/powershell/windows/hyper-v/hyper-v
• Github xHyper-V: https://github.com/PowerShell/xHyper-V
• Doc DSC : https://docs.microsoft.com/en-us/powershell/dsc/overview
• Doc Hyper-v: https://docs.microsoft.com/en-us/windows-server/virtualization/virtualization
• Doc Pester: https://docs.microsoft.com/en-us/powershell/module/pester/
• Wiki Pester: https://github.com/pester/Pester/wiki
• ReportUnit: http://relevantcodes.com/Tools/ReportUnit/reportunit-1.2.zip
• Demo et Example: https://github.com/omiossec/PowerShellSaterday-OM
French PowerShell User Group - PowerShell Saturday
Q/A

Contenu connexe

Tendances

Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOpsJeoffrey Bauvin
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)Noël
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertLook a box
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8Aurelien Navarre
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenableLeTesteur
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousPublicis Sapient Engineering
 
Meetup Drupal Lyon - Sécuriser un site drupal
Meetup Drupal Lyon - Sécuriser un site drupalMeetup Drupal Lyon - Sécuriser un site drupal
Meetup Drupal Lyon - Sécuriser un site drupalAurelien Navarre
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Jérôme Petazzoni
 
Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructurecontinuousphp
 
Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Jean-Marc Fontaine
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
 
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Jean-Marc Fontaine
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsWeb à Québec
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuAhmed Archive
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreStephane Manciot
 

Tendances (20)

Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Squid
SquidSquid
Squid
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOps
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tous
 
Serveur Zabbix
Serveur ZabbixServeur Zabbix
Serveur Zabbix
 
Meetup Drupal Lyon - Sécuriser un site drupal
Meetup Drupal Lyon - Sécuriser un site drupalMeetup Drupal Lyon - Sécuriser un site drupal
Meetup Drupal Lyon - Sécuriser un site drupal
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
 
Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructure
 
Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printemps
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvre
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 

Similaire à Power shell saturday Paris 2017 Omiossec

2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec PowershellPatrick Guimonet
 
Powershell
PowershellPowershell
PowershellUGAIA
 
Administration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiantAdministration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiantMicrosoft Technet France
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm
 
Certification mcse communication
Certification mcse communicationCertification mcse communication
Certification mcse communicationEGILIA Learning
 
Techdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-VTechdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-Vfabricemeillon
 
alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3Alphorm
 
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6 Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6 Alphorm
 
PHP dans le cloud
PHP dans le cloudPHP dans le cloud
PHP dans le cloudMicrosoft
 
Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)Jonathan Le Guellec
 
Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...
Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...
Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...OpenNebula Project
 
2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...
2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...
2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...Modern Workplace Conference Paris
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?Microsoft Technet France
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 

Similaire à Power shell saturday Paris 2017 Omiossec (20)

2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell2008-09-30 Administration automatisée avec Powershell
2008-09-30 Administration automatisée avec Powershell
 
Powershell
PowershellPowershell
Powershell
 
Administration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiantAdministration intégrée HP/Microsoft des serveurs HP ProLiant
Administration intégrée HP/Microsoft des serveurs HP ProLiant
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
 
Certification mcse communication
Certification mcse communicationCertification mcse communication
Certification mcse communication
 
Techdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-VTechdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-V
 
alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3
 
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6 Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
 
Php dans le cloud
Php dans le cloudPhp dans le cloud
Php dans le cloud
 
PHP dans le cloud
PHP dans le cloudPHP dans le cloud
PHP dans le cloud
 
Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)
 
Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...
Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...
Déploiement pour l’hébergement d’architecture cliente et mise en place du Sel...
 
2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...
2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...
2018-10-17 J1 4B - Présentation METSYS débuter avec PowerShell DSC- Thomas Il...
 
Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
 
REX Openshift à la Poste
REX Openshift à la PosteREX Openshift à la Poste
REX Openshift à la Poste
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Powershell et les techniques de remoting
Powershell et les techniques de remoting Powershell et les techniques de remoting
Powershell et les techniques de remoting
 
System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 

Power shell saturday Paris 2017 Omiossec

  • 1. PowerShell Saturday Paris 16/09/2017 French PowerShell User Group - PowerShell Saturday
  • 2. French PowerShell User Group French PowerShell User Group - PowerShell Saturday Site http://frpsug.github.io Twitter @frpsug Slack PowerShell.slack.com Future meetings https://www.meetup.com/fr-FR/preview/FrenchPSUG
  • 3. PowerShell et Hyper-V ou comment j’ai tué ma souris French PowerShell User Group - PowerShell Saturday
  • 4. Olivier Miossec CTO Mediactive Network o.miossec@mediactive.fr 1925 vCpu 6,7 Tb Ram 456 Tb VHDs https://www.linkedin.com/in/omiossec/ @omiossec_med French PowerShell User Group - PowerShell Saturday https://bitbucket.org/omiossec https://github.com/omiossec About Me
  • 5. A g e n d a • Présentation Hyper-v • PowerShell et Hyper-v • Automation, WinOps, DevOps • DSC pour le déploiement des VM • Tester son déploiement, tester son infra : Pester • Protéger son infra: JEA • Q/A French PowerShell User Group - PowerShell Saturday Qu’allons nous voir ?
  • 6. French PowerShell User Group - PowerShell Saturday • Hyper-V existe depuis la version 2008 de Windows Server. • Il est aujourd’hui disponible sur toutes les versions serveur de Windows de 2008 à 2016. • En tant que freeware avec Hyper-v Server (en version 2012 R2 et 2016). • Sur les postes clients Windows 8, 8.1 et 10. • Il fait même tourner X-Box One. • C’est un hyperviseur de type 1, barre metal. • Les premiers cmdlets sont apparus sous Hyper-V 2008 R2. H Y P E R - V
  • 7. L e m o d u l e P o w e r S h e l l H y p e r - v French PowerShell User Group - PowerShell Saturday • Présent depuis 2008 R2, il peut être installé même si Hyper-v n’est pas présent sur la machine. • Add-windowsFeature –name hyper-v-powershell • Ce module dispose de 232 Cmdlets sous Windows 2016 (178 sous 2012 R2). • La quasi totalité des commandes dispose d’un paramètre –computername permettant de lancer la commande depuis une machine distante. • Certaines commandes sont spécifiques à la version de l’hyperviseur.
  • 8. Q u ’est ce q u ’u n e V M s ou s Hyp er -V French PowerShell User Group - PowerShell Saturday Contrôleur SCSI 0-4 VHD 0-255 Contrôleur Ethernet 0-8 VM HOST Set-vmhost New-vmswitch Set-VMHostCluster New-vm Compare-VM Enable-VMMigration mount-VHD Get-VHD Add-VMScsiController set-VMNetworkAdapterVlan Add-VMNetworkAdapter Connect-VMNetworkAdapter
  • 9. A u t o m a t i o n : W i n O p s , D e v O p s e t c Les temps changent. Il y a quelques années encore, la création d’une VM pouvait attendre quelques jours (voir quelques semaines). Aujourd'hui, les développeurs et les autres consommateurs s’attendent à avoir une infra à la demande. French PowerShell User Group - PowerShell Saturday PowerShell & Hyper-V permet : • D’automatiser la construction des architectures • Le contrôle des infrastructures au cours du cycle de vie. • De partager en toute sécurité le management des VM
  • 10. A u t o m a t i o n : D S C French PowerShell User Group - PowerShell Saturday • La classe Hyper-V de WMI. • Scripts ou Modules utilisant le module Hyper-v. • Desired State of Configuration (DSC pour les intimes). Quel moyen pour déployer une infra ?
  • 11. A u t o m a t i o n : D S C French PowerShell User Group - PowerShell Saturday DSC est l’outil de configuration management intégré à PowerShell. Il permet d’avoir une source de configuration lisible car sous format texte, ce qui permet son édition et sa gestion des versions dans un Source Control (Git, Mercurial…). DSC, indique uniquement l’état souhaité de la machine cible. En résumé, c’est le Make It So, de Jean Luc Picard. DSC c’est quoi ?
  • 12. A u t o m a t i o n : D S C French PowerShell User Group - PowerShell Saturday DSC c’est quoi ?
  • 13. A u t o m a t i o n : D S C French PowerShell User Group - PowerShell Saturday L’utilisation de DSC est contre intuitif. Lorsque l’on pense à DSC, on pense à la configuration d’un ou plusieurs serveurs ou services et non pas à la création d’une VM. Mais si l’on regarde une VM, avec ses paramètres (Disques, réseau, ram, …) c’est une configuration comme une autre. DSC permet facilement de créer des VM sur plusieurs hosts suivant des données complexes. DSC pour déployer des VM ?
  • 14. A u t o m a t i o n : D S C French PowerShell User Group - PowerShell Saturday • Une Collection de VM. • Une VM est aussi une collection d’éléments. La VM et ses propriétés. • Un ou plusieurs contrôleurs de disques. Les disques attachés à ce contrôleur. • Une ou 8 cartes réseaux. • Difficile de faire tenir cela sur un fichier Excel. Comment définir une infra ?
  • 15. A u t o m a t i o n : D S C , C o n f i g u r a t i o n D a t a French PowerShell User Group - PowerShell Saturday Schématisation d’une Archi Projet 1-X VM SCSI 1-4 Contrôleur Ethx 1-8 Carte réseau 1-255 VHD
  • 16. A u t o m a t i o n : D S C , C o n f i g u r a t i o n D a t a French PowerShell User Group - PowerShell Saturday Schématisation d’une Archi Projet 1-X VM SCSI 1-4 Contrôleur Ethx 1-8 Carte réseau 1-255 VHD Projet |-Nom |-VM |-vm1 |-Nom |-Emplacement |-Ram |-Cpu |-Génération |-Ram |-Contrôleurs Raid |-Numéro |-Disques |-Chemin |-Taille |-Block |-Type …. |-Réseau |-Nom Carte |-Nom Switch |-MAC
  • 17. A u t o m a t i o n : D S , C o n f i g u r a t i o n D a t a French PowerShell User Group - PowerShell Saturday • Séparation des données de configuration. Cela rend l’outil plus universel. Cela permet la mise en place. • Les données de configuration sont le QUOI. • La Configuration est le COMMENT. Séparation des données
  • 18. A u t o m a t i o n : D S , C o n f i g u r a t i o n D a t a French PowerShell User Group - PowerShell Saturday Les données de configuration en DSC sont définies par un HASTABLE contenant la clé AllNodes. La valeur de AllNodes est un ARRAY de HASHTABLE devant contenir la clé NodeName. AllNodes
  • 19. A u t o m a t i o n : D S , R e s s o u r c e c o n f i g u r a t i o n French PowerShell User Group - PowerShell Saturday Configuration dynamique • Dans une configuration DSC, les noms des ressources doivent être uniques. • Impossible d’avoir deux ressources File VmFolder. • Comment créer une configuration dynamique où les noms des ressources sont gérés par la donnée. • Une configuration est un script PowerShell. Les noms des ressources peuvent être dynamiques. • Il est tout à fait possible de nommer une ressource grâce à une variable. • File « VmFolder_$($vmname) » . • La seule règle est que le nom soit unique pour toute la configuration,
  • 20. A u t o m a t i o n : D S , R e s s o u r c e c o n f i g u r a t i o n French PowerShell User Group - PowerShell Saturday Configuration dynamique
  • 21. A u t o m a t i o n : D S , R e s s o u r c e c o n f i g u r a t i o n French PowerShell User Group - PowerShell Saturday Script Ressources • Lorsque aucun module n’est disponible pour effectuer une tâche de configuration, il reste toujours la ressource Script. • Une ressource Script se compose : • Une fonction SetScript pour effectuer la configuration. • Une fonction TestScript qui renvoie $True si la configuration a été faite $false dans le cas contraire. • Une fonction GetScript qui renvoie un hashable de la configuration.
  • 22. A u t o m a t i o n : D S C , R e s s o u r c e c o n f i g u r a t i o n French PowerShell User Group - PowerShell Saturday Script Ressources
  • 23. A u t o m a t i o n : D S , r e s s o u r c e c o n f i g u r a t i o n French PowerShell User Group - PowerShell Saturday xHyper-V Ressources Projet communautaire et Open Source (https://github.com/PowerShell/xHyper-V). Permet de la création de VM, de disques virtuels et la configuration des Hosts. • xVHD : Création et management des disques virtuelles • xVHDFile : Gère l’intérieur des VHD, idéal pour copier des données dans un VHD • xVMHOST : Gère les paramêtres du Host Hyper-V • xVMHyperv: Gère les VM sur un host • xVMNetAdapter : Gère les cartes réseau virtuelles attachées à une VM ou à l’hôte • xVMProcessor : gère les processeurs virtuels d’une VM • xVMSwitch : Gère les vSwitch sur un host
  • 24. French PowerShell User Group - PowerShell Saturday DEMO
  • 25. T e s t s d ’ i n f r a s t r u c t u r e French PowerShell User Group - PowerShell Saturday Tester un déploiement est aussi essentiel que le déploiement lui-même. On peut diviser les tests en deux catégories : - Tests d’intégration. Tester que l’infra déployer et bien celle qui a été demandé Bref on test si le travail a été fait et bien fait Quel outil de test ? PESTER Tester mais pourquoi faire ?
  • 26. T e s t : P e s t e r , t e s t d ’ i n t é g r a t i o n French PowerShell User Group - PowerShell Saturday Pester est un Framework permettant de réaliser des tests unitaires. Il permet de tester des fonctionnalités pour s’assurer que le résultat est bien celui attendu.
  • 27. T e s t : P e s t e r , t e s t d ’ i n t é g r a t i o n French PowerShell User Group - PowerShell Saturday Si le déploiement est automatique et les tests ? • Comment automatiser les tests. • Comment rendre le résultat lisible.
  • 28. T e s t : P e s t e r , T e s t d ’ i n t é g r a t i o n French PowerShell User Group - PowerShell Saturday Si le déploiement est automatique et les tests ? • Comment automatiser les tests. Pester est un Framework PowerShell. Il s’utilise comme un script. Les données à tester sont dans le fichier données. • Comment rendre le résultat lisible. Pester est un Framework de Tests Unitaires. Il permet d’afficher les données suivantes plusieurs formats.
  • 29. French PowerShell User Group - PowerShell Saturday DEMO
  • 30. P r o t e c t i o n : J u s t E n o u g h A d m i n i s t r a t i o n French PowerShell User Group - PowerShell Saturday • Maintenir un archi sur un ou plusieurs serveurs demande d’être membre du groupe »Administrateur » ou « Hyper-V Administrateur ». • Plusieurs personnes doivent pouvoir intervenir: Equipe de support, développeur … • Comment faire pour les droits nécessaires pour stopper, relancer et modifier des VM. Le problème
  • 31. P r o t e c t i o n : J u s t E n o u g h A d m i n i s t r a t i o n French PowerShell User Group - PowerShell Saturday • Disponible avec PowerShell 5. • Permet de déléguer uniquement les tâches définies par l’administrateur. • Les commandes peuvent être exécutées en tant qu’administrateur virtuel sur la machine distante. La Solution, Just Enough Administration
  • 32. P r o t e c t i o n : J u s t E n o u g h A d m i n i s t r a t i o n French PowerShell User Group - PowerShell Saturday • Un module Manifest dans un répertoire. New-ModuleManifest –Path PathToModule • Un fichier Role, ce fichier défini le quoi, quelles fonctions, quels modules sont disponibles. New-PSRoleCapabilityFile –Path PathToModuleRoleCapabilities • Un fichier de configuration de session. New-PSSessionConfigurationFile –Path jeaConfigurationPath • Enregistrer la configuration. Register-psessionconfiguration • Relancer WinRM. Comment implémenter JEA dans Hyper-V
  • 33. French PowerShell User Group - PowerShell Saturday DEMO
  • 34. T h i s i s t h e E n d French PowerShell User Group - PowerShell Saturday Quelques Liens • Module PowerShell: https://technet.microsoft.com/itpro/powershell/windows/hyper-v/hyper-v • Github xHyper-V: https://github.com/PowerShell/xHyper-V • Doc DSC : https://docs.microsoft.com/en-us/powershell/dsc/overview • Doc Hyper-v: https://docs.microsoft.com/en-us/windows-server/virtualization/virtualization • Doc Pester: https://docs.microsoft.com/en-us/powershell/module/pester/ • Wiki Pester: https://github.com/pester/Pester/wiki • ReportUnit: http://relevantcodes.com/Tools/ReportUnit/reportunit-1.2.zip • Demo et Example: https://github.com/omiossec/PowerShellSaterday-OM
  • 35. French PowerShell User Group - PowerShell Saturday Q/A