Как я готовлю МААС для обслуживания изображений на OpenStack?

У меня есть OpenStack, готовый с МААСОМ, как я готовлю облако с изображениями Ubuntu, таким образом, я могу развернуть его с Амулетом?

5
задан 13 April 2017 в 05:25

1 ответ

Подготовка МААСА для использования Амулета и OpenStack Simplestreams

Когда Амулет загружает облако, требуется два критических сведения:

  1. uuid изображения для использования при запуске новый вычисляют экземпляры.
  2. URL, с которого можно загрузить правильную версию инструменты tarball.

Эта необходимая информация хранится в json формате метаданных, названном "simplestreams". Для поддерживаемых служб публичного облака, таких как Amazon Web Services, HP Cloud, Azure, и т.д., никакое действие не требуется конечным пользователем. Однако те, которые настраивают частное облако, или кто хочет измениться, как вещи работают (например, используют другое изображение Ubuntu), может создать их собственные метаданные, после понимания немного о том, как это работает.

simplestreams формат используется для описания связанных объектов структурным способом. См. проект Панели запуска lp:simplestreams. Ниже мы обсудим, как Амулет определяет, какие метаданные использовать, и как создать Ваши собственные изображения и инструменты и иметь Амулет, используют их вместо значений по умолчанию.

Основной рабочий процесс

Или изображения или инструменты, Амулет использует путь поиска, чтобы попытаться найти подходящие метаданные. Компоненты контура (в порядке поиска):

  1. Пользователь предоставил местоположение (указанный tools-metadata-url или image-metadata-url настройки конфигурации).
  2. Облачное хранилище среды.
  3. Поставщик определенные местоположения (например, конечная точка трапецеидального искажения, если на OpenStack).
  4. Веб-узел с метаданными для поддерживаемых публичных облаков - https://streams.canonical.com

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

Амулет поставлется с открытыми ключами, используемыми для проверки целостности изображения и метаданных инструментов, полученных из https://streams.canonical.com. Таким образом из поля, Амулет будет "Просто Работать" с любым поддерживаемым публичным облаком, с помощью подписанных метаданных. При установке метаданных для частного (например, OpenStack) облако требует, чтобы метаданные были сгенерированы с помощью инструментов, которые поставлются с Амулетом.

Содержание метаданных изображения

Метаданные изображения используют simplestreams тип контента "идентификаторов изображения". Идентификатор продукта формируется следующим образом:

com.ubuntu.cloud:server:<series_version>:<arch> 

Например:

com.ubuntu.cloud:server:14.04:amd64 

Невыпущенные изображения (например, бета, ежедневно и т.д.) имеют идентификаторы продукта как:

com.ubuntu.cloud.daily:server:13.10:amd64

Индекс метаданных и файлы продукта требуются, чтобы быть в следующем дереве каталогов (относительно URL, связанного с каждым компонентом контура):

<path_url>
  |-streams
      |-v1
         |-index.(s)json
         |-product-foo.(s)json
         |-product-bar.(s)json

Индексный файл нужно назвать "индексом. (s) json" (sjson для со знаком). Различные файлы продукта называют согласно значениям Пути, содержавшимся в индексном файле.

Метаданные инструментов используют simplestreams тип контента "довольной загрузки". Идентификатор продукта формируется следующим образом:

"com.ubuntu.juju:<series_version>:<arch>"

Например:

"com.ubuntu.juju:12.04:amd64"

Индекс метаданных и файлы продукта требуются, чтобы быть в следующем дереве каталогов (относительно URL, связанного с каждым компонентом контура). Кроме того, инструменты tarballs, который должен загрузить Амулет, также ожидаются.

  |-streams
  |   |-v1
  |      |-index.(s)json
  |      |-product-foo.(s)json
  |      |-product-bar.(s)json
  |
  |-releases
      |-tools-abc.tar.gz
      |-tools-def.tar.gz
      |-tools-xyz.tar.gz

Индексный файл нужно назвать "индексом. (s) json" (sjson для со знаком). Файл продукта и инструменты tarball соответствие имени (имен) вообще находятся в файлах индекса/продукта.

Конфигурация

Для поддерживаемых публичных облаков не требуется никакая дополнительная конфигурация; вещи работают out-of-the-box. Однако для тестирования, или для неподдерживаемых облачных развертываний, Амулет должен знать, где найти инструменты и которые отображают для выполнения. Даже для поддерживаемых публичных облаков, где все необходимые метаданные доступны, пользователь может поместить их собственные метаданные в путь поиска для переопределения то, что обеспечивается облаком.

Пользователь указал URL

Они первоначально указаны в .juju/environments.yaml файл (и затем впоследствии скопированный в jenv файл, когда среда загружается). Для изображений использовать image-metadata-url; для инструментов использовать tools-metadata-url. URL могут указать на мировой читаемый контейнер/блок в облаке, адрес, подаваемый http сервером или даже общим каталогом, который доступен всеми экземплярами узла, работающими в облаке.

Примите Apache http сервер с базовым URL https://juju-metadata , обеспечение доступа к информации в <base>/images и <base>/tools . Среда Амулета yaml файл могла иметь следующие записи (один или оба):

tools-metadata-url: https://juju-metadata/tools 
image-metadata-url: https://juju-metadata/images

