Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cloud foundry 如何命名波什释放柏油球?_Cloud Foundry_Bosh Deployer - Fatal编程技术网

Cloud foundry 如何命名波什释放柏油球?

Cloud foundry 如何命名波什释放柏油球?,cloud-foundry,bosh-deployer,Cloud Foundry,Bosh Deployer,使用:bosh create release--final--with tarball--version 我得到一个名为.tgz的包 但是,它的名称并不是我想要的,而且由于文档中缺少命令行的使用,并且我没有编写命令来自动化它,如果有人能够准确地区分这些标志和命令为我做了什么,那将是很有帮助的 在我等待的时候再次谷歌搜索,以防我错过了什么 $ bosh create release --help Usage: bosh [options] --force

使用:
bosh create release--final--with tarball--version

我得到一个名为
.tgz
的包

但是,它的名称并不是我想要的,而且由于文档中缺少命令行的使用,并且我没有编写命令来自动化它,如果有人能够准确地区分这些标志和命令为我做了什么,那将是很有帮助的

在我等待的时候再次谷歌搜索,以防我错过了什么

$ bosh create release --help
Usage: bosh [options]
        --force                      bypass git dirty state check
        --final                      create final release
        --with-tarball               create release tarball
        --dry-run                    stop before writing release manifest
        --name NAME                  specify a custom release name
        --version VERSION            specify a custom version number (ex: 1.0.0 or 1.0-beta.2+dev.10)
BOSH版本是一种打包软件(源代码和已编译的二进制文件)的方法,然后以分布式方式部署并由BOSH控制器管理,即,一旦您有一个BOSH控制器运行,您可以给它一个版本(或多个版本),以及一个描述您希望分布式部署的清单(或多个清单)并且主管将促进一切:部署、升级、故障恢复等

要创建您自己的BOSH版本,您所有的BIT都必须位于一个以特殊方式构造的git存储库中。有了这样一个repo,您可以从存储库的根运行
BOSH create release
,生成工件,然后在您真正想要部署时上载到控制器

  • --force
    :通常情况下,如果您的git repo不干净,BOSH CLI会抱怨,即它认为您将要构建一个包含一些无意更改的版本。使用此标志跳过此检查。请注意,当您将一个版本上载到Director时,您可以说
    BOSH releases
    ,它会告诉您所有的名称、版本和名称git提交上传版本的SHA。如果你有一个关于Director的版本,这会很好,你不知道它从哪里来,但你至少可以看到SHA,这样你就可以在SHA签出回购。如果你从脏回购中构建发布,你会在
    bosh发布
    输出中的SHA旁边看到一个小的
    +
    t、 所以现在你真的不知道是怎么发布的
  • --with tarball
    :在执行
    bosh创建发布时创建的主要工件是一个YAML文件,该文件描述了构成发布的所有包和作业。在执行
    bosh上载发布时,它将确定这些作业和包中的哪些已经存在于控制器上,将其余的放在tarball中,然后将其上载到导演。如果您在
    创建发布
    期间传递
    --with tarball
    标志,它将把所有内容都放入tarball。这仅在您希望该tarball用于某些目的而不是立即上载到导演时才有用,即,如果您希望将tarball放置在某个共享位置,以便其他人(或者CI管道中的其他步骤)可以使用tarball,而无需重新运行
    bosh create release
    ,甚至无需查看回购协议
  • --final
    :上面描述的YAML文件通常是您不必费心签入的文件。但是,如果您构建“final”版本,它会将YAML文件放在您希望签入的其他目录中。创建最终版本时,它会确保您的Blob也与“final blobstore”同步,这样查看您的回购协议的人将能够决定性地构建相同的最终版本,因为他们也将获得“官方”来自最终blobstore的Blob。最终版本、Blob等意味着全局唯一,因此使用此版本的任何人在使用最终版本时都会获得确定性。“最终版本”的意思可能类似于“主要版本”。这与“开发版本”相反两个开发人员可能都在使用一种叫做version
    18+dev.20的东西,并且实际上拥有完全不同的位
  • --name
    :这不是生成文件的名称,而是版本本身的名称。也就是说,它是上面提到的YAML文件中的一段元数据。如果上载版本并执行
    bosh版本
    ,您将看到此名称。当您编写部署清单以实际部署版本中的内容时,您可以我会用这个名字来指它
  • --version
    :与name类似,这是发行版的版本。如果您没有指定自己的版本,BOSH将根据以前的版本为您确定版本,以及您是否添加了
    --final
    标志。如果以前的版本是
    18+dev.20
    ,则使用
    --final
    新版本ion将是
    19
    ,如果没有,新版本将是
    18+dev.21
bosh create release
命令不允许您为生成的tarball选择位置或名称。如果这是您需要的功能,您可以打开一个问题。但是,在大多数用例中,如果您只是为了将发布上载到控制器而构建发布,您不需要该文件,
bosh upload release
将上载该文件没错。事实上,在这种情况下,你甚至不需要用tarball传递
——另一方面,如果你需要知道tarball在哪里,因为你要将它上传到某个共享位置,你可以这样编写脚本:

CF_RELEASE_OUT="${TMPDIR}/create-release.out"
bosh -n create release --with-tarball --version $VERSION | tee -a $CF_RELEASE_OUT
TARBALL=`grep -a "Release tarball" $CF_RELEASE_OUT | cut -d " " -f4`