Управление IBM SmartCloud Enterprise: Часть 2. Применение и поддержка пакетов программного обеспечения с ICCT

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

Алексей Карве, научный сотрудник, IBM

Алексей Карве (Alexei Karve) работает старшим инженером-программистом в Научно-исследовательском центре IBM им. Томаса Дж. Уотсона. Член проектной группы SmartCloud Enterprise, специализирующейся на пакетах ПО и VPN/VLAN для облачных систем поддержки бизнеса. Имеет богатый опыт работы в области служб оперативной поддержки, виртуализации и Tivoli Provisioning Manager. Работая в IBM с 1993 года, занимался самой разнообразной деятельностью в области системного управления.



Алекс Эймис, старший инженер-программист, IBM

Фото Алекса ЭймисаАлекс Эймис (Alex Amies) работает старшим инженером-программистом в IBM GTS Development Lab в Китае. В настоящее время занимается архитектурой IBM SmartCloud Enterprise. Ранее работал архитектором и разработчиком продуктов на основе облака и средств безопасности в других подразделениях IBM.



Скотт Педдл, программист-консультант, IBM

Фото Скотта ПеддлаСкотт Педдл (Scott Peddle) работает программистом-консультантом по IBM SmartCloud Enterprise. Возглавляет проекты, относящиеся к интеграции Rational Asset Manager в облачной среде. Руководил проектом по интеграции инструментов WebSphere BPM, таких как WebSphere Business Modeler и WebSphere Integration Developer, с применением Rational Asset Manager. Также был выпускающим инженером продуктов Rational для проектирования и сборки, таких как Rational Software Architect и Rational Application Developer.



Хидаятула Шейх, Ведущий инженер-программист, IBM

Хидаятула Шейх (Hidayatullah H. Shaikh) является ведущим инженером-программистом в IBM T.J. Watson Research Center's On-Demand Architecture and Development Team. В область его интересов входят моделирование и интеграция бизнес-процессов, ориентированная на службы архитектура, сетевые вычисления, электронная коммерция, enterprise Java, системы управления базами данных и кластеры повышенной готовности. Вы можете связаться с Хидаятулой по адресу hshaikh@us.ibm.com.



Цян Го Тон, консультирующий инженер-программист, IBM

Цян Го Тон (Qiang Guo Tong) работает в IBM с 2004 года. Один из руководителей группы разработки IBM SmartCloud Enterprise, ответственный за создание новых функций. Также является архитектором решения для упрощения глобализации SmartCloud. Обладает опытом работы в сфере глобализации технологий JavaEE. Более 8 лет занимается разработкой Web-приложений на основе архитектуры JavaEE и специализируется на технологиях Web 2.0, таких как Dojo и JSON-RPC.



Пань Ся Цзоу, штатный инженер-программист, IBM

Штатный инженер-программист IBM Пань Ся Цзоу (Pan Xia Zou) работает архитектором по проектированию и внедрению систем автоматизации на базе IBM SmartCloud Enterprise.



19.11.2012

Эта статья демонстрирует, как поддерживать пакеты программного обеспечения в среде IBM SmartCloud Enterprise. На конкретном примере описаны действия, необходимые для записи нового частного образа с предварительно установленным пакетом ПО и его использования на виртуальной машине Linux® . Предполагается, что читатель знаком с идеями облачных вычислений. Для того чтобы повторить действия, описанные в этой статье, необходима учетная запись пользователя IBM SmartCloud Enterprise.

Из Части 1 вы узнали, как создавать пакеты программ для виртуальных машин в среде IBM SmartCloud Enterprise. Теперь воспользуемся таким пакетом для создания специального образа. Итак, приступим.

