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 контейнер.
Как видно из примера, практически любую инсталяцию виртуальных серверов можно свести к запуску шаблона с передачей ему соответствующих параметров.
В Панели управления по уже подготовленным шаблонам вы можете произвести установку популярного ПО:
Список готовых к установке шаблонов можно посмотреть по
ссылке.