{"id":37022,"date":"2017-03-27T12:10:02","date_gmt":"2017-03-27T09:10:02","guid":{"rendered":"https:\/\/cloudbase.it\/?p=37022"},"modified":"2017-03-27T12:36:02","modified_gmt":"2017-03-27T09:36:02","slug":"openstack-kolla-hyper-v","status":"publish","type":"post","link":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","title":{"rendered":"Deploying OpenStack using Docker containers with Hyper-V and Kolla"},"content":{"rendered":"<p>OpenStack is a great technology, but it can be a bit cumbersome to deploy and manage without the proper tools. One easy solution\u00a0to address this issue is to deploy OpenStack services using pre-built Docker containers.<\/p>\n<p>Kolla is a set of deployment tools for\u00a0OpenStack, consisting in the <a href=\"https:\/\/github.com\/openstack\/kolla\">Kolla<\/a> project itself, for generating OpenStack Docker images, and &#8220;deliverables&#8221; projects, to deploy the Docker containers and thus OpenStack. The most mature deliverable is <a href=\"https:\/\/github.com\/openstack\/kolla-ansible\">kolla-ansible<\/a>, which, as the name implies, uses\u00a0Ansible playbooks to automate\u00a0the deployment. The project documentation can be found <a href=\"https:\/\/docs.openstack.org\/developer\/kolla-ansible\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h2>Hyper-V setup<\/h2>\n<p>On the Windows host, we need a VM to host the Linux OpenStack controller. For this purpose I created\u00a0an Ubuntu 16.04 VM with\u00a08GB of RAM, 4 virtual cores and 20GB of disk. All the controller\u00a0services run here and are deployed with Kolla in Docker containers. Last but not least, the same Hyper-V also serves as a compute host for the OpenStack deployment. This is achieved by installing our\u00a0<a href=\"https:\/\/cloudbase.it\/openstack-hyperv-driver\/\">Cloudbase OpenStack components<\/a>. Additional Hyper-V compute nodes can be added later as needed.<\/p>\n<p>&nbsp;<\/p>\n<h3>Networking setup<\/h3>\n<p><a class=\"dt-single-image\" href=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-20-at-23.28.50.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-37188\" src=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-20-at-23.28.50.png?resize=1200%2C689&#038;ssl=1\" alt=\"\" width=\"1200\" height=\"689\" \/><\/a><\/p>\n<p>On the Hyper-V host, I am going to need 2 virtual switches\u00a0that are going to be connected\u00a0to the OpenStack controller VM. <strong>ext-net<\/strong>\u00a0is\u00a0the external\u00a0network, it is bridged to the Windows physical external interface. I will use this network also for the management of the VM. <strong>data-net<\/strong>\u00a0is the\u00a0data network, which can be a simple private virtual switch for now (an external one is needed only when adding more compute nodes).<\/p>\n<p>On\u00a0the OpenStack Controller VM there are 3 interfaces. The first two, <strong>eth0<\/strong> and <strong>eth1<\/strong> are connected to the external\u00a0network. The former is used for management (SSH, etc) and the latter is used by OpenStack for external traffic, managed by Open vSwitch. Finally, <strong>eth2<\/strong> is the data\/overlay network. It is used for tenant traffic between the instances and the Neutron components in the controller.<\/p>\n<p>&nbsp;<\/p>\n<p><a class=\"dt-single-image\" href=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-20-at-23.32.24.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-37191 \" src=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-20-at-23.32.24.png?resize=293%2C141&#038;ssl=1\" alt=\"\" width=\"293\" height=\"141\" \/><\/a><\/p>\n<p><strong>eth1<\/strong> and <strong>eth2<\/strong> do not have an IP and are\u00a0set as &#8220;manual&#8221; in \/etc\/network\/interfaces. The reason for this is that they are managed\u00a0by OpenvSwitch.\u00a0Also on these interfaces I need to enable MAC address spoofing (&#8220;Advanced Features&#8221; tab on the adapter).<\/p>\n<p>The scripts that I will be using configures the Linux network interfaces automatically so I don&#8217;t need to bother with that now. The only interface I have already configured is <strong>eth0<\/strong> so I can SSH\u00a0into the machine.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>OpenStack controller deployment<\/strong><\/h2>\n<p>I am going to clone a repository that contains the scripts for the Kolla Openstack deployment, which can be found <a href=\"https:\/\/github.com\/cloudbase\/kolla-resources\">here<\/a>. At the end of the deployment it will also create some common flavors, a Cirros VHDX Cinder image, a Neutron virtual router and 2 networks, one external (flat) and one private for tenants (VLAN based).<\/p>\n<pre class=\"lang:sh decode:true\">git clone https:\/\/github.com\/cloudbase\/kolla-resources.git\r\ncd kolla-resources<\/pre>\n<p>To begin with, we are going to configure the management and external network details by setting\u00a0some variables in\u00a0<em>deploy_openstack.sh<\/em>:<\/p>\n<pre class=\"lang:sh decode:true\">vim deploy_openstack.sh<\/pre>\n<pre class=\"lang:sh decode:true\"># deploy_openstack.sh\r\nMGMT_IP=192.168.0.60\r\nMGMT_NETMASK=255.255.255.0\r\nMGMT_GATEWAY=192.168.0.1\r\nMGMT_DNS=\"8.8.8.8\"\r\n\r\n# neutron external network information\r\nFIP_START=192.168.0.80\r\nFIP_END=192.168.0.90\r\nFIP_GATEWAY=192.168.0.1\r\nFIP_CIDR=192.168.0.0\/24\r\nTENANT_NET_DNS=\"8.8.8.8\"\r\n\r\n# used for HAProxy\r\nKOLLA_INTERNAL_VIP_ADDRESS=192.168.0.91<\/pre>\n<p>As you can see, I am using the same subnet for management and external floating IPs.<\/p>\n<p>Now I can run the deployment script. I am using the Linux &#8220;time&#8221; command to see how long the deployment will take:<\/p>\n<pre class=\"lang:sh decode:true\">time sudo .\/deploy_openstack.sh<\/pre>\n<p>The first thing this script will do is to pull the Docker images for each OpenStack service. The great thing with Kolla is that you just need to create the images once, sparing significant time during deployment. This reduces significantly potential errors due to updated dependencies as the container images already contain all the required components. The images that I am going to use during the deployment are available\u00a0<a href=\"https:\/\/hub.docker.com\/u\/cloudbaseit\/\">here<\/a>. Feel free to create your own, just follow the <a href=\"https:\/\/docs.openstack.org\/developer\/kolla-ansible\/quickstart.html\">documentation<\/a>.<\/p>\n<p>After the deployment is finished, I have a fully functional OpenStack controller. It took around 13 minutes to deploy, that&#8217;s quite fast if you ask me.<\/p>\n<pre class=\"lang:sh decode:true \">real\t12m28.716s\r\nuser\t3m7.296s\r\nsys     1m4.428s<\/pre>\n<p>&nbsp;<\/p>\n<p>By running\u00a0&#8220;<em>sudo\u00a0docker ps&#8221;<\/em>\u00a0I can see all the containers running.<\/p>\n<p><a class=\"dt-single-image\" href=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-13-at-13.13.25.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-37120\" src=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-13-at-13.13.25.png?resize=1200%2C410&#038;ssl=1\" alt=\"\" width=\"1200\" height=\"410\" \/><\/a><\/p>\n<p>Admin credentials can be sourced now:<\/p>\n<pre class=\"lang:sh decode:true\">source \/etc\/kolla\/admin-openrc.sh<\/pre>\n<p>The only thing left to do is to deploy the OpenStack\u00a0Hyper-V components.<\/p>\n<p>&nbsp;<\/p>\n<h2>Nova Hyper-V compute node deployment<\/h2>\n<p>First, I&#8217;m going to edit the Ansible inventory to add my\u00a0Hyper-V host (simply named &#8220;hyperv-host&#8221; in this post) as well as the credentials needed to access it:<\/p>\n<pre class=\"lang:sh decode:true \">vim hyperv_inventory<\/pre>\n<pre class=\"lang:sh decode:true\">[hyperv]\r\nhyperv-host\r\n\r\n[hyperv:vars]\r\nansible_ssh_host=192.168.0.120\r\nansible_user=Administrator\r\nansible_password=Passw0rd\r\nansible_port=5986\r\nansible_connection=winrm\r\nansible_winrm_server_cert_validation=ignore<\/pre>\n<p>An HTTPS WinRM listener needs to be configured on the Hyper-V host, which\u00a0can be easily created with <a href=\"https:\/\/github.com\/ansible\/ansible\/blob\/devel\/examples\/scripts\/ConfigureRemotingForAnsible.ps1\">this PowerShell script<\/a>.<\/p>\n<p>Now, I&#8217;m going to run the scripts that will fully deploy and configure Nova compute on Hyper-V. The first\u00a0parameter\u00a0is the data bridge that I configured earlier, <strong>data-net<\/strong>. The third and fourth parameters are are the Hyper-V credentials that FreeRDP will need to use in order to access the Hyper-V host when connecting to a Nova instance console.<\/p>\n<pre class=\"lang:sh decode:true\">sudo .\/deploy_hyperv_compute_playbook.sh data-net Administrator Passw0rd<\/pre>\n<p>Next, I need to set trunk mode for my OpenStack controller. There are two reasons for this: first, I have a tenant network with type VLAN, and second, the controller is\u00a0a VM in Hyper-V, so the hypervisor needs to allow VLAN tagged packets on\u00a0the controller VM data interface. Start an elevated PowerShell and run:<\/p>\n<pre class=\"lang:ps decode:true\">Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList 500-2000 -NativeVlanId 0 openstack-controller<\/pre>\n<p>&#8220;openstack-controller&#8221; is the name of the controller VM in Hyper-V.<\/p>\n<p>&nbsp;<\/p>\n<h2>Spawning a VM<\/h2>\n<p>Now I have everything in place to start playing around. I will boot a VM and test its connectivity to the Internet.<\/p>\n<pre class=\"lang:sh decode:true\">NETID=`neutron net-show private-net | awk '{if (NR == 5) {print $4}}'`\r\nnova boot --flavor m1.nano \\\r\n--nic net-id=$NETID \\\r\n--image cirros-gen1-vhdx hyperv-vm1<\/pre>\n<p>Taking a look in Horizon:<\/p>\n<p><a class=\"dt-single-image\" href=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-10-at-01.37.56.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-37105\" src=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-10-at-01.37.56.png?resize=1200%2C223&#038;ssl=1\" alt=\"\" width=\"1200\" height=\"223\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>The FreeRDP\u00a0console access from Horizon works as well. I can also access the\u00a0VM directly from Hyper-v if needed.<\/p>\n<p><a class=\"dt-single-image\" href=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-10-at-02.42.05.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-37109\" src=\"https:\/\/i0.wp.com\/cloudbase.it\/wp-content\/uploads\/2017\/03\/Screen-Shot-2017-03-10-at-02.42.05.png?resize=1200%2C977&#038;ssl=1\" alt=\"\" width=\"1200\" height=\"977\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Useful information<\/h2>\n<p>What if you need to modify the configuration of an OpenStack service running in a container? For example, lets say you want to enable another ML2 type driver. It&#8217;s quite easy actually.<\/p>\n<p>In this\u00a0case i need to edit the <em>ml2_conf.ini<\/em> file:<\/p>\n<pre class=\"lang:sh decode:true\">sudo vim \/etc\/kolla\/neutron-server\/ml2_conf.ini<\/pre>\n<p>After I am done with the editing, the only thing left to do is to restart the Neutron server container:<\/p>\n<pre class=\"lang:sh decode:true\">sudo docker restart neutron_server<\/pre>\n<p>Done. As you can see, Kolla keeps all the OpenStack configuration files in <strong>\/etc\/kolla<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusions<\/h2>\n<p>Containers can help a lot in an OpenStack deployment. Footprint is small, dependency induced regressions are limited and with the aid of a tool like Ansible, automation can be managed very easily.<\/p>\n<p>What&#8217;s next? As I mentioned at the beginning, kolla-ansible is just one of the &#8220;deliverables&#8221;. <a href=\"https:\/\/github.com\/openstack\/kolla-kubernetes\">kolla-kubernetes<\/a> is also currently being\u00a0developed and we can already see the benefits that the Kubernetes container orchestration can bring to OpenStack deployments, so looking forward for kolla-kubernetes to reach a stable status as well!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenStack is a great technology, but it can be a bit cumbersome to deploy and manage without the proper tools. One easy solution\u00a0to address this issue is to deploy OpenStack services using pre-built Docker containers. Kolla is a set of deployment tools for\u00a0OpenStack, consisting in the Kolla project itself, for generating OpenStack Docker images, and&hellip;<\/p>\n","protected":false},"author":32,"featured_media":37221,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false},"categories":[149,86,9,150,83,90,40],"tags":[152,84,151,7],"class_list":["post-37022","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansible","category-freerdp","category-hyper-v","category-kolla","category-openstack","category-ubuntu","category-windows","tag-ansible","tag-hyper-v","tag-kolla","tag-openstack","category-149","category-86","category-9","category-150","category-83","category-90","category-40","description-off"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions<\/title>\n<meta name=\"description\" content=\"Kolla is the answer to all your OpenStack deployment issues. It&#039;s easy, is based on Docker containers, uses Ansible and supports Hyper-V.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions\" \/>\n<meta property=\"og:description\" content=\"Kolla is the answer to all your OpenStack deployment issues. It&#039;s easy, is based on Docker containers, uses Ansible and supports Hyper-V.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloudbase Solutions\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/cloudbasesolutions\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-27T09:10:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-03-27T09:36:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dan Ardelean\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cloudbaseit\" \/>\n<meta name=\"twitter:site\" content=\"@cloudbaseit\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dan Ardelean\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\"},\"author\":{\"name\":\"Dan Ardelean\",\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf\"},\"headline\":\"Deploying OpenStack using Docker containers with Hyper-V and Kolla\",\"datePublished\":\"2017-03-27T09:10:02+00:00\",\"dateModified\":\"2017-03-27T09:36:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\"},\"wordCount\":1068,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\/\/cloudbase.it\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"keywords\":[\"Ansible\",\"Hyper-V\",\"Kolla\",\"OpenStack\"],\"articleSection\":[\"Ansible\",\"FreeRDP\",\"Hyper-V\",\"Kolla\",\"OpenStack\",\"Ubuntu\",\"Windows\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\",\"url\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\",\"name\":\"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions\",\"isPartOf\":{\"@id\":\"https:\/\/cloudbase.it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"datePublished\":\"2017-03-27T09:10:02+00:00\",\"dateModified\":\"2017-03-27T09:36:02+00:00\",\"description\":\"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\",\"url\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"contentUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"width\":960,\"height\":560},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudbase.it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploying OpenStack using Docker containers with Hyper-V and Kolla\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudbase.it\/#website\",\"url\":\"https:\/\/cloudbase.it\/\",\"name\":\"Cloudbase Solutions\",\"description\":\"Cloud Interoperability\",\"publisher\":{\"@id\":\"https:\/\/cloudbase.it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudbase.it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudbase.it\/#organization\",\"name\":\"Cloudbase Solutions\",\"url\":\"https:\/\/cloudbase.it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png\",\"contentUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png\",\"width\":583,\"height\":143,\"caption\":\"Cloudbase Solutions\"},\"image\":{\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/facebook.com\/cloudbasesolutions\",\"https:\/\/x.com\/cloudbaseit\",\"https:\/\/www.linkedin.com\/company-beta\/3139764\",\"https:\/\/www.youtube.com\/channel\/UCBgH5RqPL4lgxA8gn3rIAFw\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf\",\"name\":\"Dan Ardelean\",\"sameAs\":[\"https:\/\/cloudbase.it\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions","description":"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","og_locale":"en_US","og_type":"article","og_title":"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions","og_description":"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.","og_url":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","og_site_name":"Cloudbase Solutions","article_publisher":"http:\/\/facebook.com\/cloudbasesolutions","article_published_time":"2017-03-27T09:10:02+00:00","article_modified_time":"2017-03-27T09:36:02+00:00","og_image":[{"width":960,"height":560,"url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","type":"image\/png"}],"author":"Dan Ardelean","twitter_card":"summary_large_image","twitter_creator":"@cloudbaseit","twitter_site":"@cloudbaseit","twitter_misc":{"Written by":"Dan Ardelean","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#article","isPartOf":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/"},"author":{"name":"Dan Ardelean","@id":"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf"},"headline":"Deploying OpenStack using Docker containers with Hyper-V and Kolla","datePublished":"2017-03-27T09:10:02+00:00","dateModified":"2017-03-27T09:36:02+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/"},"wordCount":1068,"commentCount":6,"publisher":{"@id":"https:\/\/cloudbase.it\/#organization"},"image":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage"},"thumbnailUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","keywords":["Ansible","Hyper-V","Kolla","OpenStack"],"articleSection":["Ansible","FreeRDP","Hyper-V","Kolla","OpenStack","Ubuntu","Windows"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","url":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","name":"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions","isPartOf":{"@id":"https:\/\/cloudbase.it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage"},"image":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage"},"thumbnailUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","datePublished":"2017-03-27T09:10:02+00:00","dateModified":"2017-03-27T09:36:02+00:00","description":"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.","breadcrumb":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage","url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","contentUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","width":960,"height":560},{"@type":"BreadcrumbList","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudbase.it\/"},{"@type":"ListItem","position":2,"name":"Deploying OpenStack using Docker containers with Hyper-V and Kolla"}]},{"@type":"WebSite","@id":"https:\/\/cloudbase.it\/#website","url":"https:\/\/cloudbase.it\/","name":"Cloudbase Solutions","description":"Cloud Interoperability","publisher":{"@id":"https:\/\/cloudbase.it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudbase.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudbase.it\/#organization","name":"Cloudbase Solutions","url":"https:\/\/cloudbase.it\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/","url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png","contentUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png","width":583,"height":143,"caption":"Cloudbase Solutions"},"image":{"@id":"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/cloudbasesolutions","https:\/\/x.com\/cloudbaseit","https:\/\/www.linkedin.com\/company-beta\/3139764","https:\/\/www.youtube.com\/channel\/UCBgH5RqPL4lgxA8gn3rIAFw"]},{"@type":"Person","@id":"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf","name":"Dan Ardelean","sameAs":["https:\/\/cloudbase.it"]}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","_links":{"self":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts\/37022"}],"collection":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/comments?post=37022"}],"version-history":[{"count":96,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts\/37022\/revisions"}],"predecessor-version":[{"id":37218,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts\/37022\/revisions\/37218"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/media\/37221"}],"wp:attachment":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/media?parent=37022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/categories?post=37022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/tags?post=37022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}