{"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9","forks_url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/forks","commits_url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/commits","id":"e205063847e853e87a7d9c1b4bf7aaa9","node_id":"MDQ6R2lzdGUyMDUwNjM4NDdlODUzZTg3YTdkOWMxYjRiZjdhYWE5","git_pull_url":"https://gist.github.com/e205063847e853e87a7d9c1b4bf7aaa9.git","git_push_url":"https://gist.github.com/e205063847e853e87a7d9c1b4bf7aaa9.git","html_url":"https://gist.github.com/michaellihs/e205063847e853e87a7d9c1b4bf7aaa9","files":{"learning-bosh.md":{"filename":"learning-bosh.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/michaellihs/e205063847e853e87a7d9c1b4bf7aaa9/raw/f566ea73ef011745205137a394299f46f7abdc8f/learning-bosh.md","size":2829,"truncated":false,"content":"Learning BOSH\n=============\n\nBasic Concepts of BOSH\n----------------------\n\n### What is a Stemcell?\n\nA *Stemcell* is a OS image wrapped with IaaS specific packaging. Amongst other tools, it always contains a [BOSH Agent](http://bosh.io/docs/bosh-components.html#agent) (like a Chef client) running on the VM to which the stemcell is deployed to and listens for instructions from the BOSH Director.\n\nStemcells do **not** contain\n\n* any specific information concerning the software that is later on running on them\n* any credentials / sensitive information that would make them unable to be shared with other BOSH users\n\n### What is a Release?\n\nA release is a **versioned** collection of\n\n* configuration properties\n* configuration templates\n* start up scripts\n* source code\n* binary artifacts\n* ...\n\nto build and deploy software in a reproducible way.\n\n### What is a Deployment?\n\nA [Deployment](http://bosh.io/docs/deployment.html) is\n\n* a collection of VMs\n* built from a [Stemcell](http://bosh.io/docs/stemcell.html)\n* with [Releases](http://bosh.io/docs/release.html) deployed onto them\n\nDescription of the deployment process:\n\n1. describe which operating system image to use (the stemcell)\n1. describe which software needs to be deployed on the VMs created with these images\n1. describe how to keep track of persisted data (e.g. during an update process)\n1. describe how to deploy images to an IaaS\n\nBOSH builds upon previously introduced primitives (stemcells and releases) by providing a way to state an explicit combination of stemcells, releases, and operator-specified properties in a human readable file. This file is called a *deployment manifest*.\n\nDeployment manifests are uploaded to the BOSH [Director](http://bosh.io/docs/bosh-components.html#director). The Director allocates resources and stores them. These resources form a Deployment. A deployment consists of allocated VMs and persistent storage. As deployment manifests change, VMs are updated and persistent disks are re-attached to the newer VMs.\n \nThe deployment manifest describes the deployment in an IaaS-agnostic way, which means it abstracts the differences between different IaaSes.\n\nPreperational Tasks\n-------------------\n\n### Install BOSH-Lite\n\nWhen connecting to the BOSH-Lite instance provided by the *Learning BOSH* tutorial, the credentials will be `admin/admin`\n\n    $ vagrant init cloudfoundry/bosh-lite\n    $ vagrant up --provider=virtualbox\n    Bringing machine 'default' up with 'virtualbox' provider...\n\n### Install BOSH CLI\n\n    $ gem install bosh_cli\n    $ bosh target 192.168.50.4\n\n\n\nFurther Resources\n=================\n\n* [BOSH Website](http://bosh.io)\n* [Learning BOSH Tutorial](http://mariash.github.io/learn-bosh)\n* [Advanced Troubleshooting with the BOSH CLI](https://docs.pivotal.io/pivotalcf/customizing/trouble-advanced.html)","encoding":"utf-8"}},"public":true,"created_at":"2016-04-06T20:00:29Z","updated_at":"2016-04-06T21:02:40Z","description":"Some Snippets and Resources for BOSH","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/comments","owner":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[],"history":[{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"86c36a95d318152172485940ea038e66569ed614","committed_at":"2016-04-06T21:02:40Z","change_status":{"total":55,"additions":46,"deletions":9},"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/86c36a95d318152172485940ea038e66569ed614"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"3678f821deaa994494c99988ca66f31d55e7613f","committed_at":"2016-04-06T20:37:25Z","change_status":{"total":11,"additions":10,"deletions":1},"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/3678f821deaa994494c99988ca66f31d55e7613f"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"d2c72077b95cf2197e9b4146b53cc844711184d9","committed_at":"2016-04-06T20:05:35Z","change_status":{"total":2,"additions":2,"deletions":0},"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/d2c72077b95cf2197e9b4146b53cc844711184d9"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"2baf06e85c5d2ce759a89ea0b1582b02bfc877ba","committed_at":"2016-04-06T20:04:37Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/2baf06e85c5d2ce759a89ea0b1582b02bfc877ba"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"1695f7380d471300794e2c9c186ebcceebc6d5f9","committed_at":"2016-04-06T20:04:26Z","change_status":{"total":9,"additions":7,"deletions":2},"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/1695f7380d471300794e2c9c186ebcceebc6d5f9"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"6d2875aa6ae9e88ddf38a7d8cfce3c5cadd81b0e","committed_at":"2016-04-06T20:02:50Z","change_status":{"total":10,"additions":9,"deletions":1},"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/6d2875aa6ae9e88ddf38a7d8cfce3c5cadd81b0e"},{"user":{"login":"michaellihs","id":575011,"node_id":"MDQ6VXNlcjU3NTAxMQ==","avatar_url":"https://avatars.githubusercontent.com/u/575011?v=4","gravatar_id":"","url":"https://api.github.com/users/michaellihs","html_url":"https://github.com/michaellihs","followers_url":"https://api.github.com/users/michaellihs/followers","following_url":"https://api.github.com/users/michaellihs/following{/other_user}","gists_url":"https://api.github.com/users/michaellihs/gists{/gist_id}","starred_url":"https://api.github.com/users/michaellihs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaellihs/subscriptions","organizations_url":"https://api.github.com/users/michaellihs/orgs","repos_url":"https://api.github.com/users/michaellihs/repos","events_url":"https://api.github.com/users/michaellihs/events{/privacy}","received_events_url":"https://api.github.com/users/michaellihs/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"cd08fd633b8bb894f547ca20619a54c74cc8b393","committed_at":"2016-04-06T20:00:29Z","change_status":{"total":11,"additions":11,"deletions":0},"url":"https://api.github.com/gists/e205063847e853e87a7d9c1b4bf7aaa9/cd08fd633b8bb894f547ca20619a54c74cc8b393"}],"truncated":false}