Azure

Geautomatiseerde provisioning van Azure VM omgevingen

9 juni 2015

Deze blogpost beschrijft en biedt een powershell script waarmee je op Azure een volledig werkende multi server (test of build-omgeving) kunt maken. Het script bestaat uit twee delen (stages) en is via een xml-configuratiebestand geheel naar eigen hand te zetten.

Stage 1 creëert de VM’s, de infrastructuur en het Active Directory domain.
Stage 2 reguleert via aanvullende powershell scripts de configuratie van diverse applicatie servers (SQL, SharePoint, etc.). Je kunt hieraan je eigen server groepen en powershell script toevoegen. Het bijgevoegde voorbeeld kan je gebruiken om een multi server SharePoint 2013 omgeving te maken. Het voorbeeld is gebaseerd op het “least priviledge install” principe en resultaat is een volledig geconfigureerde SharePoint 2013 omgeving (Domain server, DNS entries, Kerberos configuratie, SSL certificaten, Onedrive, App store, Search, etc.).

Voorbeelden van toepassingen voor het script zijn de installatie van omgevingen met SharePoint, MS CRM, Exchange, IIS websites, etc.

Waarom deze oplossing?

Velen zullen de ervaring hebben gehad waarin zij een build- of testomgeving moeten maken die meerdere servers en applicaties omvat. Deze omgevingen zijn benodigd voor het testen van deployment scripts, maatwerk, conversies en wijzigingen hierop. Vervelend werk, want vaak is het een herhaling van stappen en vraagt vaak meer tijd dan verwacht.

De installatie van dergelijke omgevingen is kostbaar, tijdrovend en foutgevoelig. Gebruik van system center voor het geautomatiseerd maken van (test)omgevingen is vooral weggelegd voor grote organisaties vanwege de kosten en benodigde expertise. Door de hoge kosten wordt er meer dan eens beknibbeld op dergelijke voorzieningen. Het resultaat is dat de testen worden uitgevoerd op ontwikkelstations (vaak een ontwikkel-image die bestaat uit een single machine en die is geïnstalleerd met één admin account dat alles mag). Het resultaat laat zich raden? Slecht geteste software en installatie scripts.

Deze blogpost biedt een mogelijkheid om met minimale inspanning een multi-server omgeving op Azure aan te maken zodat je deze voor meerdere projecten/klanten kunt gebruiken en zonder dat je hiervoor over eigen hardware hoeft te beschikken.

Wat zijn de mogelijkheden?

Met het powershell script kun je een Azure gebaseerde multi-server omgeving maken en volledig configureren (gebruiksklaar maken van een domain met applicatie servers en client pc’s). Samenvattend biedt het script onderstaande mogelijkheden:

[bulletlist]

  • Kosten efficiënte mogelijkheid om volledig werkende en 100% identieke omgevingen te realiseren;
  • Eenvoudige configuratie met behulp van één xml-file;
  • Configureerbaar aantal domain controllers (Active Directory);
  • Configureerbaar aantal database servers (SQL Servers);
  • Configureerbaar aantal applicatie server groepen en servers;
  • Configureerbaar aantal Windows clients (Win7/Win8 with/without Visual Studio);
  • Configureerbaar aantal test accounts die een organisatie hiërarchie vormen;
  • Eenvoudig toevoegen van benodigde service accounts en installatie accounts;
  • Automatische configuratie van domain, rechten, Kerberos constraint delegation en DNS registraties (A record, CName and new forward looking zones);
  • Automatisch maken en toevoegen van self-signed SSL certificaten;
  • Eenvoudig toevoegen van eigen powershell scripts aan het provisioning mechanisme.

[/bulletlist]

 

Hoe werkt het?

Het provisioning proces bevat twee stages:

Stage 1: Maken van het domain en VM’s
Stage 1 creëert een Active Directory domain en voegt hieraan server groepen toe. Iedere groep kan worden voorzien van een eigen configuratie. Voorbeelden van server groepen zijn SQL Server groep, SharePoint WFE groep, SharePoint App groep, CRM groep en Win7 met Visual Studio. Een server groep bevat typisch het aantal servers in de groep, load balancing, DNS registraties, Kerberos configuratie, service accounts, extra disks (data, temp, log) en Windows Features/Roles die geïnstalleerd moeten worden.

azure_vm_provisiong1

 

 

 

 

 

Stage 2: Application configuratie
Stage 2 reguleert het uitvoeren van application configuration scripts. Iedere server groep  configuratie kan scripts bevatten die uitgevoerd moeten worden op de servers in de server groep. Voorbeelden van applicatie configuratie scripts zijn het configureren van een SQL instance, maken van een SharePoint farm of toevoegen van SSL certificaten aan een IIS website. Er kan een onderscheid worden gemaakt tussen scripts die van toepassing zijn op:

[bulletlist]

  • De eerste server in de groep;
  • Alle overige servers in the groep;

[/bulletlist]

azure_vm_provisiong2

 

 

 

 

 

 

Per script kan je diverse opties configureren zoals de installatie context en dynamische parameters die worden meegegeven aan het script (zoals naam van de database server, accounts, wachtwoorden, etc.). Het script maakt onderscheidt tussen de eerste en alle overige servers in de servergroep. Dit onderscheidt is benodigd om bijvoorbeeld op de eerste server het SharePoint farm te maken en alle overige servers in de groep in het farm te joinen.

Het script is van waarde door in stage 1 een gestandaardiseerde omgeving aan te bieden die je in stage 2 van eigen (organisatie/klant/project specifieke) scripts kunt voorzien zodat je applicatie servers op gewenste wijze kunt configureren. Hierdoor kun je het script gebruiken voor verschillende projecten/klanten en voor verschillende toepassingen zoals IIS webservers, MS CRM, Exchange en SharePoint.

Waar kan ik het script en voorbeeld vinden?

Meer informatie vind je op http://cloud2work.com/2015/05/12/automated-provisioning-of-azure-vm-environments/ . Je kunt er informatie er het script en het voorbeeld downloaden. Ook is er een uitleg te vinden met de ondersteunde XML-configuratie mogelijkheden.

You Might Also Like

Geen reacties

Plaats een reactie