18
vMA TechCon 2019 #vmatechcon2019 SDDC Deployment met Ansible en Terraform Rob van der Wouw Robin van Altena

SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

SDDC Deployment met Ansible en Terraform

• Rob van der Wouw

• Robin van Altena

Page 2: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Rob van der Wouw

• Infrastructuur consultant op het gebied van Netwerken en Virtualisatie.

Robin van Altena

• Infrastructuur consultant op het gebied van Server- en Netwerkvirtualisatie.

Page 3: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Agenda

• Intro

• Ansible t.o.v. Terraform

• Wat doen we met Ansible en hoe

• Wat doen we met Terraform en hoe

• Conclusie en vragen

• Links

Page 4: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Intro

• Waarom zijn we hiermee gestart? • Opdracht voor bouwen SDDC

• Wat willen we bereiken? • Herhaalbaar (eerst in lab, daarna in productie)• Geautomatiseerd• Infrastructure as Code• Achteraf controleerbaar bij audit (config vastgelegd)

• Waarom geen VCF?• VCF framework pas niet bij klantwensen en gewenste flexibiliteit• VCF is maar een deel van de configuratie

• Waarom hebben we voor Ansible en Terraform gekozen?• Volwassen automatiserings frameworks• Ondersteuning• Canvas / Schilderij

Page 5: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Ansible t.o.v. Terraform

• Wat kun je er mee?• Infrastructure as Code

• Overeenkomsten:• Multi cloud (VMware, Azure, AWS, etc..)

• Eenvoudige lichtgewicht architectuur

• Werkt met templates en inputbestanden

• Kan commando's uitvoeren op andere systemen

• Is geschikt om op te nemen in een DevOps CI/CD pipeline

Page 6: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Ansible t.o.v. Terraform

Ansible Terraform

Procedurele opzet: je bepaalt zelf in welke volgorde taken wordenuitgevoerd

Declaratief: beschrijf de gewenste eindsituatie (human readable)

Idempotent: meerdere malen uitvoeren geeft dezelfde uitkomst(mits de code dat toelaat!)

Graph: de Terraform provider moet weten welke afhankelijkheden erbestaan om in de juiste volgorde te werken

Stateless: moet telkens vergelijken met de werkelijkheid (langzaam), maar kan hierdoor wel beter omgaan met handmatig aangebrachtewijzigingen

Statefull: is afhankelijk van statefile en heeft dus problemen met handmatig aangebrachte wijzigingen

Voorziet in conditionele executie Condities zijn omslachtig en foutgevoelig

Hoge leer curve Lage leer curve

Is in staat het canvas te creëren waarop geschilderd kan worden Vereist een canvas waarop geschilderd kan worden

YAML (moeilijk) Hashicorp Configuration Language (HCL) (eenvoudig)

Zeer geschikt voor configuratiemanagement Zeer geschikt voor infrastructuur provisioning

Page 7: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Ansible?

Netwerk

Hardware

ESXiDeploy

NTP DNS

ESXi ESXi ESXi

vCenter

N S X

Datacenter

Mgmt- Cluster Cluster Cluster Cluster

vDS N-vDS N-vDS N-vDS

VSAN

Transport Zone

VSAN VSAN VSAN VSAN

E D G E

vSS

T0

LCM

vRealize

Horizon

VM VM VM VM VM VM

VM VM VM VM VM VM

Page 8: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Ansible?

• Playbooks met losse roles• SDDC

• vSphere• NSX-T

• vRealize Suite• Livecycle Manager

• vRealize Log Insight• vRealize Operations Manager• vRealize Network Insight

• Identity Manager• vRealize Automation

• SQL server• Horizon stack

• Ansible Vault

Page 9: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Ansible - SDDC

Page 10: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Ansible - vSAN

vsan-vcsa-deployer-sample.pyvsanmgmtObjects.py en vsanapiutils.pyuit vsan-sdk-python.zip in python home

Page 11: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Ansible – vRealize LCM

Page 12: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Ansible & Powershell?

• SDDC (vCenter en NSX)• Ansible via localhost en modules• Powershell vSAN en vMotion• ESXi via PXE

• vRealize LCM• Ansible via localhost, API en SSH

• vRA• Windows servers vanuit Template• Installatie Horizon via WinRM en Powershell

• VARS vs Inventory• Omgeving en specifieke variabelen• Conflicterende settings (SSH vs WinRM)

Page 13: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Terraform en hoe?

• Randvoorwaarde: er staat een cloud-infrastructuur waaropgebouwd kan worden

• We bouwen tenant-omgevingen met Terraform

• Omgeving gebruikt later vRealize Automation voor tenant VM deployments (zou ook met Ansible/Terraform kunnen)• Bewuste keuze vanwege de integratie met vRealize Business

(kostentoerekening) en self service portal

Page 14: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Terraform en hoe?

Netwerk

Hardware

ESXiDeploy

NTP DNS

ESXi ESXi ESXi

vCenter

N S X

Datacenter

Mgmt- Cluster Cluster Cluster Cluster

vDS N-vDS N-vDS N-vDS

VSAN

Transport Zone

VSAN VSAN VSAN VSAN

E D G E

vSS

T0 T1

LCM

vRealize

Horizon

Logical Switch Logical Switch

LB

Page 15: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Wat doen we met Terraform en hoe?

• Ervaringen• Eenvoudig om te leren• Declaratief werken verbergt de noodzaak om zelf de juiste volgorde te

bepalen• Declaratief werken ontslaat niet van de verantwoordelijkheid alle

benodigde objecten te specificeren (vb: een loadbalancer vereist veleobjecten alvorens het een werkend geheel kan worden)

• Vereist een vooraf gebouwde infrastructuur, de NSX-T provider kan nietNSX-T van scratch af opbouwen

• NSX-T provider is vooral gericht op de consumptie van vooraf ingerichtestructuren. Je kunt wel een Tier-0 router bouwen, maar deze configurerenblijft lastig). Pas vanaf Tier-1 kun je alles instellen

Page 16: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Conclusie en vragen

• Niet alles kan of gaat optimaal in Ansible en Terraform. Powershell(PowerCLI) blijft nodig• vb: vSAN

• Leercurve

• Er mist een en ander in de door VMware beschikbaar gesteldeAnsible-modules (vooral NSX-T routing)

• Herbruikbaar in VCF

• Ontwikkel met versiebeheer (Git)

Page 17: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Links

• vCenter deploy met Ansible

• http://virtualelephant.com/2018/09/10/deploy-vcenter-server-using-ansible/

• VMware modules Ansible• https://docs.ansible.com/ansible/latest/modules/list_of_cloud_modules.html#vmware

• Ansible modules voor NSX-T

• https://github.com/vmware/ansible-for-nsxt

• Terraform NSX-T provider

• https://github.com/terraform-providers/terraform-provider-nsxt

• Automating the new native VCSA bootstrap• https://www.virtuallyghetto.com/2017/05/automating-the-new-native-vcsa-bootstrap-easy-install-in-vsan-6-6.html

• vRealize Lifecycle Manager with Ansible• https://www.simplygeek.co.uk/2019/06/22/automating-vrealize-suite-lifecycle-manager-vidm-and-vrealize-automation-with-ansible-part-1-setting-

up-the-environment/

Page 18: SDDC Deployment met Ansible en Terraform · •Kan commando's uitvoeren op andere systemen •Is geschikt om op te nemen in een DevOps CI/CD pipeline. vMA TechCon 2019 #vmatechcon2019

vMATechCon

2019 #vmatechcon2019

Vragen?