Ansible Builder

Содержание

Ansible Builder#

Утилита Ansible Builder является универсальным инструментом для создания образов среды исполнения (EE). Для этого она предоставляет несколько команд с различными аргументами, описание которых приводится далее.

Вызов утилиты имеет следующий вид:

ansible-builder <command> [<arguments>]

Здесь:

  • <command> – команда;

  • <arguments> – аргументы команды.

Возможные команды:

  • build – создание образа контейнера.

  • create – создание файла спецификации образа.

  • introspect – поиск в каталоге проекта сведений о коллекциях и вывод информации об зависимостях.

build#

Аргументы команды:

-h, --help#

Справочная информация о команде.

-t TAG [TAG ...], --tag TAG [TAG ...]#

Название создаваемого образа (по умолчанию – ansible-execution-env:latest).

--container-runtime {podman,docker}#

Система управления контейнерами:

  • docker – Docker;

  • podman – Podman.

Значение по умолчанию – podman.

--build-arg BUILD_ARGS#

Переменные, которые могут быть использованы во время сборки:

  • ANSIBLE_GALAXY_CLI_COLLECTION_OPTS – позволяет пользователю передать параметр –pre для команды установки коллекций (ansible-galaxy collections install), чтобы разрешить установку предварительных выпусков коллекций.

  • ANSIBLE_GALAXY_CLI_ROLE_OPTS – позволяет пользователю передавать любые параметры для команды установки ролей, такие как –no-deps.

  • EE_BASE_IMAGE – указывает родительский образ для среды исполнения.

  • EE_BUILDER_IMAGE – указывает образ, используемый для компиляции типовых задач.

  • PKGMGR_PRESERVE_CACHE – контролирует частоту очистки кеша менеджера пакетов в процессе сборки образа. Если это значение не задано, кеш очищается наиболее часто. Если задано значение always , кеш никогда не очищается. Любое другое значение заставляет очищать кеш только после установки системных зависимостей на заключительном этапе сборки образа.

--no-cache#

Отключение кеширования во время сборки образа.

--prune-images#

Удаление неиспользуемых образов после создания образа.

--container-policy {system,ignore_all,signature_required}#

Политика проверки образа контейнера:

  • system – использование системной политики или подписи со встроенными путями к связкам ключей;

  • ignore_all – игноририрование всех подписей;

  • signature_required – использование подписей, указанных с помощью параметра --container-keyring.

Важно

Аргумент поддерживается только при использовании Podman.

--container-keyring CONTAINER_KEYRING#

Путь к хранилищу контейнера, которое может использоваться для хранения и управления учетными данными контейнера, а также для обеспечения безопасного доступа к защищенным ресурсам.

--squash {new,all,off}#

Объединение слоев во время сборки, что позволяет уменьшить размер конечного образа:

  • new – существовавшие ранее слои не изменяются, а все новые слои объединяются в один;

  • all – все слои образа объединяются в один;

  • off – объединение слоев отключено.

Значение по умолчанию – off.

Важно

Аргумент поддерживается только при использовании Podman.

-f FILENAME, --file FILENAME#

Путь к файлу определения среды исполнения.

Значение по умолчанию – execution-environment.(yml|yaml).

-c BUILD_CONTEXT, --context BUILD_CONTEXT#

Каталог, который будет использоваться для хранения контекста сборки.

Значение по умолчанию – context.

--output-filename {Containerfile,Dockerfile}#

Название файла для записи определения образа, зависит от --container-runtime:

  • Containerfile – Podman;

  • Dockerfile – Docker.

--galaxy-keyring GALAXY_KEYRING#

Путь к хранилищу для проверки подписи коллекции при загрузке из Galaxy. Проверка отключена, если она не настроена.

--galaxy-ignore-signature-status-codes GALAXY_IGNORE_SIGNATURE_STATUS_CODES#

Позволяет игнорировать определенные коды состояния подписи при работе с Galaxy. Может быть указано несколько раз.

--galaxy-required-valid-signature-count GALAXY_REQUIRED_VALID_SIGNATURE_COUNT#

Количество действительных подписей, необходимых для успешной загрузки коллекции с Ansible Galaxy.

-v [VERBOSITY], --verbosity [VERBOSITY]#

Детализация вывода. Добавление нескольких -v увеличит детализацию. Максимальное значение -vvv. Также принимаются целочисленные значения, например, -v3 или --verbosity 3.

Значение по умолчанию – 2.

create#

Аргументы команды:

  • -h, --help;

  • -f FILENAME, --file FILENAME;

  • -c BUILD_CONTEXT, --context BUILD_CONTEXT;

  • --output-filename {Containerfile,Dockerfile};

  • --galaxy-keyring GALAXY_KEYRING;

  • --galaxy-ignore-signature-status-codes GALAXY_IGNORE_SIGNATURE_STATUS_CODES;

  • --galaxy-required-valid-signature-count GALAXY_REQUIRED_VALID_SIGNATURE_COUNT;

  • -v [VERBOSITY], --verbosity [VERBOSITY].

Подробное описание аргументов приведено в описании команды build.

introspect#

Аргументы команды:

folder#

Путь к каталогу с коллекциям Ansible. Внутри указанного каталога должен существовать подкаталог ansible_collections.

-h, --help#

Справочная информация о работе команды.

--sanitize#

Очистка зависимостей или данных, которые могут быть связаны с проектом. Например, удаление непроверенных или ненадежных зависимостей, чтобы гарантировать, что результирующий список остается безопасным и актуальным.

--user-pip USER_PIP#

Путь к файлу requirements.txt.

--user-bindep USER_BINDEP#

Путь к файлу bindep.txt.

--write-pip WRITE_PIP#

Путь к файлу, в который будет записан список зависимостей Python.

--write-bindep WRITE_BINDEP#

Путь к файлу, в который будет записан список системных зависимостей.

-v [VERBOSITY], --verbosity [VERBOSITY]#

Детализация вывода. Добавление нескольких -v увеличит детализацию. Максимальное значение -vvv. Также принимаются целочисленные значения, например, -v3 или --verbosity 3.

Значение по умолчанию – 2.