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

Bre*_*dly 1 cloud-foundry bosh-deployer

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

我终于被键入了使用BOSH lite,但我只是真正看到如何部署CloudFoundry到BOSH lite环境.

但是,我有点迷失了我需要放入我的BOSH lite版本/清单/这里有什么?

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

Ami*_*pta 6

高级工作流程是:

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

您需要告诉Director的三个主要事项是干细胞,发布和部署清单.到目前为止,您已经了解了发行版的内容,它基本上是所有运行的软件.

stemcell是基本操作系统映像,对于所有已部署的VM都是通用的(您可以在部署中使用不同的stemcells,但最常见的是让它们全部相同); 这是一个特殊的图像,有一些预先烘烤的东西,以方便与BOSH合作.它主要有一个BOSH代理,这就是Director与VM通信的方式,告诉它​​"下载这个包","下载这个工作","启动这个过程"等.

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

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

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

  • BOSH主任
  • 花园,一个Linux容器管理器(如果你听说过Docker,花园很相似,但已经存在时间更长,更适合生产用例).Garden在这里就像"云"一样,当Director需要创建一个VM时,它会委托给它的"云提供者接口",而后者又要求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
Run Code Online (Sandbox Code Playgroud)

迭代:

$ # modify the code in your repo
$ bosh create release --force && bosh upload release
$ # modify your manifest if necessary
$ bosh -d manifest.yml deploy
Run Code Online (Sandbox Code Playgroud)

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

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

如果您生成清单并且遇到问题,您可以转向GitHub问题邮件列表,这可能更适合于让您的清单正常工作的来回帮助.