Создание специального образа

  1. Войдите в пользовательский интерфейс ICCT и выберите Images > Build Images. Или можно вернуться к странице приветствия и нажать кнопку Build and Manage Images.
    Рисунок 1. Создание образов в ICCT
    Создание образов в ICCT
  2. Нажмите кнопку Import from Cloud Provider (импорт от поставщика облака).
  3. Выберите RedHat Enterprise Linux 6 64-bit на левой панели и нажмите кнопку Add, чтобы добавить эту ОС в окно импорта. Нажмите кнопку Import.
    Рисунок 2. Импорт образа RedHat Enterprise Linux 6 64-bit
    Импорт образа RedHat Enterprise Linux 6 64-bit
  4. Метаданные образа импортируются и перечисляются в окне левой панели. Выберите образ, чтобы увидеть его детали в окне правой панели.
    Рисунок 3. Подробная информация по RedHat Enterprise Linux 6 64-bit
    Подробная информация по RedHat Enterprise Linux 6 64-bit
  5. Нажмите кнопку Extend на правой панели, введите данные и нажмите кнопку Create. На левой панели откроется новый проект образа.
    Рисунок 4. Расширение образа
    Расширение образа
  6. На правой панели нажмите кнопку Start Editing (начать редактирование). Появится сообщение о состоянии образа "Out of Sync" (Синхронизация отсутствует). Разверните раздел Software Bundles, чтобы добавить пакет ПО Google Chrome, созданный в Части 1.
    Рисунок 5. Обновление пакетов ПО
    Обновление пакетов ПО
  7. Нажмите кнопку Add Bundle (Добавить пакет). Появится диалоговое окно, позволяющее выбирать пакеты, совместимые с этим образом. Google Chrome входит в список.
    Рисунок 6. Добавление в образ пакета программного обеспечения Google Chrome
    Добавление в образ пакета программного обеспечения Google Chrome
  8. Выберите Google Chrome и нажмите кнопку Add (Добавить).
    Рисунок 7. GoogleChrome добавил проект в образ
    GoogleChrome добавил проект в образ
  9. Нажмите кнопки Save, Done Editing и Synchronize. Появится страница соглашения. Обратите внимание на локальный пакет Enablement, который ICCT добавляет по умолчанию. Нажмите кнопку I agree (Я согласен) и Done (Готово).
    Рисунок 8. Синхронизация образа
    Синхронизация образа
  10. ICCT вызывает API SmartCloud для инициализации базового образа. После создания экземпляра ICCT загружает и устанавливает пакеты ПО. Зайдите в SmartCloud Portal, чтобы увидеть их экземпляры. В SmartCloud Portal видны запрашиваемые временные экземпляры (см. имя с уникальным ID рядом с именем образа RHEL6WithGoogleChrome), а затем экземпляры в состоянии инициализации. Возможно, после инициализации экземпляра придется обновить панель управления, чтобы увидеть пакет ПО в списке.
    Рисунок 9. Инициализация экземпляра в SmartCloud после синхронизации
    Инициализация экземпляра в SmartCloud после синхронизации
  11. Когда временный экземпляр создан, он переходит в состояние Active на портале SmartCloud.
    Рисунок 10. Инициализированный экземпляр в SmartCloud после синхронизации
    Инициализированный экземпляр в SmartCloud после синхронизации
  12. Когда экземпляр активен, ICCT начинает установку пакетов программного обеспечения. Можно вернуться в GUI ICCT и нажать кнопку Refresh (Обновить), относящуюся к образу. Статус образа показывает Synchronizing (Синхронизация), а ниже описание: Installing execution package on VM (Установка исполняемого пакета на ВМ).
    Рисунок 11. Обновление статуса образа в инструменте Image Construction and Composition
    Обновление статуса образа в инструменте Image Construction and Composition
    Рисунок 12. Неудачная синхронизация в ICCT
    Неудачная синхронизация в ICCT

    В случае ошибки войдите во временный экземпляр, найдите и исправьте ошибку в сценариях RAM и ICCT и снова нажмите кнопку Synchronize. ICCT удалит старый временный экземпляр и создаст новый.

    Рисунок 13. Успешная синхронизация в ICCT
    Успешная синхронизация в ICCT

Когда ICCT заканчивает установку пакетов, статус образа меняется на Synchronized. Можно войти в экземпляр и убедиться, что Google Chrome установлен. Проверьте IP-адрес временного экземпляра в SmartCloud Portal с помощью ${SmartCloud_VM}, чтобы можно было войти в экземпляр через SSH как idcuser.


Проверка работоспособности Google Chrome

Чтобы убедиться, что Google Chrome работает в этом временном экземпляре, выполните следующие действия.

  1. Запустите vncserver в экземпляре и откройте порт 5901, подключитесь через vncviewer и запустите Google Chrome. В инструкциях используйте свой IP-адрес, а не тот, что показан в примере.
    ssh idcuser@${SmartCloud_VM}
    Last login: Fri Mar  2 14:43:35 2012 from vhost4244.site2.compute.ihost.com
    [idcuser@vhost0134 ~]$ vncserver -geometry 1280x1024 -depth 16
  2. Для доступа к рабочим столам требуется пароль.
    Password:
    Verify:
    xauth:  creating new authority file /home/idcuser/.Xauthority
    
    New 'vhost0134:1 (idcuser)' desktop is vhost0134:1
    
    Creating default startup script /home/idcuser/.vnc/xstartup
    Starting applications specified in /home/idcuser/.vnc/xstartup
    Log file is /home/idcuser/.vnc/vhost0134:1.log
    
    [idcuser@vhost0134 ~]$ sudo iptables -I INPUT -m state --state NEW -p
     tcp --destination-port 5901 -j ACCEPT
  3. Выполните команды vncviewer ${SmartCloud_VM}:1 и start /opt/google/chrome/google-chrome, чтобы проверить, что он работает.

