os-images

ЗАМЕТКА:

Этот репозиторий больше не поддерживается - роль была перенесена в Ansible коллекцию по адресу ➡️ https://github.com/stackhpc/ansible-collection-openstack

Образы OpenStack

Эта роль генерирует образы гостевых экземпляров с помощью disk-image-builder и загружает их в OpenStack с использованием модуля os_image.

Требования

API OpenStack должны быть доступны с целевого хоста. Учётные данные клиента должны быть настроены в окружении или с использованием формата clouds.yaml.

Вы должны использовать virtualenv с включёнными системными пакетами, так как эта роль зависит от python-пакетов, установленных пакетным менеджером, например:

virtualenv --system-site-packages ~/venvs/dib

Переменные роли

os_images_package_dependencies_extra: Список дополнительных пакетов для установки на хосте сборки.

os_images_cache: путь к директории, в которой будут кэшироваться артефакты сборки. По умолчанию это ~/disk_images. ЗАМЕТКА: новые образы НЕ будут собираться, даже если внесены изменения в конфигурацию, если образ уже закэширован. Используйте флаг force_rebuild, чтобы применить новые изменения конфигурации.

os_images_auth_type: Точка аутентификации OpenStack и учётные данные. По умолчанию это password.

os_images_auth: Точка аутентификации OpenStack и учётные данные. Например, словарь следующего вида:

  • auth_url: URL-адрес точки аутентификации Keystone. По умолчанию это OS_AUTH_URL.
  • project: тенант/проект OpenStack. По умолчанию это OS_TENANT_NAME.
  • username: имя пользователя OpenStack. По умолчанию это OS_USERNAME.
  • password: пароль OpenStack. По умолчанию это OS_PASSWORD.

os_images_region: Определяет регион для загрузки образов. По умолчанию None.

os_images_cacert - необязательный путь к пакету сертификатов CA.

os_images_interface - тип URL-адреса точки обслуживания для получения из каталога услуг. Может быть один из public, admin или internal.

os_images_list - список словарей YAML, где elements и image_url являются взаимно исключающими, каждый содержит:

  • name: имя образа, которое будет использовано в OpenStack.
  • elements: список элементов diskimage-builder, которые будут включены в образ.
  • image_url: URL-адрес местоположения образа в Интернете.
  • checksum: Контрольная сумма для проверки загруженного образа. Формат: <алгоритм>:<контрольная сумма|url>.
  • env: (необязательно) переменные окружения, которые нужно определить для параметров diskimage-builder. Это словарь вида КЛЮЧ: ЗНАЧЕНИЕ.
  • packages: (необязательно) список пакетов для установки в образ.
  • size: (необязательно) размер файловой системы образа.
  • properties: (необязательно) словарь свойств для задания на образ glance. Общие свойства изображения доступны здесь.
  • type: (необязательно) тип образа. По умолчанию в DIB qcow2. Форматы изображений доступны здесь.
  • force_rebuild: (необязательно) логический флаг, указывающий, нужно ли всегда собирать изображение (даже если ранее было собрано существующее изображение с таким именем). Изображения в glance будут заменены, если os_images_upload установлено в True. По умолчанию это os_images_force_rebuild, если не указано.
  • is_public: (необязательно) нужно ли установить изображение как видимое для всех проектов или оставить его приватным.
  • owner: (необязательно) ID проекта, который должен владеть загруженным изображением.

os_images_common: Набор элементов, которые должны быть включены в каждый перечисленный образ. По умолчанию это cloud-init enable-serial-console stable-interface-names.

os_images_dib_pkg_name: При желании измените параметр имени, передаваемый модулю ansible.builtin.pip при установке diskimage-builder. Это можно использовать для установки diskimage-builder из версии управления.

os_images_dib_version: При желании укажите версию diskimage-builder для установки. По умолчанию это не ограничено.

os_images_git_elements: Необязательный список элементов для извлечения из github, развертывания на локальном уровне для включения в образы. Предоставьте список словарей с следующими параметрами:

  • repo: URL-адрес git-репозитория для клонирования (если он ещё не присутствует)
  • local: локальный путь для клонирования git
  • version: необязательная ссылка на git (ветка, тег, хеш) для клонирования. По умолчанию HEAD
  • elements_path: необязательный относительный путь к элементам внутри репозитория.

os_images_elements: Необязательный список путей для специфических для сайта элементов DIB.

os_images_upload: Нужно ли загружать собранные образы в Glance. По умолчанию True.

os_images_force_rebuild: Нужно ли принудительно пересобирать образ DIB. Образы в Glance будут заменены вновь созданным изображением, если os_images_upload установлено в True. По умолчанию False.

os_images_public: Нужно ли загруженные образы сделать публичными. По умолчанию True - обратите внимание, что для этого требуются административные права.

os_images_venv: Путь к virtualenv, в котором следует установить python-зависимости для загрузки изображений.

os_images_dib_venv: Путь к virtualenv, в котором следует установить DIB для создания образов.

os_images_promote: Нужно ли уволить старые и продвигать новые образы. По умолчанию False.

os_images_build: Нужно ли строить образы.

os_images_name_suffix: Суффикс изображения, который будет удален во время продвижения образа, например: -rc, -dev, -test и т.д. Обязательно для функциональности продвижения. По умолчанию пусто.

os_images_hide: Нужно ли скрывать изображения в списке Glance. Скрытие изображений доступно как опция в процессе увольнения/продвижения изображений. По умолчанию False.

Зависимости

Пример плейбука

Следующий плейбук генерирует образ для гостя и загружает его в OpenStack:

---
- name: Генерация образа гостя и загрузка
  hosts: openstack
  roles:
    - role: stackhpc.os-images
      os_images_auth:
        auth_url:     "{{ lookup('env','OS_AUTH_URL') }}"
        username:     "{{ lookup('env','OS_USERNAME') }}"
        password:     "{{ lookup('env','OS_PASSWORD') }}"
        project_name: "{{ lookup('env','OS_TENANT_NAME') }}"
      os_images_list:
      - name: FedoraCore
        elements:
          - fedora
          - selinux-permissive
          - alaska-extras
        env:
          DIB_ALASKA_DELETE_REPO: "y"
          DIB_ALASKA_PKGLIST: "pam-python pam-keystone"
      - name: FedoraAtomic27
        image_url: https://ftp.icm.edu.pl/pub/Linux/dist/fedora-alt/atomic/stable/Fedora-Atomic-27-20180326.1/CloudImages/x86_64/images/Fedora-Atomic-27-20180326.1.x86_64.qcow2
        properties:
          os_distro: fedora-atomic
        type: qcow2

Информация об авторах

О проекте

Role to generate guest instance images and upload to OpenStack

Установить
ansible-galaxy install stackhpc/ansible-role-os-images
Лицензия
apache-2.0
Загрузки
196010
Владелец
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.