Michel Hubert – MVP Azure
Idriss Selhoum
Infrastructure as a Code
Sommaire
• Infra-as-code, kesako ?
• PowerShell DSC
• Azure Resource Manager
• PowerShell v5 : OneGet et JEA
• Q&A
Kesako ?
Infrastructure as Code
Infrastructure as Code
• Automatisation des procesus
▪ Provisioning d’infrastructure (Compute, Network and Storage)
▪ Installation et configuration
• Versioning des scripts de provisioning et d’automatisation
▪ Evolution des infrastructures
▪ Réduire les erreurs liées aux interventions humaines
• Réduire le temps de mise à disposition des plateformes 
DevOps
PowerShell DSC
6
Desired State Configuration (Intro)
Operating System
Middleware
Applications & Services
Virtualization
Application
Deployment
Desired State
Configuration
7
Windows OS
PowerShell v4
Local Configuration Manager WINRM
DSC Resources
DSC
Desired State Configuration (Composants)
8
IIS
IIS
SQL
APP
Web Server
Master Deployment
Push
IIS
IIS
SQL
APP
Server
Master Deployment
Pull
Release Manage Deployment Agent
WinRM (HTTP & HTTPS)
Desired State Configuration
9
Authoring Managed Object Framework Apply configuration
1- Vérifier que les ressources DSC
sont installées
2- Vérifier les pré-requis sur la
machine (EnableRemoting et
WinRM)
2- Création de script DSC (fichier
powershell .ps1)
3 - Création du fichier de
configuration (.psd1)
4- Lancement de la configuration
5 - Génération du fichier .MOF 6 - Exécution de la configuration
souhaitée par le LCM (Start-
DSCConfiguration)
Desired State Configuration (Etapes)
10
Authoring
Managed Object Framework
Apply configuration
demo
12
Ressources
• Les modules PowerShell utilisées par le LCM pour appliquer une
configuration
• Get-TargetResource
• Set-TargetResource
• Test-TargetResource
• Microsoft fournit des modules (ex: xWebAdmininstation, xWebSite)
• Les modules DSC sont extensibles
demo
Infra-as-a-code pour Azure
Azure Resource Manager
Resource Group
Resource Group est une unité
de gestion
 Lifecycle: déploiement, mise à jour,
suppression, statut
 Identity: devient une partie de l’identité des
ressources contenues
 Grouping: Mesures, factration, quota:
appliqué à un groupe
 Access Control: Support des permissions
RBAC
RESOURCE GROUP
Cycle de vie
Question:
Dois-je mettre mes ressources dans un
seul groupe ou plusieurs?
Indice:
Ont-ils le même cycle de vie et le même
niveau de management ?
Réponse:
A vous de decider .
Templates
Azure Templates permettent de :
• Assurer l’idempotence
• Simplifier l’Orchestration des ressources
• Simplifier le Roll-back
• Fournir une configuration Cross-Ressource
Azure Templates sont :
• Des fichiers sources, checked-in
• Décrivent les ressources et leurs dépendances
(VMs, WebSites, DBs) e les connexions (config,
LB sets)
• Paramétrables (input/output)
SQL - A Website Virtual
Machines
SQL-A
Website
[SQL CONFIG] VM (2x)
DEPENDS ON SQLDEPENDS ON SQL
SQL Config
Resource Tag
• Assigner des notes aux ressources
• Tag = Clé / Valeur
• Exemple :
▪ Environnement = {Dev, Staging, Prod}
▪ Owner = « … »
▪ Cost Center = 12345
Role Based Access
demo
Azure Resource Manager
OneGet et JEA
PowerShell v5 - preview
OneGet
• Le chainon manquant ? Un compagnon indispensable à
PowerShell DSC
• OneGet est un jeu de comdlets powershell
• OnetGet permet d’installer des packages logiciels à partir
de bibliothèques internes ou externes (ex : Chocolatey)
• OneGet efficace pour se constituer un « Master »
OneGet
• Import-Module –Name OneGet
• Get-Command –Module OneGet
• register-packagesource -Name chocolatey -
Provider PSModule -Trusted -Location
http://chocolatey.org/api/v2/ -Verbose
• Find-Package -Name paint.net,
notepadplusplus |
Install-Package -Force
demo
PowerShell OneGet
PS> Enter-PSSession Server1
FAIL! – Talk to your supervisor for assistance
“Jeffrey I need to be admin on Server1 to restart SQL”
“No Eddie.
Just connect to the ‘Maintenance’ EndPoint”
PS> Enter-PSSession Server1 –Config Maintenance
Server1> Restart-Service MSSQLSERVER

