Управление IBM SmartCloud Enterprise: Часть 1. Создание пакетов программного обеспечения для ВМ с помощью ICCT

Источник: IBM

Пакет ПО - это совокупность файлов программного обеспечения, конфигурации и метаданных, которые можно установить на экземпляр виртуальной машины. В этой статье из двух частей авторы показывают, как использовать инструмент IBM Image Construction and Composition Tool (ICCT) для создания пакета ПО и работы с ним в системе IBM SmartCloud Enterprise. ICCT решает задачи учета и обеспечивает удобный пошаговый процесс и графический интерфейс пользователя для создания пакетов ПО, настройки экземпляров виртуальных машин и создания образов. В этой статье авторы показывают, как создать пакет ПО для ВМ, создать и настроить ICCT на SmartCloud, а также как извлечь и отредактировать пакет ПО. Во второй части описывается способ создания нового частного образа пакета ПО, созданного в первой части.

Эта статья содержит обзор инструмента IBM Image Construction and Composition Tool (ICCT) и демонстрирует, как создавать и поддерживать пакеты ПО в системе IBM SmartCloud Enterprise. Приводится пример с описанием последовательности шагов по созданию пакета ПО для Google Chrome, включая определение метаданных пакета ПО Chrome, добавление сценариев установки и их регистрации в облаке SmartCloud Enterprise. Предполагается, что читатель знаком с идеями облачных вычислений. Для того чтобы повторить действия, описанные в этой статье, необходима учетная запись пользователя IBM SmartCloud Enterprise.

Image Construction and Composition Tool (ICCT)

ICCT для SmartCloud ― это Web-приложение, которое упрощает и автоматизирует создание образа виртуальной машины. ICCT поставляется в виде образа, который можно инициализировать в SmartCloud.

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

  • специалист по операционной системе: создает базовые образы операционных систем, используемые конструктором образов в качестве отправной точки. Базовые образы представляют собой стандартную конфигурацию ОС, лицензионные соглашения и политики безопасности предприятия;
  • специалист по программному обеспечению: создает пакеты ПО ― многократно используемые ресурсы, содержащие программные продукты или компоненты;
  • конструктор образов: собирает базовые образы и один или несколько пакетов ПО для создания шаблонов виртуальных образов;
  • ответственный за развертывание образов: определяет зависящие от экземпляра параметры и инициализирует экземпляр в SmartCloud.

ICCT поддерживает создание пакета ПО - этапы создания и развертывания жизненного цикла виртуального образа.

Давайте рассмотрим процесс создания пакета ПО и процессы построения и развертывания виртуального образа.

Создание пакета ПО

Специалист по ПО обладает большой гибкостью по определению пакета и выбору степени его детализации. Пакеты служат для упаковки задач установки и настройки одного или более продуктов в простой контейнер. ICCT помогает пользователю определить зависимости, предпосылки, правила межсетевого экрана и собрать сценарии и исполняемые файлы в пакет ПО.

Специалист по ПО должен решить, куда упаковать установочный носитель. Все файлы, связанные с работой пакета, загружаются и хранятся в ресурсе компонуемого пакета ПО в Rational® Asset Manager (RAM). Структура каталогов ресурса пакета гарантирует, что все рабочие файлы хранятся в одном и том же подкаталоге. Такая структура предотвращает конфликты, когда файлы, связанные с различными операциями, имеют одинаковые имена.

Упаковка установочного носителя продукта в пакет ПО часто означает передачу в процессе синхронизации пакета файлов большого размера. Установочный носитель продукта может находиться на внешнем Web-сервере и извлекаться с помощью wget или монтироваться в NFS.

Для управления установкой пакета и настройки продукта используйте вкладки ICCT Install и Configuration:

  • Вкладка Install: специалист по программному обеспечению может определить сценарии, которые будут выполняться во время сборки виртуального образа. Это могут быть традиционные сценарии установки продукта и исполняемые файлы.
  • Вкладка Configuration: специалист по программному обеспечению может определить сценарии настройки, которые копируются в виртуальный образ на этапе сборки, но не выполняются до развертывания виртуального образа. Эти сценарии настройки могут сдержать традиционные сценарии настройки или сценарии для изменения настройки по умолчанию, уже произведенной в процессе установки.
  • Вкладка Reset: содержит сценарий очистки журналов или временных файлов, созданных во время синхронизации. ICCT выполняет этот сценарий в процессе записи.
  • Вкладка Firewall: Содержит множество пакетов ПО, которые предоставляют услуги удаленным клиентам; например IBM HTTP Server предоставляет услуги Web-сервера. Для успешного доступа к таким услугам может потребоваться установка и настройка продукта, обеспечивающая его подключение к сети. Специалист по программному обеспечению должен указать набор номеров открываемых портов для входящих служб и разрешить доступ этим службам. Например, для пакета ПО HTTP-сервера IBM могут потребоваться открытые порты администрирования (порт 8008) и обслуживания (порты 80 и 443).