В целях безопасности, вместо процесса, приведенного выше, можно запустить VNC через SSH-туннель, например, так:

ssh -i ~/.ssh/key_name -L 5901:${SmartCloud_VM}:5901 idcuser@${SmartCloud_VM}

Затем выполните команды vncviewer localhost:1 и start /opt/google/chrome/google-chrome, чтобы убедиться, что все работает.

Рисунок 14. Запуск Chrome в экземпляре SmartCloud
Запуск Chrome в экземпляре SmartCloud

Закройте Google Chrome. Внесите любые дальнейшие ручные изменения, которые необходимо сохранить в экземпляре, и выйдите из него.


Запись образа

Теперь, когда временный экземпляр работает надлежащим образом, запишите его как образ, чтобы больше не переустанавливать Google Chrome.

  1. Нажмите кнопку Capture в ICCT. Образ перейдет в состояние синхронизации в ICCT GUI.
    Рисунок 15. Создание образа в ICCT с помощью команды Capture
    Создание образа в ICCT с помощью команды Capture
  2. На вкладке Instance временного экземпляра в SmartCloud Portal появляется уведомление о сохранении образа.
    Рисунок 16. Уведомление о сохранении образа
    Уведомление о сохранении образа

    Это означает начало записи нового частного образа с предварительно установленным Google Chrome.

  3. На вкладке Image в SmartCloud Portal новый частный образ RHEL6WithGoogleChrome находится в состоянии записи.
    Рисунок 17. Запись образа в SmartCloud
    Запись образа в SmartCloud

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

  4. Когда образ перейдет в состояние Captured, обновите панель управления, вернитесь на вкладку Images и выберите записанный образ, чтобы увидеть пакеты программного обеспечения этого образа. Пакеты ПО обновляются, когда ICCT обновляет файл Semantic Topology ресурса образа RAM после успешной записи образа.
    Рисунок 18. Образ в SmartCloud
    Образ в SmartCloud

    Теперь образ с предварительно установленным Google Chrome доступен для создания новых экземпляров.

  5. Если нажать кнопку Refresh в ICCT, статус образа должен смениться на Capture Complete (Запись завершена).
    Рисунок 19. Статус "Запись завершена" в ICCT
    Статус Запись завершена в ICCT
  6. с деталями образа RHEL6WithGoogleChrome можно ознакомиться в RAM (ресурс Template Topology).
    Рисунок 20. Обычные детали ресурса Template Topology в RAM
    Обычные детали ресурса Template Topology в RAM
  7. В файле топологии Rhel6.1_x64.topology можно заметить ссылку на ресурс GoogleChrome SoftwareBundle с указанием UUID и версии RAM (см. рисунок 21 и листинг 1).
    Рисунок 21. Файл семантической топологии ресурса
    Файл семантической топологии ресурса
    Листинг 1. Файл семантической топологии ресурса
    <core:unit uuid="_z79cOWSIEeG4Dsea31AM7A" name="bundle_455977"
     goalInstallState="installed" initInstallState="installed">
        <core:capability uuid="_z79cOmSIEeG4Dsea31AM7A" name="cap" linkType="any">
          <core:extendedAttribute uuid="_dZzakWSpEeG4Dsea31AM7A" name="symbolicName">
            <core:data xsi:type="xsd:string" uuid="_z79cO2SIEeG4Dsea31AM7A">
             <strong>com.google.chrome</strong>
            </core:data>
          </core:extendedAttribute>
          <core:extendedAttribute uuid="_dZzakmSpEeG4Dsea31AM7A" name="version">
            <core:data xsi:type="xsd:string" uuid="_z79cPGSIEeG4Dsea31AM7A">
             1.0.0
            </core:data>
          </core:extendedAttribute>
          <core:extendedAttribute uuid="_dZzak2SpEeG4Dsea31AM7A" name="bundleName">
            <core:data xsi:type="xsd:string" uuid="_z79cPWSIEeG4Dsea31AM7A">
             <strong>GoogleChrome</strong>
            </core:data>
          </core:extendedAttribute>
          <core:extendedAttribute uuid="_dZzalGSpEeG4Dsea31AM7A" name="bundleRepoId">
            <core:data xsi:type="xsd:string" uuid="_z79cPmSIEeG4Dsea31AM7A">
             <strong>ryo-asset://07356E0D-3868-1709-0F95-AD9FF0355FF4_1.0.0@
             https://www-147.ibm.com/cloud/enterprise/ram.ws</strong>
            </core:data>
          </core:extendedAttribute>
        </core:capability>
  8. В листинге 2 показано, как воспользоваться API REST для извлечения списка SwBundles для записанного образа.
    Листинг 2. Извлечение списка SwBundles с помощью API REST
    curl -k -H 'Accept: application/json' -u <userid7gt;:<password>
     https://www-147.ibm.com/computecloud/enterprise/api/rest/20100331/
      offerings/image/${imageId}/swbundle
    where imageId is  20045166
    
    {"SwBundleImageDetails":
     [
      {"SwBundleNum":1,"SwBundlePricingDetails":
      {"rate":0,"unitOfMeasure":"UHR","countryCode":"897","effectiveDate":1313107200000,
       "currencyCode":"USD","pricePerQuantity":1},
      "RamUuid":"07356E0D-3868-1709-0F95-AD9FF0355FF4",
      "RamVersion":"1.0.0","name":"GoogleChrome","id":"2909","description":
      "Install Latest Google Chrome using yum"}
     ]
    }