Server1
Server1> Steal-Secrets
Error: You are not authorized to Steal-Secrets
JEA – Just Enough Administration
• La plus grande faille de sécurité : les administrateurs !
• Objectif : Réduire les droits admin
▪ Réduire le nb de personnes avec les droits Admin
▪ Réduire le périmètre des privileges admin
▪ Fournir au plus juste des besoins des privileges admin
• Basé sur PowerShell DSC
▪ JeaToolkit
– Définir les jeux de commandes supportés
▪ JeaEndPoint
– Point de Management où les utilisateurs sont autorisés
▪ JeaEndPointAccount
– Compte local avec les privileges admin
Exemple
JeaToolkit SQLMaintenace
{ Name = ‘SQLMaintenance’
CommandSpecs = @'
Module,Name,Parameter,ValidateSet,ValidatePattern
SQL,GET-*
,Get-Process
,Get-Service
,Stop-Process,Name,calc;notepad
,Restart-Service,Name,,^SQL
'@
}
demo
PowerShell JEA
Merci pour votre attention
Q & A
© 2012 Microsoft Corporation. Tous droits réservés. Microsoft, Windows et les autres noms de produits sont des marques déposées ou des marques commerciales de Microsoft aux États-Unis et/ou dans d'autres pays.
Les informations contenues dans ce document sont fournies uniquement à titre indicatif. Elles représentent l'opinion actuelle de Microsoft Corporation sur les points cités à la date de cette présentation. Microsoft s'adapte aux conditions fluctuantes du marché et ce document ne doit
pas être interprété comme un engagement de la part de Microsoft ; de plus, Microsoft ne peut pas garantir la véracité de toute information présentée après la date de la présentation. MICROSOFT EXCLUT TOUTE GARANTIE, EXPRESSE, IMPLICITE OU STATUTAIRE, EN CE QUI
CONCERNE CETTE PRÉSENTATION.

