SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Razor
Provision like a boss
David Lutterkort
Principal Engineer | Puppet Labs
@lutterkort
lutter@puppetlabs.com
Who are you ?
• Joined Puppet Labs in May
• One of the first contributors to Puppet
• Started Augeas
• Apache Deltacloud, DMTF CIMI
• email: lutter@puppetlabs.com
• IRC: lutter, twitter: @lutterkort
Razor history
• Started by EMC/VMWare
• Nick Weaver, Tom McSweeney
• EMC World 2012
• PuppetConf 2012
Ingredients
• ipxe
• Hardware discovery and inventory
• Tagging and policies
Where is Razor going
• Rewrite for different stack
• Simplify deployment
• Simplify maintenance
• Simplify usage
Don’t muck with the good bits
The more it changes ...
• Node discovery with MK and facter
• Use ipxe to control boot
• Written in Ruby
• Flexible tag/rule-based policy match
• Simple handoff to Puppet
• Manage large number of nodes
Foundations
Aside: Torquebox rules
• Daemons
• Scheduled Jobs
• Messaging
• Clustering
• Integration with Java libraries
• Java management
Components
• Razor server
• Razor CLI
• Microkernel agent
• Microkernel image
• Razor UI
Microkernel
• Separate MK agent from OS image
• Build on EL
• well-known hardware support
• formal support offerings
• currently ~ 150MB (unoptimized)
• Enable alternative MK builds
Server API
• JSON everywhere
• Query objects with RESTful interface
• Update/modify using commands (CQRS)
• all changes happen async
• Authentication [TODO]
CLI
1> razor nodes
2> razor tags mytag
3> razor create-tag --name=any 
--rule ‘[“=”, 1, 1]’
4> razor create-image --name=... 
--image-url=...
5> razor create-policy --json policy.json
Tags
• A named rule
• Rules can have complex logic
[“or”,
[“in”, [“fact”, “macaddress”,
“de:ad:be:ef:00:01”,
“de:ad:be:ef:00:02”]],
[“=”, “2”, [“fact”, “processorcount”]]]
Policies
# policy.json
{
“name”: “fedora-for-any”,
“image”: { “name”: “fedora-19” },
“installer”: { “name”: “fedora-base” },
“broker”: { “name”: “puppet” },
“hostname”: “host${id}.example.com”,
“root_password”: “secret”,
“max_count”: 20,
“enabled”: true,
“line_number”: 100,
“tags”: [{ “name”: “any” }]
}
Installers
• OS installation inherently linear
• Completely in metadata
• file based or in DB
• Simple node/server API
• evaluate and fetch ERB template
• store a value (e.g., IP address)
• log a message
Installer example
---
# redhat.yaml
os: Red Hat Enterprise Linux
os_version: 6
description: Red Hat EL installer
boot_sequence:
1: boot_install
default: boot_local
Template example
# 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 <%= image_url(“/vmlinuz”) %> 
ks=<%= file_url(“kickstart”) %>
The road forward
• Make release soon (~ 2 weeks)
• Add lifecycle management features
• Userdata for nodes
• Node commands
• Generate events
Possible node commands
• Boot locally
• Boot into MK
• register
• update facts
• BIOS/firmware update
• Reinstall OS
• Unbind & run through policy table
Event generation
• User-controlled actions (commands)
• Possible events
• node discovered
• policy bound
• installer finished
• policy unbound
Demo time
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: lutter@puppetlabs.com
Thank You
David Lutterkort
Principal Engineer | Puppet Labs
@lutterkort
Collaborate. Automate. Ship.
Follow us on Twitter @puppetlabs
youtube.com/puppetlabsinc
slideshare.net/puppetlabs
Collaborate. Automate. Ship.

Weitere ähnliche Inhalte

Was ist angesagt?

Apache Ambari - What's New in 1.2.4
Apache Ambari - What's New in 1.2.4Apache Ambari - What's New in 1.2.4
Apache Ambari - What's New in 1.2.4
Hortonworks
 

Was ist angesagt? (20)

Understanding OpenStack Deployments - PuppetConf 2014
Understanding OpenStack Deployments - PuppetConf 2014Understanding OpenStack Deployments - PuppetConf 2014
Understanding OpenStack Deployments - PuppetConf 2014
 
OpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
OpenNebula Conf 2014 | Puppet and OpenNebula - David LutterkortOpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
OpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
 
Nodejsvault austin2019
Nodejsvault austin2019Nodejsvault austin2019
Nodejsvault austin2019
 
Designing High Availability for HashiCorp Vault in AWS
Designing High Availability for HashiCorp Vault in AWSDesigning High Availability for HashiCorp Vault in AWS
Designing High Availability for HashiCorp Vault in AWS
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
 
Server Locality Using Razor and LLDP - PuppetConf 2014
Server Locality Using Razor and LLDP - PuppetConf 2014Server Locality Using Razor and LLDP - PuppetConf 2014
Server Locality Using Razor and LLDP - PuppetConf 2014
 
