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



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

我终于学会了使用BOSH lite,但我只真正了解了如何将CloudFoundry部署到BOSH lite环境中。

然而,我有点不知所措,我需要在我的BOSH lite发布/清单/这里有什么?

有人能描述他们在BOSH lite中的工作流程吗?我需要在发布清单中输入哪些类型的信息来部署我的发布并在BOSH lite中测试我的工作和跑腿?我一直很难在这个领域找到好的资源,尤其是BOSH。

高级工作流是:

  • 在您的工作站上,您有一个BOSH版本的回购
  • 你在某个地方有BOSH总监
  • 你制作你的发行版,构建它,然后上传给导演
  • 创建/修改引用上载版本的部署清单
  • 使用清单运行bosh deploy,这样Director就可以在"云中"创建"虚拟机",并在清单中描述的拓扑结构中将您发布的软件放在这些虚拟机上(并运行软件)

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

干细胞是所有部署的虚拟机通用的基本操作系统映像(在一个部署中可以有不同的干细胞,但最常见的是它们都相同);这是一个特殊的图像,其中预先烘焙了一些东西,以便于与BOSH合作。主要是,它有一个BOSH代理,这就是Director与VM通信的方式,告诉它"下载此包"、"下载此作业"、"启动此过程"等。

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

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

BOSH Lite是一个Vagrant虚拟机,它本质上运行两件你关心的事情:

  • BOSH董事
  • Garden,一个Linux容器管理器(如果你听说过Docker,Garden与之类似,但存在时间更长,更适合生产用例)。Garden在这里的行为就像"云",当Director需要创建一个VM时,它会委托给它的"云提供商接口",该接口反过来只要求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问题或邮件列表,这可能更适合于来回帮助你的清单工作。

最新更新