如何使用BOSH lite作为开发人员?

时间:2015-11-27 16:21:21

标签: cloudfoundry bosh-deployer

我的任务是更新一些BOSH脚本/工作/你有什么,开发它们让我花了很多时间。

我最终被键入了使用BOSH lite,但我只是真正了解如何将CloudFoundry部署到BOSH lite环境。

但是,我对于我需要放入BOSH lite版本/清单/这里的内容有点遗失?

有人可以用BOSH lite描述他们的工作流程,以及我需要在发布清单中放置哪些类型信息以部署我的版本并在BOSH lite中测试我的工作和差事?我一直很难在这个领域找到好的资源,而且只是BOSH。

1 个答案:

答案 0 :(得分:6)

高级工作流程是:

  • 在您的工作站上,您有一个用于BOSH发布的回购
  • 你在某个地方有一位BOSH导演
  • 您处理发布,构建并上传到导演
  • 您创建/修改引用上传版本的部署清单
  • 您使用您的清单运行bosh deploy,以便Director可以创建" VMs"在"云"并将您的版本中的软件位放在那些虚拟机上(并运行软件),并在清单中描述的拓扑中

您需要告诉Director的三个主要事项是stemcell(s),release(s)和deployment manifest。到目前为止,您已经了解了发行版的内容,它基本上是所有运行的软件。

干细胞是所有已部署的VM共有的基本操作系统映像(您可以在部署中使用不同的干细胞,但最常见的是让它们全部相同);这是一个特殊的图像,有一些预先烘烤的东西,以方便与BOSH合作。首先,它有一个BOSH代理,这就是Director与VM通信的方式告诉它"下载这个软件包","下载这个工作","启动这个过程"开始这个过程&#34 34;等等。

部署清单是一个YAML文件,您可以在其中指定以下内容:

  • 部署的name
  • 您将在此部署中部署的releases列表以及特定版本。
  • 要与已部署的VM关联的networks的说明。例如,如果您正在使用像AWS这样的IaaS,那么您可能正在部署到VPC中,您可以在此处指定一些子网ID。
  • jobs的描述,基本上是要部署的几个同类群集的列表,以及每个群集需要多少个VM /节点实例。假设您的版本包含frontend服务,backend服务和database服务。然后,您可能希望部署仅运行frontend作业的frontend群集,并且有5个实例。您可能需要10个backend群集实例,可能只需要database的1个实例。清单中的每个job都可以引用多个版本中的多个jobs(是的,这是一个不幸的历史事故,这两件事被命名为同一件事。)
  • 配置properties,例如您的工作可能需要配置一堆参数和凭据,并且需要全局共享的任何属性都可以放在properties部分中。

BOSH-Lite是一个Vagrant VM,基本上运行着两件你关心的事情:

  • BOSH主任
  • Garden,一个Linux容器管理器(如果您已经听说过Docker,Garden类似,但已经存在时间更长,更适合生产用例)。花园的行为就像云和#34;在这里,当Director需要创建一个VM时,它会委托给它的“云提供商接口”#34;这反过来又要求Garden创建一个容器。

BOSH-Lite的优势在于,在笔记本电脑上的VM中启动容器比在AWS,vSphere,OpenStack或其他真实数据中心启动真实虚拟机要便宜得多,速度更快。

首次工作流程(启动并定位BOSH-Lite后):

$ git clone YOUR_RELEASE_REPO
$ cd YOUR_RELEASE_REPO
$ bosh create release && bosh upload release
$ # create manifest, call it manifest.yml
$ bosh -d manifest.yml deploy

<强>迭代

$ # modify the code in your repo
$ bosh create release --force && bosh upload release
$ # modify your manifest if necessary
$ bosh -d manifest.yml deploy

如果您不熟悉BOSH清单,那么从头开始创建清单可能会很困难。您可能想要考虑的一件事是遵循您为Cloud Foundry创建BOSH-Lite清单所发现的说明。然后修改它以适合您的项目。

以下是有关部署清单架构的完整文档:https://bosh.io/docs/deployment-manifest.html

如果您生成了清单并遇到问题,可以转向GitHub issuesthe mailing list,这可能更适合在清单工作方面提供来回帮助。