1

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

我终于开始使用 BOSH lite,但我只真正了解如何部署CloudFoundry到 BOSH lite 环境。

但是,对于我需要在我的 BOSH lite 版本/清单中添加什么/这里有什么,我有点迷茫?

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

4

1 回答 1

6

高级工作流程是:

  • 在您的工作站上,您有一个 BOSH 版本的存储库
  • 你在某个地方有一个 BOSH 导演
  • 你在你的版本上工作,构建它,并将它上传给导演
  • 您创建/修改引用已上传版本的部署清单
  • 您使用清单运行bosh deploy,以便 Director 可以在“云”中创建“虚拟机”,并将您的版本中的软件位放在清单中描述的拓扑中的这些虚拟机上(并运行软件)

您需要告诉 Director 的三件事是干细胞、发布和部署清单。到目前为止,您已经知道什么是发布,它基本上是所有可以运行的软件。

stemcell 是所有部署的 VM 通用的基本操作系统映像(您可以在部署中拥有不同的 stemcell,但最常见的是让它们都相同);这是一个特殊的图像,其中预置了一些东西以方便使用 BOSH。首先,它有一个 BOSH 代理,这是 Director 与 VM 通信的方式,告诉它​​“下载这个包”、“下载这个作业”、“启动这个进程”等。

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

  • 您的name部署。
  • releases作为此部署的一部分,您将部署的 以及特定版本的列表。
  • networks要与已部署的 VM 关联的对象的描述。例如,如果您使用 AWS 等 IaaS,您可能会部署到 VPC,您可以在此处指定一些子网 ID。
  • 的描述jobs,基本上是要部署的几个同构集群的列表,以及每个集群需要多少虚拟机/节点实例。假设您的版本由frontend服务、backend服务和database服务组成。然后您可能想要部署一个frontend只运行该frontend作业的集群,并且有 5 个实例。您可能需要 10 个backend集群实例,并且可能只需要 1 个database. 清单中的每个job都可以引用jobs来自多个版本的多个(是的,这两个东西被命名为同一个东西是一个不幸的历史事故)。
  • 配置properties,例如您的工作可能需要配置一堆参数和凭据,并且任何需要全局共享的属性都可以放在该properties部分中。

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

  • BOSH 董事
  • Garden,一个 Linux 容器管理器(如果您听说过 Docker,Garden 是类似的,但存在的时间更长,更适合生产用例)。Garden 在这里就像“云”一样,当 Director 需要创建一个 VM 时,它会委托给它的“Cloud Provider Interface”,而后者只是要求 Garden 创建一个容器。

BOSH-Lite 的优势在于,在笔记本电脑上的虚拟机中启动容器比在 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 问题邮件列表,这可能更适合在使清单正常工作方面获得来回帮助。

于 2015-11-27T19:33:21.727 回答