如何命名 BOSH 发行版 tarball?
How to name a BOSH release tarball?
使用:bosh create release --final --with-tarball --version <release version>
我收到一个名为 <release 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 主管 运行ning,你可以给它一个版本(或多个),以及一个描述你希望分布式部署看起来如何的清单(或多个清单),而 director 将促进一切:部署、升级、故障恢复等。
要创建您自己的 BOSH 版本,您的所有位都必须位于以特殊方式构建的 git 存储库中。给定这样一个存储库,您可以 运行 bosh create release
从存储库的根目录生成工件,然后在您真正想要部署时上传到 Director。
--force
:如果您的 git 存储库不干净,通常 BOSH CLI 会抱怨,即它认为您将要构建一个带有一些无意更改的版本。使用此标志跳过此检查。请注意,当您将版本上传到 Director 时,您可以说 bosh releases
,它会告诉您所有名称、版本和上传版本的 git 提交 SHA。如果你有一个关于 Director 的版本,这可能很好,你不知道它到底来自哪里,但你至少可以看到 SHA,这样你就可以在那个 SHA 上检查回购。如果你从一个脏的 repo 构建版本,你会在 bosh releases
输出中的 SHA 旁边看到一个小的 +
,所以现在你真的不知道该版本是如何制作的。
--with-tarball
:当您执行 bosh create release
时创建的主要工件是一个 YAML 文件,它描述了构成您的版本的所有包和作业。当您执行 bosh upload release
时,它会确定 director 上已经存在这些作业和包中的哪些,将其余的放入 tarball 中,然后将其上传到 Director。如果您在 create release
期间传递 --with-tarball
标志,它会将所有内容放入压缩包中。这仅在您希望将 tarball 用于某些目的而不是立即上传到 Director 时才有用,即如果您想将 tarball 放在某个共享位置以便其他人(或者 CI 管道中的其他步骤)无需重新 运行 bosh create release
或什至检查回购就可以使用 tarball。
--final
:上面描述的 YAML 文件通常是您不会费心签入的。但是,如果您构建 "final" 版本,它将把 YAML 文件放在不同的目录中您 做 想要签入的内容。创建最终版本时,它将确保您的 blob 也与 "final blobstore" 同步,以便有人签出您的回购能够确定地构建相同的最终版本,因为他们还将从最终的 blobstore 中获取 "official" blob。最终发布版本、blob 等应该是全局唯一的,因此使用此版本的任何人在使用最终版本时都会获得一些确定性。 "Final version" 的意思可能类似于 "major version"。这与 "Dev versions" 形成对比,其中两个开发人员都可以使用称为版本 18+dev.20
的东西并且实际上具有完全不同的位。
--name
:这不是生成文件的名称,它是版本本身的名称。 IE。它是上面提到的 YAML 文件中的一段元数据。如果您上传发布并执行 bosh releases
,您将看到此名称。当您编写部署清单以实际部署发布中的内容时,您将通过此名称引用它。
--version
:与name类似,这是release的版本。如果您不指定自己的版本,BOSH 将根据之前的版本,加上您是否添加 --final
标志来为您确定版本。如果以前的版本是 18+dev.20
那么使用 --final
新版本将是 19
没有,新版本将是 18+dev.21
.
bosh create release
命令不允许您为生成的压缩包选择位置或名称。如果这是您需要的功能,您可以提出一个问题 here。但是,在大多数情况下,如果您只是为了将其上传到 Director 而构建版本,则不需要该文件,bosh upload release
会上传正确的内容。事实上,在这种情况下您甚至不需要传递 --with-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`
使用:bosh create release --final --with-tarball --version <release version>
我收到一个名为 <release 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 主管 运行ning,你可以给它一个版本(或多个),以及一个描述你希望分布式部署看起来如何的清单(或多个清单),而 director 将促进一切:部署、升级、故障恢复等。
要创建您自己的 BOSH 版本,您的所有位都必须位于以特殊方式构建的 git 存储库中。给定这样一个存储库,您可以 运行 bosh create release
从存储库的根目录生成工件,然后在您真正想要部署时上传到 Director。
--force
:如果您的 git 存储库不干净,通常 BOSH CLI 会抱怨,即它认为您将要构建一个带有一些无意更改的版本。使用此标志跳过此检查。请注意,当您将版本上传到 Director 时,您可以说bosh releases
,它会告诉您所有名称、版本和上传版本的 git 提交 SHA。如果你有一个关于 Director 的版本,这可能很好,你不知道它到底来自哪里,但你至少可以看到 SHA,这样你就可以在那个 SHA 上检查回购。如果你从一个脏的 repo 构建版本,你会在bosh releases
输出中的 SHA 旁边看到一个小的+
,所以现在你真的不知道该版本是如何制作的。--with-tarball
:当您执行bosh create release
时创建的主要工件是一个 YAML 文件,它描述了构成您的版本的所有包和作业。当您执行bosh upload release
时,它会确定 director 上已经存在这些作业和包中的哪些,将其余的放入 tarball 中,然后将其上传到 Director。如果您在create release
期间传递--with-tarball
标志,它会将所有内容放入压缩包中。这仅在您希望将 tarball 用于某些目的而不是立即上传到 Director 时才有用,即如果您想将 tarball 放在某个共享位置以便其他人(或者 CI 管道中的其他步骤)无需重新 运行bosh create release
或什至检查回购就可以使用 tarball。--final
:上面描述的 YAML 文件通常是您不会费心签入的。但是,如果您构建 "final" 版本,它将把 YAML 文件放在不同的目录中您 做 想要签入的内容。创建最终版本时,它将确保您的 blob 也与 "final blobstore" 同步,以便有人签出您的回购能够确定地构建相同的最终版本,因为他们还将从最终的 blobstore 中获取 "official" blob。最终发布版本、blob 等应该是全局唯一的,因此使用此版本的任何人在使用最终版本时都会获得一些确定性。 "Final version" 的意思可能类似于 "major version"。这与 "Dev versions" 形成对比,其中两个开发人员都可以使用称为版本18+dev.20
的东西并且实际上具有完全不同的位。--name
:这不是生成文件的名称,它是版本本身的名称。 IE。它是上面提到的 YAML 文件中的一段元数据。如果您上传发布并执行bosh releases
,您将看到此名称。当您编写部署清单以实际部署发布中的内容时,您将通过此名称引用它。--version
:与name类似,这是release的版本。如果您不指定自己的版本,BOSH 将根据之前的版本,加上您是否添加--final
标志来为您确定版本。如果以前的版本是18+dev.20
那么使用--final
新版本将是19
没有,新版本将是18+dev.21
.
bosh create release
命令不允许您为生成的压缩包选择位置或名称。如果这是您需要的功能,您可以提出一个问题 here。但是,在大多数情况下,如果您只是为了将其上传到 Director 而构建版本,则不需要该文件,bosh upload release
会上传正确的内容。事实上,在这种情况下您甚至不需要传递 --with-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`