Основной задачей специалиста по программному обеспечению является написание сценариев установки, настройки и сброса, которые выполняются во время создания и развертывания виртуального образа. ICCT опирается на следующие сценарии.

  1. Установка и настройка программного обеспечения и его компонентов в составе пакета.
  2. Ввод параметров установки для настройки программного обеспечения во время развертывания.
  3. Сброс любого состояния, созданного во время установки и настройки пакета, перед вводом виртуального образа, на котором установлен пакет.

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

Создание виртуального образа

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

  • Составление: на этом шаге этапа создания составляется рецепт, называемый проектом образа, который представляет собой виртуальный образ с новыми именем и версией. Выбирается базовый образ и один или несколько пакетов, которые добавляются в этот рецепт, делая его специализированным.
  • Синхронизация: Проект образа преобразуется во временный экземпляр виртуальной машины. Создается виртуальная машина, и устанавливаются пакеты программного обеспечения. Выполняется сценарий установки каждого пакета ПО на временную виртуальную машину. Сценарии настройки и сброса копируются в виртуальную машину для исполнения на более поздних этапах процесса.
  • Запись: процесс записи образа с предустановленными пакетами программного обеспечения во временный экземпляр в виде частного образа. ICCT выполняет сценарий сброса для каждого пакета виртуального образа и приводит операционную систему в исходное состояние, позволяя SmartCloud завершить запись. Наконец, когда SmartCloud завершает запись, ICCT обновляет файл семантической топологии в RAM.

Развертывание виртуального образа

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

  • Настройка: специалист по развертыванию образов определяет зависящие от экземпляра параметры развертывания виртуального образа. Также собираются параметры развертывания образа, связанные с пакетом ПО, такие как идентификатор пользователя, пароль или порт (которые можно настраивать для каждого экземпляра).
  • Инициализация: SmartCloud инициализирует экземпляр и виртуальную машину в активном режиме. При первой загрузке операционной системы программное обеспечение пакета начинает этап активации.
  • Активация: механизм активации получает параметры развертывания и вызывает соответствующие сценарии конфигурации. Пакет ПО и его компоненты используют значения, предоставленные специалистом по развертыванию образов, для самостоятельной перенастройки. Механизм активации (Activation Engine) - это компонент ICCT, который устанавливается в базовый образ в процессе его расширения. ICCT расширяет каждый виртуальный образ, добавляя пакет подготовки (enablement bundle). ICCT добавляет пакет подготовки, если его еще нет, при первом составлении виртуального образа.

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

Рисунок 1. Жизненный цикл виртуального образа, поддерживаемый ICCT
Жизненный  цикл  виртуального образа, поддерживаемый ICCT

Теперь рассмотрим процесс создания и настройки ICCT в SmartCloud.

Создание и настройка ICCT в SmartCloud

