Как назвать тарболл релиза BOSH?
С помощью: bosh create release --final --with-tarball --version <release version>
Я получаю посылку с именем <release version>.tgz
,
Тем не менее, он не назван так, как я хочу, и поскольку в документации не используется командная строка, и я не написал команду для автоматизации этого, было бы полезно, если бы кто-то мог выбрать именно то, что эти флаги и команды сделай для меня.
Погуглил снова, пока я жду на всякий случай, если что-то пропустил!
1 ответ
$ 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, все ваши биты должны находиться в репозитории git, который структурирован особым образом. Учитывая такой репо, вы можете запустить bosh create release
из корня репозитория для создания артефакта, который вы затем загружаете в Director, когда вы действительно хотите развернуть.
--force
: Обычно BOSH CLI будет жаловаться, если ваш git-репозиторий грязный, то есть он думает, что вы собираетесь создать релиз с некоторыми непреднамеренными изменениями. Используйте этот флаг, чтобы пропустить эту проверку. Обратите внимание, что когда вы загрузили релиз для директора, вы можете сказать,bosh releases
и он сообщит вам все имена, версии и git commit SHA загруженных выпусков. Это может быть хорошо, если у вас есть релиз на директора, вы точно не знаете, откуда он взялся, но вы можете хотя бы увидеть SHA, чтобы вы могли проверить репо на этом SHA. Если вы создали релиз из грязного репо, вы увидите маленький+
рядом с SHA вbosh releases
выходной, так что теперь вы действительно не знаете, как этот релиз был сделан.--with-tarball
: Основной артефакт, созданный приbosh create release
YAML-файл, описывающий все пакеты и задания, составляющие ваш выпуск Когда вы делаетеbosh upload release
, он определит, какие из этих заданий и пакетов уже существуют на директоре, поместит остальные в tar-архив и загрузит его директору. Если вы передадите--with-tarball
флаг во времяcreate release
, он поместит все в тарбол. Это полезно только в том случае, если вы хотите использовать этот tar-архив для какой-либо цели, отличной от немедленной загрузки в Director, т.е. если вы хотите поместить tar-архив в какое-то общее местоположение, чтобы другие люди (или, возможно, другие шаги в конвейере CI) могли использовать tar-архив без необходимости повторного запускаbosh create release
или даже проверить репо по этому вопросу.--final
: Описанный выше файл YAML, как правило, не требует регистрации. Однако, если вы создаете "финальную" версию, он помещает файл YAML в другую директорию, в которую вы хотите выполнить регистрацию. При создании финальной версии. релиз, он обеспечит синхронизацию ваших BLOB-объектов с "конечным хранилищем BLOB-объектов", так что кто-то, проверяющий ваше хранилище, сможет детально определить тот же окончательный выпуск, потому что он также получит "официальные" BLOB-объекты из окончательного хранилища BLOB-объектов., Финальные версии релизов, BLOB-объекты и т. Д. Должны быть уникальными во всем мире, поэтому каждый, кто использует этот релиз, получает что-то детерминированное, когда использует финальную версию релиза. "Финальная версия" означает что-то вроде "основной версии". Это в отличие от "Dev версии", где два разработчика могут работать с чем-то под названием версия18+dev.20
и на самом деле имеют совершенно разные биты.--name
: Это не имя сгенерированного файла, это имя самого релиза. Т.е. это часть метаданных в файле YAML, упомянутом выше. Если вы загрузите релиз и сделаетеbosh releases
, вы увидите это имя. Когда вы пишете манифест развертывания для фактического развертывания материала в выпуске, вы будете ссылаться на него под этим именем.--version
: Аналогично названию, это версия релиза. Если вы не укажете свою собственную версию, BOSH определит версию для вас на основе предыдущей версии, а также от того, добавили вы или нет--final
флаг. Если предыдущая версия была18+dev.20
затем с--final
новая версия будет19
и без, новая версия будет18+dev.21
,
bosh create release
Команда не позволяет вам выбрать местоположение или имя для полученного архива. Вы можете открыть вопрос здесь, если вам нужна эта функция. Однако в большинстве случаев, если вы просто создаете релиз, чтобы загрузить его в Director, вам не нужен файл, bosh upload release
загрузит правильную вещь. На самом деле, вам даже не нужно проходить --with-tarball
в этом случае. С другой стороны, если вам нужно знать, где находится tar-архив, потому что вы собираетесь загрузить его, например, в какое-то общее место, вы можете написать его так:
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`