Creating real life serverless solutions with Azure Functions - dotNet Amsterd...
Creating real life serverless solutions with Azure Functions - dotNet Amsterd...Creating real life serverless solutions with Azure Functions - dotNet Amsterd...
Creating real life serverless solutions with Azure Functions - dotNet Amsterd...
 
Transforming WordPress Search and Query Performance with Elasticsearch
Transforming WordPress Search and Query Performance with Elasticsearch Transforming WordPress Search and Query Performance with Elasticsearch
Transforming WordPress Search and Query Performance with Elasticsearch
 
Introducing Vault
Introducing VaultIntroducing Vault
Introducing Vault
 
Building and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsBuilding and Scaling Node.js Applications
Building and Scaling Node.js Applications
 
Drupal and Elasticsearch
Drupal and ElasticsearchDrupal and Elasticsearch
Drupal and Elasticsearch
 
What's New in Nuxeo Platform 7.3
What's New in Nuxeo Platform 7.3 What's New in Nuxeo Platform 7.3
What's New in Nuxeo Platform 7.3
 
London HUG 12/4
London HUG 12/4London HUG 12/4
London HUG 12/4
 
Tornado my
Tornado myTornado my
Tornado my
 
Vinetalk: The missing piece for cluster managers to enable accelerator sharing
Vinetalk: The missing piece for cluster managers to enable accelerator sharingVinetalk: The missing piece for cluster managers to enable accelerator sharing
Vinetalk: The missing piece for cluster managers to enable accelerator sharing
 
TechDays 2015 The Azure Sightseeing Tour
TechDays 2015 The Azure Sightseeing TourTechDays 2015 The Azure Sightseeing Tour
TechDays 2015 The Azure Sightseeing Tour
 
2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT2013-cloudconnect-OpenStack@BT
2013-cloudconnect-OpenStack@BT
 
Event Sourcing your AngularJS applications
Event Sourcing your AngularJS applicationsEvent Sourcing your AngularJS applications
Event Sourcing your AngularJS applications
 
Apache Ambari - What's New in 1.2.4
Apache Ambari - What's New in 1.2.4Apache Ambari - What's New in 1.2.4
Apache Ambari - What's New in 1.2.4
 
ZooKeeper - wait free protocol for coordinating processes
ZooKeeper - wait free protocol for coordinating processesZooKeeper - wait free protocol for coordinating processes
ZooKeeper - wait free protocol for coordinating processes
 

Andere mochten auch

Beyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with PuppetBeyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with Puppet
lutter
 
Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)
Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)
Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)
lutter
 

Andere mochten auch (9)

Appmgmt cfgmgmtcamp-2015
Appmgmt cfgmgmtcamp-2015Appmgmt cfgmgmtcamp-2015
Appmgmt cfgmgmtcamp-2015
 
Apache Deltacloud (Linuxcon 2010)
Apache Deltacloud (Linuxcon 2010)Apache Deltacloud (Linuxcon 2010)
Apache Deltacloud (Linuxcon 2010)
 
Beyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with PuppetBeyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with Puppet
 
Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)
Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)
Apache Deltacloud: Speaking EC2 and CIMI to Openstack (and others)
 
Orchestration and the New York Subway
Orchestration and the New York SubwayOrchestration and the New York Subway
Orchestration and the New York Subway
 
Razor: provision like a boss (Build-a-cloud edition)
Razor: provision like a  boss (Build-a-cloud edition)Razor: provision like a  boss (Build-a-cloud edition)
Razor: provision like a boss (Build-a-cloud edition)
 
Beyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with PuppetBeyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with Puppet
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configuration
 
Aeolus - Clouds Flying in Assembly
Aeolus - Clouds Flying in AssemblyAeolus - Clouds Flying in Assembly
Aeolus - Clouds Flying in Assembly
 

Ähnlich wie Puppetconf 2013: Razor - provision like a boss

Taking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max MartinTaking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max Martin
Devopsdays
 
Seedhack MongoDB 2011
Seedhack MongoDB 2011Seedhack MongoDB 2011
Seedhack MongoDB 2011
Rainforest QA
 
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLITSQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
chaitalidarode1
 

Ähnlich wie Puppetconf 2013: Razor - provision like a boss (20)

Taking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max MartinTaking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max Martin
 
Exploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservicesExploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservices
 
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Integrate LLM in your applications 101
Integrate LLM in your applications 101 Integrate LLM in your applications 101
Integrate LLM in your applications 101
 
On Docker and its use for LHC at CERN
On Docker and its use for LHC at CERNOn Docker and its use for LHC at CERN
On Docker and its use for LHC at CERN
 
Seedhack MongoDB 2011
Seedhack MongoDB 2011Seedhack MongoDB 2011
Seedhack MongoDB 2011
 
Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-Red
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate) Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
 
