Razor: A fresh look at provisioning by David Lutterkort
-
Upload
netways -
Category
Technology
-
view
749 -
download
1
description
Transcript of Razor: A fresh look at provisioning by David Lutterkort
![Page 2: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/2.jpg)
PXE provisioning – satisfaction rating
How satisfied are you with your PXE installation solution ? (representative sample of imaginary users)
![Page 3: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/3.jpg)
3
![Page 4: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/4.jpg)
4
![Page 5: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/5.jpg)
Components
5
Server
![Page 6: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/6.jpg)
Components
6
Server
![Page 7: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/7.jpg)
Setup
7
Server
TFTP
DHCP
![Page 8: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/8.jpg)
Client
Architecture
8
Node
Node
Node
Node
TFTP
DHCP
Server
![Page 9: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/9.jpg)
Discovery
9
Node
Server
TFTP
DHCP
![Page 10: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/10.jpg)
Node
Discovery
10
MK Serv
er
TFTP
DHCP
![Page 11: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/11.jpg)
Node
Server
Client
Setup
11
Repo Broker
Policy
Tags
RE
ST
MK
TFTP
DHCP
Installer
![Page 12: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/12.jpg)
Node
Client
Installation
12
RE
ST
MK
TFTP
DHCP
Server
Repo Broker
Policy
Tags Installer
![Page 13: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/13.jpg)
Node
Client
Installation
13
RE
ST
TFTP
DHCP
Server
Repo Broker
Policy
Tags Installer
![Page 14: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/14.jpg)
Node
Client
Installation
14
RE
ST
TFTP
DHCP
Server
Repo Broker
Policy
Tags Installer
![Page 15: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/15.jpg)
Client
Installers
15
Node
Node
Node
Node
TFTP
DHCP
Server
![Page 16: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/16.jpg)
Tags
• A named match rule
• Rules can have complex logic
16
[“or”,
[“in”, [“fact”, “macaddress”],
“de:ad:be:ef:00:01”,
“de:ad:be:ef:00:02”],
[“=”, “2”, [“fact”, “processorcount”]]]
![Page 17: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/17.jpg)
Installer example
17
---
# redhat.yaml
os_version: 6
description: Red Hat EL
installer
boot_sequence:
1: boot_install
default: boot_local
![Page 18: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/18.jpg)
Broker example
18
# broker.json
{
“name”: "puppet",
“broker-type”: "puppet",
“configuration”: {
“server”:
"puppet.local.watzmann.net",
“certname”: …,
“environment”:
“production”
}
}
![Page 19: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/19.jpg)
Template example
19
# os_boot.erb
hostname <%= node.hostname %>
yum -y install rubygems
facter
[ $? -eq 0 ] && curl <%=
log_url(“ok”) %>\
|| curl <%=
log_url(“fail”, :error) %>
#!ipxe
# boot_install.erb
kernel <%=
repo_url(“/vmlinuz”) %> \
ks=<%=
file_url(“kickstart”) %>
![Page 20: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/20.jpg)
Policy example
# policy.json
{
“name”: “centos”,
“repo”: { “name”: “centos-6.4” },
“installer”: { “name”: “centos” },
“broker”: { “name”: “puppet” },
“hostname”: “host${id}.example.com”,
“root_password”: “secret”,
“max_count”: 20,
“enabled”: true,
“rule_number”: 100,
“tags”: [{ “name”: “large-server”,
“rule”: [ … ] }]
}
![Page 21: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/21.jpg)
21
![Page 22: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/22.jpg)
The Cloudy Part
![Page 23: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/23.jpg)
ESXi → vCenter
vCenter
Node
Node
Node
Node
TFTP
DHCP
Razor
GET /broker
export node details
collect
puppetlabs/ vcenter
![Page 24: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/24.jpg)
Openstack
Cntrl
Comp
TFTP
DHCP
Razor
puppetlabs/ openstack
![Page 25: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/25.jpg)
Openstack: Controller Policy
# controller.json
{
“name”: “controller”,
“repo”: { “name”: “fedora-19” },
“installer”: { “name”: “fedora” },
“broker”: { “name”: “puppet” },
“hostname”: “controller${id}.example.com”,
“root_password”: “secret”,
“max_count”: 1,
“enabled”: true,
“rule_number”: 100,
“tags”: [{ “name”: “controller”,
“rule”: [ … ] }]
}
![Page 26: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/26.jpg)
Openstack: Compute Policy
# compute.json
{
“name”: “compute”,
“repo”: { “name”: “fedora-19” },
“installer”: { “name”: “fedora” },
“broker”: { “name”: “puppet” },
“hostname”: “compute${id}.example.com”,
“root_password”: “secret”,
“max_count”: 1,
“enabled”: true,
“rule_number”: 90,
“tags”: [{ “name”: “compute”,
“rule”: [ … ] }]
}
![Page 27: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/27.jpg)
Openstack: site.pp
node /controller/ {
class { 'openstack::controller':
public_address => '192.168.100.10',
public_interface => 'eth0',
private_interface => 'eth1',
…
}
}
node /compute/ {
class { 'openstack::compute':
internal_address => $::ipaddress_eth0,
…
}
}
![Page 28: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/28.jpg)
The Future
![Page 29: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/29.jpg)
Client
Command and control
29
Node
Node
Node
Node
TFTP
DHCP
Server
Commands
![Page 30: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/30.jpg)
Client
Events
30
Node
Node
Node
Node
TFTP
DHCP
Server Events
![Page 31: Razor: A fresh look at provisioning by David Lutterkort](https://reader034.fdocuments.in/reader034/viewer/2022052621/5587911bd8b42a560b8b4583/html5/thumbnails/31.jpg)
Don’t be a stranger
• Github repos (will change)
– Server: https://github.com/puppetlabs/razor-server
– Microkernel: https://github.com/puppetlabs/razor-el-mk
• Mailing list: http://groups.google.com/group/puppet-razor
• IRC: #puppet-razor (freenode)
• My email: [email protected]
31