Мы пройдем все описанные выше этапы на простом примере установки Google Chrome.

  1. Войдите в SmartCloud и создайте экземпляр ICCT, выбрав образ IBM Image Construction and Composition Tool. После его инициализации подключитесь к https://<ICCT IP Address>/ и войдите с именем пользователя паролем, предоставленными при развертывании экземпляра ICCT.

    Примечание. Если у вас уже есть экземпляр виртуальной машины ICCT, но URL ICCT не отвечает, возможно, вам придется войти в экземпляр своей виртуальной машины как idcuser и выполнить следующую команду, чтобы перезапустить приложение ICCT:

    sudo /opt/IBM/icon/start.sh
     

    На рисунке 2 показан первый экран мастера Cloud Provider Wizard.

    Рисунок 2. Первый экран мастера Cloud Provider Wizard
    Первый экран мастера Cloud Provider Wizard

  2. Нажмите кнопку Next и введите имя пользователя и пароль, которые вы применяли для входа в SmartCloud.

    Рисунок 3. Окно ввода учетных данных облака
    Окно ввода учетных данных облака

  3. Нажмите кнопку Next. Введите имя и описание центра обработки данных частных образов. Позднее можно будет создать дополнительных поставщиков облака для разных центров обработки данных и ключей. В качестве типа поставщика облака выберите IBM SmartCloud Enterprise. В этом примере используется центр обработки данных Ehningen.

    Рисунок 4. Панель сведений о поставщике облака
    Панель сведений о поставщике облака

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

    Рисунок 5. Окно с информацией о ключах SSH
    Окно с информацией о ключах SSH

  5. Нажмите кнопку Next и проверьте информацию. ICCT шифрует и сохраняет учетные данные пользователей и закрытый ключ в экземпляре ICCT под именем поставщика облака. Поставщик облака используется для извлечения образа и метаданных пакета ПО из SmartCloud. Секретный ключ нужен для установки пакетов ПО на временный экземпляр от имени пользователей до записи образа.

    Рисунок 6. Сводное окно учетных данных
    Сводное окно учетных данных

  6. Нажмите кнопку Done. Появится страница приветствия ICCT.

    Рисунок 7. Страница приветствия
    Страница приветствия

Создание пакетов ПО с помощью ICCT в SmartCloud

Чтобы создать пакет ПО, выполните следующие действия.

  1. Выберите Build and Manage Software Bundles. Слева появится панель Bundles. Локальные пакеты подготовки заполнены данными по умолчанию.

    Рисунок 8. Первое окно управления пакетом программного обеспечения
    Первая панель управления пакетом программного обеспечения

  2. Щелкните на значке + вверху, чтобы начать создание нового пакета программного обеспечения. Появится новое диалоговое окно. Введите имя, универсальный идентификатор, версию и описание пакета программного обеспечения. В поле Storage Location выберите поставщика облака, созданного ранее, а для Primary Enterprise Community оставьте значение по умолчанию.

    Рисунок 9. Окно нового пакета программного обеспечения
    Окно нового пакета программного обеспечения

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

    Рисунок 10. Окно основных сведений о пакетах программного обеспечения
    Окно основных сведений о пакетах программного обеспечения

  4. Щелкните на значке + рядом с Products в таблице пакетов и добавьте браузер Google Chrome. Чтобы отредактировать информацию, нужно дважды щелкнуть в каждом из полей редактирования Product Name (название продукта), Version (версия) и Vendor (производитель).

    Рисунок 11. Окно основных сведений о пакетах программного обеспечения
    Окно основных сведений о пакетах программного обеспечения

  5. Выберите вкладку Requirements и добавьте в качестве поддерживаемой операционной системы Linux®. Как правило, должны быть указаны следующие атрибуты:
    • Type: тип операционной системы, например, Linux или Windows®;
    • Distribution: дистрибутив ОС, например, RHEL, SLES;
    • Architecture: поддерживаемая архитектура ядра;
    • Version: архитектура ОС. можно использовать подстановочные знаки:
      • 5.x - знак "x" заменяет одну цифру;
      • 10.1+ - знак "+" означает версию 10 или любую более позднюю версию.

    Выберите только Type=Linux и оставьте остальные атрибуты пустыми.

    Рисунок 12. Окно требований к пакету программного обеспечения
    Окно требований к пакету программного обеспечения

  6. Поскольку у этого пакета нет зависимостей, поля Required Software (необходимое ПО) и Required Bundles (необходимые пакеты) остаются пустыми.

    Следующий сценарий установки создает репозиторий для загрузки 64-разрядной версии Chrome и устанавливает ее. Сохраните его локально под именем installgooglechrome.sh:

    sudo echo "[google-chrome]" > /tmp/google.repo
    sudo echo "name=google-chrome - 64-bit" >> /tmp/google.repo
    sudo echo "baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64"
     >> /tmp/google.repo
    sudo echo "enabled=1" >> /tmp/google.repo
    sudo echo "gpgcheck=1" >> /tmp/google.repo
    sudo echo "gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub"
     >> /tmp/google.repo
    sudo mv /tmp/google.repo /etc/yum.repos.d/google.repo
    sudo yum install -y google-chrome-unstable
    

  7. Выберите вкладку Install. В разделе Installation указано, что следует запускать при единовременной установке программного обеспечения.
  8. Щелкните на значке + и добавьте файл installgooglechrome.sh, пометьте его как исполняемый и выберите этот файл в поле Run Command. Он выполнится с правами root. Этот сценарий не принимает никаких аргументов, поэтому поле Arguments остается пустым.

    Рисунок 13. Окно сведений об установленных пакетах программного обеспечения
    Окно сведений об установленных пакетах программного обеспечения

  9. Далее следует раздел Configuration. Для Google Chrome не нужно выполнять никаких сценариев при развертывании экземпляра виртуальной машины, так что оставьте его пустым. Этот раздел используется тогда, когда образ создает экземпляр с аргументами, требующими индивидуальной настройки.
  10. В разделе Firewall указываются порты, которые должны быть открыты. Нажмите Reset, чтобы очистить журналы после единовременной установки. Google Chrome не использует вкладки Configuration или Firewall.
  11. Отредактируйте сценарий установки, разрешив как 32-, так и 64-разрядную версии:
    uname -a / grep x86_64
    if [ $? -eq 0 ]; then
    # Use 64 bit repository
    else
    # Use 32 bit repository
    Fi
    

  12. Нажмите кнопку Save, а затем Publish.

    Рисунок 14. Изменение состояния на Published
    Изменение состояния на Published

