Суть Packer
- подготовить такой образ, на котором есть необходимый минимум, в основном это ОС и рантайм, но так же можно добавлять любые операции, включая git clone...
, bash-скрипты, ansible-роли и уже на этом образе разворачивать приложения.
$ packer -v
Для управления сторонней инфраструктурой необходимо в ней авторизоваться
например Google cloud
:
$ gcloud auth application-default login
variables.json
Gist с примером файла переменных
Содержит разделы:
Gist на пример конфига с shell
Gist на примере конфига с ansible
$ packer build -var 'project_id=aaaa-123' packer_example.json
$ packer build -var-file variables.json packer_example.json
$ packer validate -var 'project_id=aaaa-123' packer_example.json
Template validation failed. Errors are shown below.
Errors validating build 'googlecompute'. 1 error(s) occurred:
* a source_image or source_image_family must be specified
$ packer inspect packer_example.json
Required variables:
project_id
Optional variables and their defaults:
machine_type = f1-micro
source_image = ubuntu-1804-bionic-v20181003
zone = europe-wes1-b
Builders:
googlecompute
Provisioners:
shell
packer build packer_example.json