Задача программы OpenStack Orchestration — создать сервис, доступный для человека и машины, для управления всем жизненным циклом инфраструктуры и приложений в облаках.
Heat — основной проект в программе OpenStack Orchestration. Благодаря ему вы можете составлять шаблоны в виде текстовых файлов, а затем обрабатывать их как код и запускать составные облачные приложения.
Создание шаблона Heat
HOT — это формат шаблона, поддерживаемый Heat. На его основе Опенстек разворачивает облачные приложения.
Простая схема
Чтобы научиться работать с Heat, начнем с простой конфигурации. В ней будет только одно определение ресурса с заданными свойствами.
Пример:
Описание начинается с версии HOT. Список доступных версий смотрите в cпецификации.
Затем следует description — полезный текст, который объясняет, что пользователи могут делать с помощью этой схемы. Можно обойтись и без него, но это хорошая практика, как и комментарии в коде. Description можно сделать большим, на несколько строк, используя форматирование YAML.
В отличие от description, раздел resources — обязательный. Здесь должно быть описание как минимум одного ресурса. В приведенном примере вы используете Openstack Nova, а также указываете три свойства с заранее определенными значениями: key_name, image и flavor.
Настройка входных данных
В предыдущем разделе вы изучили пример простой конфигурации, в которой свойства определены заранее. Это не самый практичный подход. Гораздо удобнее, когда шаблон можно настраивать при развертывании — допустим, указывать идентификатор дистрибутива или тип инстанса. Этого можно добиться, расширив схему:
Здесь определены три входных параметра, которые пользователь должен предоставить при развертывании. Вы также можете определить значения по умолчанию для входных параметров, которые будут использоваться в случае, если пользователь не предоставит соответствующий параметр во время развертывания.
Следующее определение для параметра instance_type выберет вариант «m1.small», если пользователь не указал иное.
Еще одна полезная опция — скрытие значения. Например, их используют, чтобы спрятать пароль. Для скрытия достаточно добавить параметр hidden со значением true:
Также можно установить ограничения, используя параметр constraints:
В этом примере вы явно задаете условия, которым должен удовлетворять пароль от базы данных.
Настройка выходных данных
В дополнение к настройке шаблона с помощью входных параметров вы можете предоставлять пользователям выходные данные. Пример:
В этом примере выводится IP-адрес, по которому доступен экземпляр, определенный в предыдущем разделе. Если не указать его в выводе, то пользователям придется искать его самостоятельно.
Заключение
Все это можно попробовать настроить в виртуальной машине на локальном компьютере или удаленном сервере. Конфигурация системы настраивается в файле конфигурации Openstack local. А если не хочется тратить время на самостоятельную настройку, можно заказать облачную инфраструктуру timeweb.cloud и доверить управление специалистам.
Openstack 2020 предоставляет еще много возможностей для управления инфраструктурой. С помощью блочного хранилища Openstack Cinder вы можете управлять виртуальными дисками, добавляя их к инстансам. Можно даже делать их загрузочными и переносить ВМ на другие вычислительные мощности.
Способы управления также отличаются. Можно использовать Nova API через клиент командной строки на Python. Задачи могут быть разными. Например, удобно выстроена на Python работа с IP-адресами, а с помощью Nova можно управлять всей инфраструктурой.