Поддержка пакетов ПО в SmartCloud

Две основные задачи по поддержке пакетов ― это извлечение и обновление.

Извлечение пакетов ПО

Существует несколько способов извлечь пакет программного обеспечения. Чтобы использовать API REST, выполните следующий запрос для извлечения пакета программного обеспечения:

Рисунок 15. Запрос API REST для извлечения пакетов ПО
Запрос API  REST для извлечения пакетов ПО

Или следующий код:

curl -k -H 'Accept: application/json' -u <userid>:<password>
 https://www-147.ibm.com/computecloud/enterprise/api/rest/20100331/offerings/swbundle

Для только что созданного пакета GoogleChrome поступает следующий ответ.

Рисунок 16. Ответ при извлечении пакетов ПО
Ответ при извлечении пакетов ПО

Другой способ - зайти на портал SmartCloud и выбрать Control Panel > View Asset Catalog > My Dashboard. Вы увидите ресурс GoogleChrome в RAM.

Рисунок 17. Ресурс GoogleChrome в RAM
Ресурс GoogleChrome в RAM

На рисунке 18 показаны общие сведения о ресурсе GoogleChrome.

Рисунок 18. Общие сведения о ресурсе GoogleChrome в RAM
Общие сведения о ресурсе GoogleChrome в RAM

Обратите внимание на уникальный идентификатор RAM: 07356E0D-3868-1709-0F95-AD9FF0355FF4 и версию: 1.0.0. Они используются во второй части в качестве примера того, как записать новой образ.

Рисунок 19. Содержание ресурса GoogleChrome в RAM
Содержание ресурса GoogleChrome в RAM

Обновление пакетов ПО

Нажмите кнопку Content, чтобы отредактировать сценарий, например, installgooglechrome.sh, непосредственно в RAM.

Рисунок 20. Сценарий installgooglechrome.sh во вкладке Asset
Сценарий installgooglechrome.sh во вкладке Asset

Затем войдите в виртуальную машину ICCT, найдите те же сохраненные в буфере сценарии и внести соответствующие изменения в виртуальную машину ICCT.

Например, если вы изменили installgooglechrome.sh прямо в RAM, найдите его в виртуальной машине ICCT:

idcuser@vhost4244:/> cd /drouter
idcuser@vhost4244:/drouter> find . -name installgooglechrome*
./ramdisk2/mnt/raid-volume/raid0/local/images/789d525e-ad75-4cc1-a25b-360534713d8c
 /artifacts/com.google.chrome_1.0.0/imageBuild/newstep/installgooglechrome.sh
./ramdisk2/mnt/raid-volume/raid0/uploads/be7aa215-f0ab-4d98-8acc-7dc427ee4877
 /installgooglechrome.sh

Отредактируйте файл и внесите те же изменения, что и в RAM.

Заключение

В этой статье мы на простом примере показали, как создавать и поддерживать пакеты программного обеспечения с помощью ICCT в IBM SmartCloud Enterprise. Во второй части мы покажем, как построить образ с тем же пакетом ПО с помощью ICCT.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=31281