У меня есть OpenStack, готовый с МААСОМ, как я готовлю облако с изображениями Ubuntu, таким образом, я могу развернуть его с Амулетом?
Когда Амулет загружает облако, требуется два критических сведения:
Эта необходимая информация хранится в json формате метаданных, названном "simplestreams". Для поддерживаемых служб публичного облака, таких как Amazon Web Services, HP Cloud, Azure, и т.д., никакое действие не требуется конечным пользователем. Однако те, которые настраивают частное облако, или кто хочет измениться, как вещи работают (например, используют другое изображение Ubuntu), может создать их собственные метаданные, после понимания немного о том, как это работает.
simplestreams формат используется для описания связанных объектов структурным способом. См. проект Панели запуска lp:simplestreams. Ниже мы обсудим, как Амулет определяет, какие метаданные использовать, и как создать Ваши собственные изображения и инструменты и иметь Амулет, используют их вместо значений по умолчанию.
Или изображения или инструменты, Амулет использует путь поиска, чтобы попытаться найти подходящие метаданные. Компоненты контура (в порядке поиска):
tools-metadata-url
или image-metadata-url
настройки конфигурации).Метаданные могут быть встроены подписанный или неподписанный. Мы указываем, что файл метаданных подписывается при помощи '.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> оцените, как описано выше в Содержании Метаданных изображения
Другие поставщики могут так же смочь указать местоположения, хотя реализация будет варьироваться.
Это - местоположение по умолчанию, используемое для поиска изображения и метаданных инструментов, и используется, если никакие соответствия не найдены ранее ни в одном из вышеупомянутых местоположений. Никакая пользовательская конфигурация не требуется.
Существует два основных вопроса при развертывании частного облака:
Выпуск 1 означает, что идентификационные метаданные изображения должны быть сгенерированы и сделаны доступный.
Выпуск 2 означает, что инструменты должны быть зеркально отражены локально для создания их доступными.
Инструменты амулета существуют для помощи с генерацией и проверкой метаданные инструментов и изображение. Для инструментов является часто самым легким просто зеркально отразить https://streams.canonical.com/tools
. Однако метаданные изображения не могут быть просто зеркально отражены, потому что идентификаторы изображения взяты от поставщика облачного хранилища, таким образом, это должно быть сгенерировано и проверило использование команд, описанных ниже.
Доступные инструменты метаданных Амулета видны при помощи команды справки:
juju help metadata
Полный рабочий процесс:
Генерируйте использование метаданных изображения
juju metadata generate-image -d <metadata_dir>
Как минимум, вышеупомянутая команда должна знать, что идентификатор изображения использует и каталог, в котором можно записать файлы.
Другие обязательные параметры как регион, ряд, архитектура и т.д. взята от текущей среды Амулета (или среды, указанной с-e опцией). Эти параметры могут также быть переопределены на командной строке.
Команда метаданных изображения может быть выполнена многократно с различными регионами, рядом, архитектурой, и это будет продолжать добавлять к файлам метаданных. После того как все необходимые идентификаторы изображения были добавлены, индекс и продукт json файлы могут быть загружены на местоположение в пути поиска метаданных Амулета. Согласно разделу Configuration, это может быть где-нибудь указано image-metadata-url
установка или устройство хранения данных облака и т.д.
Примеры:
URL метаданных изображения
http://somelocation
http://somelocation/images
Облачное хранилище
Если выполнено без параметров, команда проверки возьмет все необходимые детали от текущей среды Амулета (или, как указано-e) и произведет идентификатор изображения, который это использовало бы для вращения экземпляра. С другой стороны, ряд, регион, архитектура и т.д. может быть указана на командной строке для переопределения значений в конфигурации среды.
Метаданные инструментовОбычно инструменты и связанные метаданные зеркально отражаются от https://streams.canonical.com/tools
. Однако возможно вручную генерировать метаданные для сделанные на заказ инструменты tarball.
Во-первых, создайте tarball соответствующих инструментов и поместите в каталоге, структурированном как это:
<tools_dir>/tools/releases/
Теперь генерируйте соответствующие метаданные для инструментов путем выполнения команды:
juju generate-tools -d <tools_dir>
Наконец, содержание может быть загружено на местоположение в пути поиска метаданных Амулета. Согласно разделу Configuration, это может быть где-нибудь указано установкой URL метаданных инструментов или настройками пути хранения облака и т.д.
Примеры:
URL метаданных инструментов
http://somelocation
http://somelocation/tools
Облачное хранилище
содержание загрузки непосредственно к облачному хранилищу среды
Как с метаданными изображения, команда проверки используется, чтобы гарантировать, что инструменты доступны для Амулета для использования:
juju metadata validate-tools
Те же комментарии применяются. Выполните инструмент проверки без параметров для использования деталей от среды Амулета или значений переопределения как требуется на командной строке. Посмотрите juju help metadata validate-tools
для получения дополнительной информации.
Следующий шаг: