puppetcamp sydney 2012 - building a multimaster environment

16
MultiMaster scaling for multiple regions Greg Cockburn @gergnz

Upload: greg-cockburn

Post on 05-Jul-2015

1.773 views

Category:

Technology


1 download

DESCRIPTION

How we built a distributed Multi-master environment.

TRANSCRIPT

Page 1: PuppetCamp Sydney 2012 - Building a Multimaster Environment

MultiMaster scaling for multiple regions

Greg Cockburn @gergnz

Page 2: PuppetCamp Sydney 2012 - Building a Multimaster Environment

problem:

How do we provide a Puppet Service Globally When WAN pipes suck

Page 3: PuppetCamp Sydney 2012 - Building a Multimaster Environment

what's in our tool box?

VMware ESX LDAP

F5 Load Balancers Puppet Enterprise Edition

Page 4: PuppetCamp Sydney 2012 - Building a Multimaster Environment

Items that need to be addressed •  Puppet Certificate management

•  Node Classification and ENC replication

•  Master Replication

•  Master Availability

•  Master Scalability

•  Reporting and notifications

•  Change Control

Page 5: PuppetCamp Sydney 2012 - Building a Multimaster Environment

One Solution that Worked

Page 6: PuppetCamp Sydney 2012 - Building a Multimaster Environment

Build a Puppeteer:

• This is a Puppet Master Master

• No Client Access

• Acts as a PuppetCA

• Central Point of Entry for Code Updates

• Ensures that the Puppet Masters are in sync

Page 7: PuppetCamp Sydney 2012 - Building a Multimaster Environment

LDAP as an ENC: •  Existing highly available UNIX/Linux backbone service

•  Already replicated to every region

•  Masters are configured to speak with their nearest LDAP

replica

•  Provides an effective audit trail

•  Node definitions are abstracted away from the Puppet

manifests

Page 8: PuppetCamp Sydney 2012 - Building a Multimaster Environment

Replicating Puppet Configuration: •  The Puppet Master is effective at syncing files

•  Use the Puppet Fileserver to replicate the masters o  manifests

o  modules

o  files

o  templates

•  The Puppeteer can 'kick' the other masters to force a run

•  Create a puppet::master class to ensure, masters are

fully controlled

Page 9: PuppetCamp Sydney 2012 - Building a Multimaster Environment

F5 Global Traffic Management (GTM) & DNS:

• Local Puppet Master addresses are returned to

clients based on the DNS server the request

came from

•  If a Master is down then next nearest is returned

• Any Puppet Master globally can answer the

client

Page 10: PuppetCamp Sydney 2012 - Building a Multimaster Environment

F5 Local Traffic Management (LTM):

• On sites with heavy loads this can be used to

rapidly scale the local Puppet Master service

•  If a local Master is taken out of service F5 will

automatically send you to the nearest local

Master

Page 11: PuppetCamp Sydney 2012 - Building a Multimaster Environment

All Tied Together:

Page 12: PuppetCamp Sydney 2012 - Building a Multimaster Environment

Workflow – Adding a New Server

•  Define the client characteristics in the LDAP ENC (eg.

Datacentre, Environment, Server Flavour)

•  Configure the build tools

•  PXE boot then server, OS is installed and puppet

bootstraps

•  Once the client certificate is signed the server is

configured

Page 13: PuppetCamp Sydney 2012 - Building a Multimaster Environment

Workflow (adding a master):

•  Build a 'standard' client

•  Redefine in ENC (LDAP) as a puppetmaster

•  Destroy local certificates

•  generate special certificates on puppetmaster using --

dns_alt_names

•  rerun puppet and Master configurations will sync down

Page 14: PuppetCamp Sydney 2012 - Building a Multimaster Environment

So What’s New:

Since this configuration was deployed Puppet Labs have

been busy:

•  Puppet Sites - Will soon be released and addresses a lot

of the issues here

•  PuppetDB – The new standard for stored configs

Page 15: PuppetCamp Sydney 2012 - Building a Multimaster Environment

Special thanks to Jon Spinks @ Sourced Group

Sourced Group are a Puppet Labs partner providing integration services for Puppet

Enterprise Edition

Page 16: PuppetCamp Sydney 2012 - Building a Multimaster Environment

Q & A

Please go and bother Jon Spinks to find out what Sourced have been doing with Puppet to automate Amazon Web

Services