Необходимые файлы в каждом месте согласно расположению каталога, описанному ранее. Для общего каталога используйте URL формы file:///sharedpath.

Облачное хранилище

Если никакие метаданные соответствия не найдены в указанном URL пользователя, облачное хранилище среды ищется. Никакая пользовательская конфигурация не требуется здесь - все среды Амулета настраиваются с облачным хранилищем, которое используется, чтобы хранить информацию состояния, очарование и т.д. Установка облачного хранилища является зависимым поставщика; для облаков Amazon и OpenStack устройство хранения данных определяется значением "блока управления" для Azure, значение "имени учетной записи устройства хранения данных" релевантно.

(Дополнительно) структура каталогов в облачном хранилище следующие:

  |-tools
  |   |-streams
  |       |-v1
  |   |-releases
  |
  |-images
      |-streams
          |-v1

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

Обратите внимание на это, если начальная загрузка амулета выполняется с --upload-tools опция, инструменты и метаданные помещаются согласно вышеупомянутой структуре. Вот почему инструменты затем доступны для Амулета для использования.

Поставщик определенное устройство хранения данных

Поставщики могут позволить дополнительным местоположениям искать метаданные и инструменты. Для OpenStack конечные точки Трапецеидального искажения могут быть созданы администратором облачных сред. Они определяются следующим образом:

инструменты амулета значение, как описано выше в Метаданных Инструментов Contentsproduct-передают-потоком <path_url&GT; оцените, как описано выше в Содержании Метаданных изображения

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

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

Существует два основных вопроса при развертывании частного облака:

  1. Идентификаторы изображения будут характерны для облака.
  2. Часто, вне доступа в Интернет заблокирован

Выпуск 1 означает, что идентификационные метаданные изображения должны быть сгенерированы и сделаны доступный.

Выпуск 2 означает, что инструменты должны быть зеркально отражены локально для создания их доступными.

Инструменты амулета существуют для помощи с генерацией и проверкой метаданные инструментов и изображение. Для инструментов является часто самым легким просто зеркально отразить https://streams.canonical.com/tools . Однако метаданные изображения не могут быть просто зеркально отражены, потому что идентификаторы изображения взяты от поставщика облачного хранилища, таким образом, это должно быть сгенерировано и проверило использование команд, описанных ниже.

Доступные инструменты метаданных Амулета видны при помощи команды справки:

juju help metadata

Полный рабочий процесс:

  • Генерируйте метаданные изображения
  • Скопируйте метаданные изображения в где-нибудь в пути поиска метаданных
  • Дополнительно, зеркально отразите инструменты к где-нибудь в пути поиска метаданных
  • Дополнительно, настройте URL метаданных инструментов и/или URL метаданных изображения
Метаданные изображения

Генерируйте использование метаданных изображения

juju metadata generate-image -d <metadata_dir>

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

Другие обязательные параметры как регион, ряд, архитектура и т.д. взята от текущей среды Амулета (или среды, указанной с-e опцией). Эти параметры могут также быть переопределены на командной строке.

Команда метаданных изображения может быть выполнена многократно с различными регионами, рядом, архитектурой, и это будет продолжать добавлять к файлам метаданных. После того как все необходимые идентификаторы изображения были добавлены, индекс и продукт json файлы могут быть загружены на местоположение в пути поиска метаданных Амулета. Согласно разделу Configuration, это может быть где-нибудь указано image-metadata-url установка или устройство хранения данных облака и т.д.

Примеры:

  1. URL метаданных изображения

    • содержание загрузки к http://somelocation
    • URL метаданных изображения набора к http://somelocation/images
  2. Облачное хранилище

Если выполнено без параметров, команда проверки возьмет все необходимые детали от текущей среды Амулета (или, как указано-e) и произведет идентификатор изображения, который это использовало бы для вращения экземпляра. С другой стороны, ряд, регион, архитектура и т.д. может быть указана на командной строке для переопределения значений в конфигурации среды.

Метаданные инструментов

Обычно инструменты и связанные метаданные зеркально отражаются от https://streams.canonical.com/tools . Однако возможно вручную генерировать метаданные для сделанные на заказ инструменты tarball.

Во-первых, создайте tarball соответствующих инструментов и поместите в каталоге, структурированном как это:

<tools_dir>/tools/releases/

Теперь генерируйте соответствующие метаданные для инструментов путем выполнения команды:

juju generate-tools -d <tools_dir>

Наконец, содержание может быть загружено на местоположение в пути поиска метаданных Амулета. Согласно разделу Configuration, это может быть где-нибудь указано установкой URL метаданных инструментов или настройками пути хранения облака и т.д.

Примеры:

  1. URL метаданных инструментов

    • содержание загрузки dir инструментов к http://somelocation
    • URL метаданных инструментов набора к http://somelocation/tools
  2. Облачное хранилище

содержание загрузки непосредственно к облачному хранилищу среды

Как с метаданными изображения, команда проверки используется, чтобы гарантировать, что инструменты доступны для Амулета для использования:

juju metadata validate-tools

Те же комментарии применяются. Выполните инструмент проверки без параметров для использования деталей от среды Амулета или значений переопределения как требуется на командной строке. Посмотрите juju help metadata validate-tools для получения дополнительной информации.

Следующий шаг:

9
ответ дан 23 November 2019 в 08:56

Другие вопросы по тегам:

Похожие вопросы: