{"id":44658,"date":"2013-06-28T17:55:54","date_gmt":"2013-06-28T14:55:54","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=44658"},"modified":"2019-07-08T16:57:36","modified_gmt":"2019-07-08T13:57:36","slug":"how-to-install-cloud-foundry-locally-by-using-vagrant","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/","title":{"rendered":"How to Install Cloud Foundry Locally by Using Vagrant"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Why_local_deployment\" >Why local deployment?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Cloud_Foundry_Vagrant_Installer\" >Cloud Foundry Vagrant Installer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Installation\" >Installation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Starting_and_stopping_Cloud_Foundry_components\" >Starting and stopping Cloud Foundry components<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Custom_config_files\" >Custom config files<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Building_a_virtual_machine\" >Building a virtual machine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Related_video\" >Related video<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Why_local_deployment\"><\/span>Why local deployment?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>By default, Cloud Foundry is a highly distributed multi-tenant platform that is usually deployed at scale (>40 nodes) on top of existing virtualized infrastructure (e.g., VMware&#8217;s vSphere or vCloud, Amazon AWS, or OpenStack). For a novice Cloud Foundry developer, a full scale PaaS deployment isn\u2019t always an affordable choice for testing or development. Two options exist to address this issue.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/492px-Vagrant1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/06\/492px-Vagrant1-246x300.png\" alt=\"\" width=\"200\" class=\"alignright size-medium wp-image-44778\" \/><\/a><\/p>\n<p>First, the Cloud Foundry team released Micro Cloud Foundry as a virtual machine image that could be run on a laptop. Micro Cloud Foundry behaves more like a production cloud and provides developers with a sandbox to play with. Second, an alternative to using Micro Cloud Foundry on a virtual machine, is to install Cloud Foundry natively on a development toolbox such as Vagrant.<\/p>\n<p>To simplify a start, we prepared an article, &#8220;<a href=\"https:\/\/tanzu.vmware.com\/content\/blog\/installing-cloud-foundry-on-vagrant\">Installing Cloud Foundry on Vagrant<\/a>,&#8221; for the Pivotal blog. The tutorial describes how to install the tool, start \/ stop Cloud Foundry components, work with custom configuration files, etc. Here&#8217;s its updated version.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cloud_Foundry_Vagrant_Installer\"><\/span>Cloud Foundry Vagrant Installer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/www.vagrantup.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">Vagrant<\/a> is actually a developer\u2019s VM toolbox, as it provides an easy way to create and configure lightweight, reproducible, and portable development environments. It sits on top of a virtualization layer such as Virtualbox, VMware Fusion or VMware Workstation. The VM definition and configuration file (<code style=\"color: black; background-color: #e6e6e6;\">Vagrantfile<\/code>) is part of the versioned source code repository.<\/p>\n<p>To ease the deployment process for DevOps engineers, Altoros has released <a href=\"https:\/\/github.com\/Altoros\/cf-vagrant-installer\" rel=\"noopener noreferrer\" target=\"_blank\">Cloud Foundry Vagrant Installer<\/a>.<\/p>\n<p>The Cloud Foundry deployment on Vagrant is a self-contained partial Cloud Foundry v2 installation which runs inside a Vagrant-managed VM with Ubuntu 12.04.2 LTS. To get started, you need to <a href=\"https:\/\/www.vagrantup.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">download and install Vagrant<\/a>. After that, just follow the step by step directions for deploying the Cloud Foundry Vagrant Installer on GitHub.<\/p>\n<p>You should be able to set up and configure everything in under 30 minutes, and easily push a simple Ruby Sinatra web application on the local Cloud Foundry PaaS.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Installation\"><\/span>Installation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Vagrant allows you to run Chef recipes after booting up the VM (these are located under the <code style=\"color: black; background-color: #e6e6e6;\">chef<\/code> directory). Every time you bring up a VM (<code style=\"color: black; background-color: #e6e6e6;\">vagrant up<\/code>), it will check the Chef folder and determine if any recipes should be run. The first time the Vagrant image is started, it will take some time to install all of the required packages.<\/p>\n<p>The number of Chef recipes may be limited, so be sure to use <a href=\"https:\/\/docs.chef.io\/workstation\/berkshelf\/\" rel=\"noopener noreferrer\" target=\"_blank\"> Berkshelf<\/a> to manage your cookbooks or their dependencies. Berkshelf maintains proven and stable recipes downloaded from <a href=\"https:\/\/www.chef.io\/\" rel=\"noopener noreferrer\" target=\"_blank\">OpsCode<\/a>. Big thanks to <a href=\"https:\/\/twitter.com\/scottyfred\" rel=\"noopener noreferrer\" target=\"_blank\">Scott Frederick<\/a> who provided the contribution of Berkshelf support!<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Starting_and_stopping_Cloud_Foundry_components\"><\/span>Starting and stopping Cloud Foundry components<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>There are two main ways to start or stop the Cloud Foundry components. Most operators prefer to use <code style=\"color: black; background-color: #e6e6e6;\">start.sh<\/code> and <code style=\"color: black; background-color: #e6e6e6;\">stop.sh<\/code>, which are bash scripts that launch upstart commands to run the components.<\/p>\n<pre>\r\n$ cd \/vagrant\r\n$ .\/start.sh\r\ncf-ng start\/running\r\n<\/pre>\n<pre>\r\n# Verify  running processes\r\n$ ps ax\r\n11733 ?        S      0:00 \/bin\/bash .\/bin\/file_server\r\n11734 ?        S      0:00 \/bin\/bash .\/bin\/dea_ng\r\n11739 ?        Sl     0:00 ruby spec\/bin\/file_server.rb\r\n11745 ?        S      0:00 \/bin\/bash .\/bin\/dir_server\r\n11750 ?        Sl     0:00 ruby \/home\/vagrant\/.rbenv\/versions\/1.9.3-p392\/bin\/nats-server\r\n11752 ?        Sl     0:01 ruby bin\/dea config\/dea.yml\r\n11759 ?        S      0:00 \/bin\/bash .\/bin\/warden\r\n11766 ?        Sl     0:00 ruby \/home\/vagrant\/.rbenv\/versions\/1.9.3-p392\/bin\/rake dir_server:run\r\n11793 ?        S      0:00 bash \/home\/vagrant\/.rbenv\/plugins\/rbenv-sudo\/bin\/rbenv-sudo bundle exec rake warden:start[config\/test_vm.yml]\r\n11842 ?        S      0:00 \/bin\/bash .\/bin\/health_manager\r\n11852 ?        S      0:00 \/bin\/bash .\/bin\/gorouter\r\n11861 ?        S      0:00 \/bin\/bash .\/bin\/cloud_controller\r\n11865 ?        Sl     0:00 ruby .\/bin\/health_manager\r\n11866 ?        S      0:00 sudo env PATH=\/home\/vagrant\/.rbenv\/shims:\/home\/vagrant\/.rbenv\/bin:\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin bundle exec rake warden:start[config\/test_vm.yml]\r\n11877 ?        S      0:00 sudo .\/bin\/router -c=config\/gorouter.yml\r\n11878 ?        Sl     0:00 ruby \/home\/vagrant\/.rbenv\/versions\/1.9.3\/bin\/rake warden:start[config\/test_vm.yml]\r\n11896 ?        Sl     0:00 .\/bin\/router -c=config\/gorouter.yml\r\n11946 ?        S      0:00 \/bin\/bash .\/bin\/uaa\r\n11951 ?        Sl     0:29 \/usr\/lib\/jvm\/default-java\/bin\/java -classpath \/usr\/share\/maven\/boot\/plexus-classworlds-2.x.jar -Dclassworlds.conf=\/usr\/share\/maven\/bin\/m2.conf -Dmaven.home=\/usr\/share\/maven org\r\n12012 ?        Sl     0:00 go\/bin\/runner -conf config\/dea.yml\r\n12103 ?        Sl     0:02 ruby bin\/cloud_controller -m\r\n<\/pre>\n<p>An alternate method is to use Foreman to declare the processes required to run your application in a single file: <code style=\"color: black; background-color: #e6e6e6;\">Procfile<\/code>. Foreman is a useful Ruby gem that allows you to run several processes with only one command (<code style=\"color: black; background-color: #e6e6e6;\">foreman start<\/code>). Foreman will start and the display the <code style=\"color: black; background-color: #e6e6e6;\">stdout<\/code> and <code style=\"color: black; background-color: #e6e6e6;\">stderr<\/code> of each process\u2014this is useful because you can see all the logs in one terminal with different colors for each process. The scripts below were generated using Foreman (via <code style=\"color: black; background-color: #e6e6e6;\">foreman export<\/code>).<\/p>\n<p>Our Procfile:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nnats: nats-server\r\nwarden: .\/bin\/warden\r\nuaa: .\/bin\/uaa\r\ndir_server: .\/bin\/dir_server\r\nfile_server: .\/bin\/file_server\r\ndea_ng: .\/bin\/dea_ng\r\ngorouter: .\/bin\/gorouter\r\ncc_ng: .\/bin\/cloud_controller\r\nhealth_manager: .\/bin\/health_manager\r\n<\/pre>\n<p>Foreman output (colored):<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-44659\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Custom_config_files\"><\/span>Custom config files<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Vagrant uses the Cloud Foundry source code, downloaded directly from the corresponding GitHub repository for each module (CCNG, Router, NATS, DEA, etc.). The <code style=\"color: black; background-color: #e6e6e6;\">.gitmodules<\/code> file contains configuration details that can be customized or adapted for local installation onto Vagrant. The following are a few examples of different customizations for local Cloud Foundry deployments.<\/p>\n<p>To add logging and increase the verbosity of the logging stream:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nlogging:\r\n  file: \/vagrant\/logs\/cloud_controller.log\r\n  level: debug2\r\n<\/pre>\n<p>To make a database persistent after VM shutdown, configure it in the corresponding <code style=\"color: black; background-color: #e6e6e6;\">custom_config_files\/cloud_controller_ng\/cloud_controller.yml<\/code> file.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ndb:\r\n  database: &quot;sqlite:\/\/\/vagrant\/db\/cloud_controller.db&quot;\r\n<\/pre>\n<p>To set <code style=\"color: black; background-color: #e6e6e6;\">vcap.me<\/code> as a default domain, which is pointed to localhost, describe it in <code style=\"color: black; background-color: #e6e6e6;\">cloud_controller.yml<\/code>:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nsystem_domain_organization: vcap.me\r\nsystem_domain: vcap.me\r\nexternal_domain:\r\n  - api2.vcap.me\r\napp_domains:\r\n  - vcap.me\r\n<\/pre>\n<p>There are more examples and detailed changes recommended to the <a href=\"https:\/\/github.com\/Altoros\/cf-vagrant-installer\/tree\/master\/custom_config_files\" rel=\"noopener noreferrer\" target=\"_blank\">configuration files<\/a> in Vagrant Installer&#8217;s documentation.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Building_a_virtual_machine\"><\/span>Building a virtual machine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>We won\u2019t duplicate the instructions to build the Cloud Foundry virtual machine in this blog post. Just follow the <a href=\"https:\/\/github.com\/Altoros\/cf-vagrant-installer\/blob\/master\/README.md\" rel=\"noopener noreferrer\" target=\"_blank\">step-by-step instructions<\/a> provided and you\u2019ll have a Cloud Foundry v2 instance in a matter of minutes.<\/p>\n<p>Cloud Foundry on Vagrant is a great tool for learning about the inner workings of the platform and its various components. Feel free to leave us feedback on your experience deploying Cloud Foundry on Vagrant and be sure to check back frequently for updates and improvements on the <a href=\"https:\/\/github.com\/Altoros\/cf-vagrant-installer\/\" rel=\"noopener noreferrer\" target=\"_blank\">GitHub project<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_video\"><\/span>Related video<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><small>In this meetup session, Gast\u00f3n Ramos and Alan Mor\u00e1n of Altoros Argentina deliver an overview of Cloud Foundry and present CF Vagrant Installer to the audience.<\/small><\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/3P0_9r780n0\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/how-to-deploy-cloud-foundry-v2-to-aws-by-using-vagrant\/\" rel=\"noopener noreferrer\" target=\"_blank\">How to Deploy Cloud Foundry v2 to AWS by Using Vagrant<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-vagrant-installer-now-supports-custom-buildpacks\/\" rel=\"noopener noreferrer\" target=\"_blank\">Cloud Foundry Vagrant Installer Now Supports Custom Buildpacks<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr\/>\n<p><center><small>The tutorial was written by Gast\u00f3n Ramos, edited by <a href=\"https:\/\/www.altoros.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why local deployment?<\/p>\n<p>By default, Cloud Foundry is a highly distributed multi-tenant platform that is usually deployed at scale (>40 nodes) on top of existing virtualized infrastructure (e.g., VMware&#8217;s vSphere or vCloud, Amazon AWS, or OpenStack). For a novice Cloud Foundry developer, a full scale PaaS deployment isn\u2019t always an affordable [&#8230;]<\/p>\n","protected":false},"author":65,"featured_media":44659,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[873,206],"class_list":["post-44658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-native","tag-oss-cloud-foundry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Install Cloud Foundry Locally by Using Vagrant | Altoros<\/title>\n<meta name=\"description\" content=\"Find the detailed instructions and examples to deploy a simple Ruby \/ Sinatra web app on a local Cloud Foundry instance in under 30 mins.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Install Cloud Foundry Locally by Using Vagrant | Altoros\" \/>\n<meta property=\"og:description\" content=\"Why local deployment? By default, Cloud Foundry is a highly distributed multi-tenant platform that is usually deployed at scale (&gt;40 nodes) on top of existing virtualized infrastructure (e.g., VMware&#8217;s vSphere or vCloud, Amazon AWS, or OpenStack). For a novice Cloud Foundry developer, a full scale PaaS deployment isn\u2019t always an affordable [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2013-06-28T14:55:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-08T13:57:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"910\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Gast\u00f3n Ramos\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gast\u00f3n Ramos\" \/>\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\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/\",\"name\":\"How to Install Cloud Foundry Locally by Using Vagrant | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png\",\"datePublished\":\"2013-06-28T14:55:54+00:00\",\"dateModified\":\"2019-07-08T13:57:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3bfa3cc42526eb3e6a83df9d634e43f7\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png\",\"width\":1440,\"height\":910},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Install Cloud Foundry Locally by Using Vagrant\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3bfa3cc42526eb3e6a83df9d634e43f7\",\"name\":\"Gast\u00f3n Ramos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/85463eb4f2e4baa47ff7b07e41111397f7bb0edb3dbeb78985e2e7a2ff07a0ac?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/85463eb4f2e4baa47ff7b07e41111397f7bb0edb3dbeb78985e2e7a2ff07a0ac?s=96&d=mm&r=g\",\"caption\":\"Gast\u00f3n Ramos\"},\"description\":\"Gaston Ramos is a software engineer at Altoros. He specializes in Ruby on Rails as well as the Rack, Cuba, and Sinatra frameworks. Gaston started using Ruby in 2005. Since then, he enjoys a simple and clear style for writing software.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/gaston-ramos\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Install Cloud Foundry Locally by Using Vagrant | Altoros","description":"Find the detailed instructions and examples to deploy a simple Ruby \/ Sinatra web app on a local Cloud Foundry instance in under 30 mins.","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:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/","og_locale":"en_US","og_type":"article","og_title":"How to Install Cloud Foundry Locally by Using Vagrant | Altoros","og_description":"Why local deployment? By default, Cloud Foundry is a highly distributed multi-tenant platform that is usually deployed at scale (>40 nodes) on top of existing virtualized infrastructure (e.g., VMware&#8217;s vSphere or vCloud, Amazon AWS, or OpenStack). For a novice Cloud Foundry developer, a full scale PaaS deployment isn\u2019t always an affordable [...]","og_url":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/","og_site_name":"Altoros","article_published_time":"2013-06-28T14:55:54+00:00","article_modified_time":"2019-07-08T13:57:36+00:00","og_image":[{"width":1440,"height":910,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png","type":"image\/png"}],"author":"Gast\u00f3n Ramos","twitter_misc":{"Written by":"Gast\u00f3n Ramos","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/","url":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/","name":"How to Install Cloud Foundry Locally by Using Vagrant | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png","datePublished":"2013-06-28T14:55:54+00:00","dateModified":"2019-07-08T13:57:36+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3bfa3cc42526eb3e6a83df9d634e43f7"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/06\/vagrant-installer-cloud-foundry-v2-output.png","width":1440,"height":910},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/how-to-install-cloud-foundry-locally-by-using-vagrant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Install Cloud Foundry Locally by Using Vagrant"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3bfa3cc42526eb3e6a83df9d634e43f7","name":"Gast\u00f3n Ramos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/85463eb4f2e4baa47ff7b07e41111397f7bb0edb3dbeb78985e2e7a2ff07a0ac?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/85463eb4f2e4baa47ff7b07e41111397f7bb0edb3dbeb78985e2e7a2ff07a0ac?s=96&d=mm&r=g","caption":"Gast\u00f3n Ramos"},"description":"Gaston Ramos is a software engineer at Altoros. He specializes in Ruby on Rails as well as the Rack, Cuba, and Sinatra frameworks. Gaston started using Ruby in 2005. Since then, he enjoys a simple and clear style for writing software.","url":"https:\/\/www.altoros.com\/blog\/author\/gaston-ramos\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/44658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=44658"}],"version-history":[{"count":39,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/44658\/revisions"}],"predecessor-version":[{"id":44767,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/44658\/revisions\/44767"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/44659"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=44658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=44658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=44658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}