Упаковщик - 1-й: Как создать файл на машине.2-й: экспорт машины в файл ova - PullRequest
0 голосов
/ 11 декабря 2018

Я использую Packer для создания файла шаблона, который развертывается через API для нашего провайдера.

Шаблон построен из минимального ISO-файла CentOS 7.4 с использованием кикстарта anaconda-ks.cfg.

В этом файле кикстарта я настраиваю, какие пакеты установить в моем шаблоне, а в части после кикста файла кикстарта я запускаю различные команды bash для его настройки.В этом пост-конфиге я также запускаю несколько cat > /path/file.sh <<EOF, чтобы поместить некоторые файлы на диск.

1st.

Один из файлов довольно большой, и хотя я пытался разбить егопо частям, последний кусок заморозить создание шаблонаЯ не вижу ничего плохого в моем коде.Мне кажется, что последний cat >> /path/file.sh <<EOF просто замораживает задание Packer.

Вопрос в том, существует ли какой-либо метод, подобный Terraform, для использования файла шаблона где-нибудь в структуре каталогов Packer, который будет использоваться какисточник для создания этого /path/file.sh файла в моем шаблоне.

2nd.

Когда шаблон будет завершен, мне нужно экспортировать его в файл .ova, потому что мой провайдер не принимает никакихдругой тип файла.

Как и в моем файле json, я использую тип компоновщика virtualbox-iso и тип постпроцессора vagrant, мне интересно, как я могу выполнить последнюю часть - экспортировать в ova.

Моей первой мыслью было использовать ovftool, но, поскольку я новичок в пакере, я не знаю, как вставить это в мой код Packer.

Пожалуйста, помогите.

Спасибо.

1 Ответ

0 голосов
/ 11 декабря 2018
  1. Используйте поставщика файлов
  2. Установите "format": "ova" в своем шаблоне и удалите постпроцессор vagrant, если только вам не нужен блок vagrant.*) См. virtualbox-iso: формат

*) Если вам действительно нужно, вы должны запустить shell-local post-Provider параллельно сvagrant, который преобразует ovf в ova вместо установки формата, так как, скорее всего, поле vagrant должно содержать ovf.

...