More Related Content
Similar to PuppetCamp London 2013 - Automated OS and App deployment using Puppet and Razor - Jonas Rosland
Similar to PuppetCamp London 2013 - Automated OS and App deployment using Puppet and Razor - Jonas Rosland(20)
More from Jonas Rosland(13)
PuppetCamp London 2013 - Automated OS and App deployment using Puppet and Razor - Jonas Rosland
- 1. Automated OS & App
Deployment
Using Puppet and Razor
Jonas Rosland
Software-Defined Specialist
@virtualswede
© Copyright 2012 EMC Corporation. All rights reserved. 1
- 2. 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. 2
- 3. Why not just use templates?
They get old fast
Pre-packages bits are harder to maintain
No easy upgrade to next distro version
© Copyright 2012 EMC Corporation. All rights reserved. 3
- 4. So how does it work?
© Copyright 2012 EMC Corporation. All rights reserved. 4
- 5. Auto-Discovered Real-Time Inventory
Data
Boots a Micro-Kernel
Primarily using facter
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. 5
- 6. 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. 6
- 7. 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. 7
- 8. 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. 8
- 10. Puppet + Razor = Good!
© Copyright 2012 EMC Corporation. All rights reserved. 10
- 11. Razor installation using Puppet
node razor {
class { 'sudo':
config_file_replace => false,
}
include razor
}
© Copyright 2012 EMC Corporation. All rights reserved. 11
- 12. 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. 12
- 13. 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. 13
- 14. 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. 14
- 15. 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. 15
- 17. Wanna get started?
How to and best practices on my blog:
http://purevirtual.eu/category/automation/puppet/
http://purevirtual.eu/category/automation/razor/
Send me an email/tweet!
jonas.rosland@emc.com
@virtualswede
© Copyright 2012 EMC Corporation. All rights reserved. 17
Editor's Notes
- Ockham’s Razor = Simpler explanations is better than complex ones
- Show:FacterRazor policyBoot up ESXi serverRazor nodeShow ESXibeing installed
- Templates cancurrently be ”linux_deploy” or ”vmware_hypervisor”
- Show:FacterRazor policyBoot up ESXi serverRazor nodeShow ESXibeing installed