{"version":"1.0","provider_name":"Service  Engineering (ICCLab &amp; SPLab)","provider_url":"https:\/\/blog.zhaw.ch\/icclab","author_name":"Andy Edmonds","author_url":"https:\/\/blog.zhaw.ch\/icclab\/author\/edmo\/","title":"Foreman, Puppet and OpenStack","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"K5gc5ZjmtS\"><a href=\"https:\/\/blog.zhaw.ch\/icclab\/foreman-puppet-and-openstack\/\">Foreman, Puppet and OpenStack<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/blog.zhaw.ch\/icclab\/foreman-puppet-and-openstack\/embed\/#?secret=K5gc5ZjmtS\" width=\"600\" height=\"338\" title=\"&#8220;Foreman, Puppet and OpenStack&#8221; &#8212; Service  Engineering (ICCLab &amp; SPLab)\" data-secret=\"K5gc5ZjmtS\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/blog.zhaw.ch\/icclab\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"So all our work in the previous articles has been leading up to this one. In this article we'll describe how you can deploy a full multi-node [OpenStack](http:\/\/www.openstack.org) cluster beginning from bare metal using [Foreman](http:\/\/www.theforeman.org) and [puppet](http:\/\/www.puppetlabs.com). Before continuing we should note what exactly 'bare metal' is in this context. Bare metal refers to physical server hardware that has not yet been provisioned with an operating system. When provisioning this bare metal, it is assumed that the underlying network has been setup (e.g. L2 configurations)."}