Continuous integration of_puppet_code
Continuous integration of_puppet_codeContinuous integration of_puppet_code
Continuous integration of_puppet_code
 
Puppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: KeynotePuppet Camp Tokyo 2014: Keynote
Puppet Camp Tokyo 2014: Keynote
 
Integration in the age of DevOps
Integration in the age of DevOpsIntegration in the age of DevOps
Integration in the age of DevOps
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
Node azure
Node azureNode azure
Node azure
 
DOTNET8.pptx
DOTNET8.pptxDOTNET8.pptx
DOTNET8.pptx
 
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLITSQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Puppetconf 2013: Razor - provision like a boss

  • 1. Razor Provision like a boss David Lutterkort Principal Engineer | Puppet Labs @lutterkort lutter@puppetlabs.com
  • 2. Who are you ? • Joined Puppet Labs in May • One of the first contributors to Puppet • Started Augeas • Apache Deltacloud, DMTF CIMI • email: lutter@puppetlabs.com • IRC: lutter, twitter: @lutterkort
  • 3. Razor history • Started by EMC/VMWare • Nick Weaver, Tom McSweeney • EMC World 2012 • PuppetConf 2012
  • 4.
  • 5.
  • 6. Ingredients • ipxe • Hardware discovery and inventory • Tagging and policies
  • 7. Where is Razor going • Rewrite for different stack • Simplify deployment • Simplify maintenance • Simplify usage Don’t muck with the good bits
  • 8. The more it changes ... • Node discovery with MK and facter • Use ipxe to control boot • Written in Ruby • Flexible tag/rule-based policy match • Simple handoff to Puppet • Manage large number of nodes
  • 10. Aside: Torquebox rules • Daemons • Scheduled Jobs • Messaging • Clustering • Integration with Java libraries • Java management
  • 11. Components • Razor server • Razor CLI • Microkernel agent • Microkernel image • Razor UI
  • 12. Microkernel • Separate MK agent from OS image • Build on EL • well-known hardware support • formal support offerings • currently ~ 150MB (unoptimized) • Enable alternative MK builds
  • 13. Server API • JSON everywhere • Query objects with RESTful interface • Update/modify using commands (CQRS) • all changes happen async • Authentication [TODO]
  • 14. CLI 1> razor nodes 2> razor tags mytag 3> razor create-tag --name=any --rule ‘[“=”, 1, 1]’ 4> razor create-image --name=... --image-url=... 5> razor create-policy --json policy.json
  • 15. Tags • A named rule • Rules can have complex logic [“or”, [“in”, [“fact”, “macaddress”, “de:ad:be:ef:00:01”, “de:ad:be:ef:00:02”]], [“=”, “2”, [“fact”, “processorcount”]]]
  • 16. Policies # policy.json { “name”: “fedora-for-any”, “image”: { “name”: “fedora-19” }, “installer”: { “name”: “fedora-base” }, “broker”: { “name”: “puppet” }, “hostname”: “host${id}.example.com”, “root_password”: “secret”, “max_count”: 20, “enabled”: true, “line_number”: 100, “tags”: [{ “name”: “any” }] }
  • 17. Installers • OS installation inherently linear • Completely in metadata • file based or in DB • Simple node/server API • evaluate and fetch ERB template • store a value (e.g., IP address) • log a message
  • 18. Installer example --- # redhat.yaml os: Red Hat Enterprise Linux os_version: 6 description: Red Hat EL installer boot_sequence: 1: boot_install default: boot_local
  • 19. Template example # 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 <%= image_url(“/vmlinuz”) %> ks=<%= file_url(“kickstart”) %>
  • 20. The road forward • Make release soon (~ 2 weeks) • Add lifecycle management features • Userdata for nodes • Node commands • Generate events
  • 21. Possible node commands • Boot locally • Boot into MK • register • update facts • BIOS/firmware update • Reinstall OS • Unbind & run through policy table
  • 22. Event generation • User-controlled actions (commands) • Possible events • node discovered • policy bound • installer finished • policy unbound
  • 24. 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: lutter@puppetlabs.com
  • 25. Thank You David Lutterkort Principal Engineer | Puppet Labs @lutterkort Collaborate. Automate. Ship.
  • 26. Follow us on Twitter @puppetlabs youtube.com/puppetlabsinc slideshare.net/puppetlabs Collaborate. Automate. Ship.

Hinweis der Redaktion

  1. Existing systems: get very personal with each server Need MAC Selection out-of-band
  2. What happens when a node boots with Razor - TFTP -&gt; Razor server - boot MK - checkin/facts - tag &amp; apply policy - reboot into installer - hand off to broker
  3. - Deploying easy &amp; well understood - Setup Postgres - gem install ...
  4. Application server for Ruby Support for Sinatra/Rails apps jRuby JBoss AS Install from gem (~ 60MB)
  5. Control what gets installed match nodes and policies using tags Tie various objects together image/installer some metadata (hostname/root password)IP address pool [TODO] max. count