DevOps Day - Infrastructure As A Code

  • 1.
    Michel Hubert –MVP Azure Idriss Selhoum Infrastructure as a Code
  • 2.
    Sommaire • Infra-as-code, kesako? • PowerShell DSC • Azure Resource Manager • PowerShell v5 : OneGet et JEA • Q&A
  • 3.
  • 4.
    Infrastructure as Code •Automatisation des procesus ▪ Provisioning d’infrastructure (Compute, Network and Storage) ▪ Installation et configuration • Versioning des scripts de provisioning et d’automatisation ▪ Evolution des infrastructures ▪ Réduire les erreurs liées aux interventions humaines • Réduire le temps de mise à disposition des plateformes  DevOps
  • 5.
  • 6.
    6 Desired State Configuration(Intro) Operating System Middleware Applications & Services Virtualization Application Deployment Desired State Configuration
  • 7.
    7 Windows OS PowerShell v4 LocalConfiguration Manager WINRM DSC Resources DSC Desired State Configuration (Composants)
  • 8.
    8 IIS IIS SQL APP Web Server Master Deployment Push IIS IIS SQL APP Server MasterDeployment Pull Release Manage Deployment Agent WinRM (HTTP & HTTPS) Desired State Configuration
  • 9.
    9 Authoring Managed ObjectFramework Apply configuration 1- Vérifier que les ressources DSC sont installées 2- Vérifier les pré-requis sur la machine (EnableRemoting et WinRM) 2- Création de script DSC (fichier powershell .ps1) 3 - Création du fichier de configuration (.psd1) 4- Lancement de la configuration 5 - Génération du fichier .MOF 6 - Exécution de la configuration souhaitée par le LCM (Start- DSCConfiguration) Desired State Configuration (Etapes)
  • 10.
  • 11.
  • 12.
    12 Ressources • Les modulesPowerShell utilisées par le LCM pour appliquer une configuration • Get-TargetResource • Set-TargetResource • Test-TargetResource • Microsoft fournit des modules (ex: xWebAdmininstation, xWebSite) • Les modules DSC sont extensibles
  • 13.
  • 14.
  • 15.
    Resource Group Resource Groupest une unité de gestion  Lifecycle: déploiement, mise à jour, suppression, statut  Identity: devient une partie de l’identité des ressources contenues  Grouping: Mesures, factration, quota: appliqué à un groupe  Access Control: Support des permissions RBAC RESOURCE GROUP
  • 16.
    Cycle de vie Question: Dois-jemettre mes ressources dans un seul groupe ou plusieurs? Indice: Ont-ils le même cycle de vie et le même niveau de management ? Réponse: A vous de decider .
  • 17.
    Templates Azure Templates permettentde : • Assurer l’idempotence • Simplifier l’Orchestration des ressources • Simplifier le Roll-back • Fournir une configuration Cross-Ressource Azure Templates sont : • Des fichiers sources, checked-in • Décrivent les ressources et leurs dépendances (VMs, WebSites, DBs) e les connexions (config, LB sets) • Paramétrables (input/output) SQL - A Website Virtual Machines SQL-A Website [SQL CONFIG] VM (2x) DEPENDS ON SQLDEPENDS ON SQL SQL Config
  • 18.
    Resource Tag • Assignerdes notes aux ressources • Tag = Clé / Valeur • Exemple : ▪ Environnement = {Dev, Staging, Prod} ▪ Owner = « … » ▪ Cost Center = 12345
  • 19.
  • 20.
  • 21.
  • 22.
    OneGet • Le chainonmanquant ? Un compagnon indispensable à PowerShell DSC • OneGet est un jeu de comdlets powershell • OnetGet permet d’installer des packages logiciels à partir de bibliothèques internes ou externes (ex : Chocolatey) • OneGet efficace pour se constituer un « Master »
  • 23.
    OneGet • Import-Module –NameOneGet • Get-Command –Module OneGet • register-packagesource -Name chocolatey - Provider PSModule -Trusted -Location http://chocolatey.org/api/v2/ -Verbose • Find-Package -Name paint.net, notepadplusplus | Install-Package -Force
  • 24.
  • 25.
    PS> Enter-PSSession Server1 FAIL!– Talk to your supervisor for assistance “Jeffrey I need to be admin on Server1 to restart SQL” “No Eddie. Just connect to the ‘Maintenance’ EndPoint” PS> Enter-PSSession Server1 –Config Maintenance Server1> Restart-Service MSSQLSERVER  Server1 Server1> Steal-Secrets Error: You are not authorized to Steal-Secrets
  • 26.
    JEA – JustEnough Administration • La plus grande faille de sécurité : les administrateurs ! • Objectif : Réduire les droits admin ▪ Réduire le nb de personnes avec les droits Admin ▪ Réduire le périmètre des privileges admin ▪ Fournir au plus juste des besoins des privileges admin • Basé sur PowerShell DSC ▪ JeaToolkit – Définir les jeux de commandes supportés ▪ JeaEndPoint – Point de Management où les utilisateurs sont autorisés ▪ JeaEndPointAccount – Compte local avec les privileges admin
  • 27.
    Exemple JeaToolkit SQLMaintenace { Name= ‘SQLMaintenance’ CommandSpecs = @' Module,Name,Parameter,ValidateSet,ValidatePattern SQL,GET-* ,Get-Process ,Get-Service ,Stop-Process,Name,calc;notepad ,Restart-Service,Name,,^SQL '@ }
  • 28.
  • 29.
    Merci pour votreattention Q & A
  • 30.
    © 2012 MicrosoftCorporation. Tous droits réservés. Microsoft, Windows et les autres noms de produits sont des marques déposées ou des marques commerciales de Microsoft aux États-Unis et/ou dans d'autres pays. Les informations contenues dans ce document sont fournies uniquement à titre indicatif. Elles représentent l'opinion actuelle de Microsoft Corporation sur les points cités à la date de cette présentation. Microsoft s'adapte aux conditions fluctuantes du marché et ce document ne doit pas être interprété comme un engagement de la part de Microsoft ; de plus, Microsoft ne peut pas garantir la véracité de toute information présentée après la date de la présentation. MICROSOFT EXCLUT TOUTE GARANTIE, EXPRESSE, IMPLICITE OU STATUTAIRE, EN CE QUI CONCERNE CETTE PRÉSENTATION.