More Related Content
Similar to VMUG Sweden 2013-02-08 - Puppet and Razor (20)
More from Jonas Rosland (13)
VMUG Sweden 2013-02-08 - Puppet and Razor
- 1. OS & App Automated
Deployment
Using Puppet and Razor
Jonas Rosland
vSpecialist EMEA
@virtualswede
© Copyright 2012 EMC Corporation. All rights reserved. 1
- 2. What is Puppet?
IT automation software
Helps system administrators manage
infrastructure throughout its lifecycle
Provisioning and configuration
Patch management and compliance
Highly scalable
© Copyright 2012 EMC Corporation. All rights reserved. 2
- 3. How scalable?
Google manages more than 50000 systems
Zynga scaled from 0 to 10000 servers in 2
months
I am managing tens of machines!
© Copyright 2012 EMC Corporation. All rights reserved. 3
- 5. Why is Puppet cool?
Centralized, Scalable configuration management for
server farms
Abstracted from underlying OS (to a point)
Configurations can be stored in a version control
system (like Git) for historical change tracking
Automated configuration of individual machines
based on hardware/software configuration
Auditing of configuration of individual machines
© Copyright 2012 EMC Corporation. All rights reserved. 5
- 6. Where Puppet helps
Bridge the gap between sysadmins and dev teams
Devs: Same configuration as Production
environment
– Need new extension? Update Puppet configurations
Sysadmins: System changes are tracked through
commits, can be reviewed easily
Result: Consistent platforms throughout with
minimal pain
© Copyright 2012 EMC Corporation. All rights reserved. 6
- 7. Puppet Prod-Dev-Test-QA Example
Production environment
– Dev creates a copy for dev
– Test creates a copy for test
– QA creates a copy for QA
All changes can easily be propagated
throughout all environments
© Copyright 2012 EMC Corporation. All rights reserved. 7
- 11. So what’s Razor?
Cloud provisioning tool
Operating Systems AND Hypervisors
Physical AND virtual
Event-driven instead of user-driven
© Copyright 2012 EMC Corporation. All rights reserved. 12
- 12. Auto-Discovered Real-Time Inventory
Data
For every hardware node
Eliminating inefficient, error-prone manual
processes
Full insight into the latest, up-to-date status
of your hardware inventory
© Copyright 2012 EMC Corporation. All rights reserved. 13
- 13. Dynamic Image Selection
Selects the correct operating system image
Based on auto-discovered, real-time
inventory data
No manual intervention needed
© Copyright 2012 EMC Corporation. All rights reserved. 14
- 14. Model-Based Provisioning
Models the desired state of each hardware
node and its operating system
Automatically tracks provisioning progress
toward this state
Full control over a node’s boot sequence and
a complete log of its lifecycle
© Copyright 2012 EMC Corporation. All rights reserved. 15
- 15. Open APIs and Plug-in Architecture
RESTful open APIs
Full programmatic control of the rules and
models that govern operating system image
selection and hardware provisioning
Enables the Puppet community to collaborate
and share plug-ins to support any operating
system and any boot sequence
© Copyright 2012 EMC Corporation. All rights reserved. 16
- 17. Puppet + Razor = Good!
© Copyright 2012 EMC Corporation. All rights reserved. 18
- 18. Razor installation using Puppet
node razor {
class { 'sudo':
config_file_replace => false,
}
include razor
}
© Copyright 2012 EMC Corporation. All rights reserved. 19
- 19. Add a broker
rz_broker { 'puppet_broker':
ensure => present,
plugin => 'puppet',
metadata => {
broker_version => '2.7.18',
server => 'puppet.purevirtual.lab',
}
}
© Copyright 2012 EMC Corporation. All rights reserved. 20
- 20. Add an image to deploy
rz_image { "ubuntu_precise_image":
ensure => present,
type => 'os',
version => '12.04.1',
source =>
"http://ftp.sunet.se/pub/os/Linux/distributions/ubunt
u/ubuntu-cd/12.04.1/ubuntu-12.04.1-server-
amd64.iso",
}
© Copyright 2012 EMC Corporation. All rights reserved. 21
- 21. Add a model for deployment
rz_model { 'install_ubuntu_precise':
ensure => present,
description => 'Ubuntu Precise',
image => 'ubuntu_precise_image',
metadata => {'domainname' => 'purevirtual.lab',
'hostname_prefix' => 'ubuntu-', 'root_password' =>
'password'},
template => 'ubuntu_precise',
}
© Copyright 2012 EMC Corporation. All rights reserved. 22
- 22. Finally, create a policy to tie it all
together
rz_policy { 'ubuntu_precise_policy':
ensure => present,
broker => 'puppet_broker',
model => 'install_ubuntu_precise',
enabled => 'true',
tags => ['memsize_1GiB'],
template => 'linux_deploy',
maximum => 10,
}
© Copyright 2012 EMC Corporation. All rights reserved. 23
- 24. Wanna get started?
How to and best practices on my blog:
http://purevirtual.eu/category/automation/puppet/
http://purevirtual.eu/category/automation/razor/
© Copyright 2012 EMC Corporation. All rights reserved. 25
- 25. Send me an
email/tweet!
jonas.rosland@emc.com
@virtualswede
© Copyright 2012 EMC Corporation. All rights reserved. 26
Editor's Notes
- Ockham’s Razor = Simpler explanations is better than complex ones
- Templates cancurrently be ”linux_deploy” or ”vmware_hypervisor”
- Show:FacterRazor policyBoot up ESXi serverRazor nodeShow ESXibeing installed