Создание экземпляра

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

  1. Подключитесь к SmartCloud Portal. Выберите образ на вкладке Image и нажмите кнопку Create Create (Создать экземпляр).
    Рисунок 22. Создание экземпляра в SmartCloud
    Создание экземпляра в SmartCloud
    Рисунок 23. Принятие условий соглашения
    Принятие условий соглашения
  2. Обратите внимание на имя образа и пакет ПО на странице соглашения. Нажмите кнопку Submit (Отправить).
    Рисунок 24. Отправка запроса на экземпляр в SmartCloud
    Отправка запроса на экземпляр в SmartCloud
  3. Когда экземпляр инициализирован, можно проверить, что Google Chrome работает, точно так же, как во временном экземпляре (см. выше). Если вы не закрыли браузер перед записью, то возможно, придется удалить /home/idcuser/.config/google-chrome/SingletonLock.
    Рисунок 25. Успешное создание экземпляра в SmartCloud
    Успешное создание экземпляра в SmartCloud

Последние замечания

Специалист по программному обеспечению должен гарантировать, что в первой строке bash-сценария указано местоположение интерпретатора bash в виде #!/bin/bash. Механизму Virtual System Activation Engine (VSAE), который запускает выполнение сценариев конфигурации и сброса, нужно указать местоположение интерпретатора, иначе сценарии не выполнятся.

Если нужно написать сценарии на платформах Windows, то до загрузки этих сценариев в ICCT их необходимо обработать dos2unix или аналогичным инструментом.

Во время создания виртуального образа ICCT загружает и устанавливает пакет программного обеспечения в экземпляре. Во время инициализации SmartCloud не копирует ресурс RAM Composable Software Bundle в экземпляр автоматически; однако SmartCloud позволяет копировать в экземпляр файлы из ресурса Template Topology (образа), так что возможна дополнительная ручная настройка путем обновления ресурса образа Template Topology RAM.

Образ Google Chrome не требует никакой дополнительной настройки. Однако если вы хотите внести незначительные изменения в экземпляр во время инициализации без использования ICCT для перезаписи нового образа, можно создать клон этого образа или обновить ресурс Template Topology записанного образа.

Все сценарии активации ресурса Template Topology должны быть упакованы в папку activation_scripts русурса в каталоге ресурсов IBM Rational. Эта папка должна также содержать файл scripts.txt с описанием дополнительных файлов, необходимых для создания экземпляра, и их местоположения. Файл scripts.txt определяет пары имен и значений для сценариев активации. Имя ― это фактическое имя файла, с которым вы работаете, а значение ― полный путь и имя файла, который должен присутствовать в экземпляре. Следующий пример демонстрирует файл scripts.txt для образа сервера Linux NFS.

run_once.txt=/etc/init.d/cloud-startup3.sh
config.txt=/etc/cloud/nfs_config.pl

Файлы сценариев в папке activation_scripts и ссылки на них в scripts.txt копируются в указанные каталоги экземпляра до его запуска. Если какой-либо из файлов сценария уже существует в файловой системе вашего образа, он будет заменен тем, который находится в каталоге русурсов IBM Rational.


Заключение

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

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, Rational
ArticleID=846355
ArticleTitle=Управление IBM SmartCloud Enterprise: Часть 2. Применение и поддержка пакетов программного обеспечения с ICCT
publish-date=11192012