Документация Общие сведения Оркестрация виртуальных серверов и шаблоны Openstack Heat


Openstack Heat - служба, которая позволяет шаблонизировать установку и конфигурацию как отдельных виртуальных серверов, так и целых окружений с возможностью конфигурировать ПО внутри виртуальных машин.


Если вы знакомы с Docker Compose, то шаблон Heat - аналогическое файлу docker-compose.yml описание окружения в виде файла в yaml формате, с той разницей, что Openstack Heat позволяет оркестровать ресурсы более низкого уровня.
Окружение, созданное из такого шаблона в терминологии Openstack, называется стэком - Stack.

Пример Heat шаблона:
heat_template_version: 2015-10-15
parameters:
  ssh_key:
    label: ssh_key
    type: string
    default: my_ssh_key1
  flavor:
    label: flavor
    type: string
    default: vibox1
  image:
    label: image
    type: string
    default: Ubuntu Server 18.04 LTS (2020-05-08)
  git_repo:
    label: git_repo
    type: string
    description: url for git repo

resources:
  docker_host:
  type: OS::Nova::Server
    properties:
      name: docker-host
      key_name: {get_param: ssh_key}
      image: {get_param: image}
      flavor: {get_param: flavor}
      user_data_format: RAW
      user_data:
      str_replace:
        template: |
          #!/bin/bash
          apt update && apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common git
          curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
          apt-key fingerprint 0EBFCD88
          add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
          apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io
          git clone $git_repo
          cd $git_repo
          docker build -t mycontainer -f Dockerfile .
          docker run mycontainer
  
И для создания окружения из шаблона запускаем команду.
    openstack stack create -t teststack.yml teststack01 --parameter git_repo=https://github.com/acc1/proj1
  
В процессе работы приведенного в примере шаблона будет создан виртуальный сервер, на который будет установлен пакет Docker CE, скачан репозиторий https://github.com/acc1/proj1 и собран и запущен docker контейнер.

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

В Панели управления по уже подготовленным шаблонам вы можете произвести установку популярного ПО:



Список готовых к установке шаблонов можно посмотреть по ссылке.