Эта статья демонстрирует, как поддерживать пакеты программного обеспечения в среде IBM SmartCloud Enterprise. На конкретном примере описаны действия, необходимые для записи нового частного образа с предварительно установленным пакетом ПО и его использования на виртуальной машине Linux® . Предполагается, что читатель знаком с идеями облачных вычислений. Для того чтобы повторить действия, описанные в этой статье, необходима учетная запись пользователя IBM SmartCloud Enterprise.
Из Части 1 вы узнали, как создавать пакеты программ для виртуальных машин в среде IBM SmartCloud Enterprise. Теперь воспользуемся таким пакетом для создания специального образа. Итак, приступим.
- Войдите в пользовательский интерфейс ICCT и выберите Images > Build Images. Или можно вернуться к странице приветствия и нажать кнопку Build and Manage Images.
Рисунок 1. Создание образов в ICCT
- Нажмите кнопку Import from Cloud Provider (импорт от поставщика облака).
- Выберите RedHat Enterprise Linux 6 64-bit на левой панели и нажмите кнопку Add, чтобы добавить эту ОС в окно импорта. Нажмите кнопку Import.
Рисунок 2. Импорт образа RedHat Enterprise Linux 6 64-bit
-
Метаданные образа импортируются и перечисляются в окне левой панели. Выберите образ, чтобы увидеть его детали в окне правой панели.
Рисунок 3. Подробная информация по RedHat Enterprise Linux 6 64-bit
- Нажмите кнопку Extend на правой панели, введите данные и нажмите кнопку Create. На левой панели откроется новый проект образа.
Рисунок 4. Расширение образа
- На правой панели нажмите кнопку Start Editing (начать редактирование). Появится сообщение о состоянии образа "Out of Sync" (Синхронизация отсутствует). Разверните раздел Software Bundles, чтобы добавить пакет ПО Google Chrome, созданный в Части 1.
Рисунок 5. Обновление пакетов ПО
- Нажмите кнопку Add Bundle (Добавить пакет). Появится диалоговое окно, позволяющее выбирать пакеты, совместимые с этим образом. Google Chrome входит в список.
Рисунок 6. Добавление в образ пакета программного обеспечения Google Chrome
-
Выберите Google Chrome и нажмите кнопку Add (Добавить).
Рисунок 7. GoogleChrome добавил проект в образ
- Нажмите кнопки Save, Done Editing и Synchronize. Появится страница соглашения. Обратите внимание на локальный пакет Enablement, который ICCT добавляет по умолчанию. Нажмите кнопку I agree (Я согласен) и Done (Готово).
Рисунок 8. Синхронизация образа
-
ICCT вызывает API SmartCloud для инициализации базового образа. После создания экземпляра ICCT загружает и устанавливает пакеты ПО. Зайдите в SmartCloud Portal, чтобы увидеть их экземпляры. В SmartCloud Portal видны запрашиваемые временные экземпляры (см. имя с уникальным ID рядом с именем образа RHEL6WithGoogleChrome), а затем экземпляры в состоянии инициализации. Возможно, после инициализации экземпляра придется обновить панель управления, чтобы увидеть пакет ПО в списке.
Рисунок 9. Инициализация экземпляра в SmartCloud после синхронизации
- Когда временный экземпляр создан, он переходит в состояние Active на портале SmartCloud.
Рисунок 10. Инициализированный экземпляр в SmartCloud после синхронизации
- Когда экземпляр активен, ICCT начинает установку пакетов программного обеспечения. Можно вернуться в GUI ICCT и нажать кнопку Refresh (Обновить), относящуюся к образу. Статус образа показывает Synchronizing (Синхронизация), а ниже описание: Installing execution package on VM (Установка исполняемого пакета на ВМ).
Рисунок 11. Обновление статуса образа в инструменте Image Construction and Composition
Рисунок 12. Неудачная синхронизация в ICCT
В случае ошибки войдите во временный экземпляр, найдите и исправьте ошибку в сценариях RAM и ICCT и снова нажмите кнопку Synchronize. ICCT удалит старый временный экземпляр и создаст новый.
Рисунок 13. Успешная синхронизация в ICCT
Когда ICCT заканчивает установку пакетов, статус образа меняется на Synchronized. Можно войти в экземпляр и убедиться, что Google Chrome установлен. Проверьте IP-адрес временного экземпляра в SmartCloud Portal с помощью ${SmartCloud_VM}, чтобы можно было войти в экземпляр через SSH как idcuser.
Проверка работоспособности Google Chrome
Чтобы убедиться, что Google Chrome работает в этом временном экземпляре, выполните следующие действия.
- Запустите 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
- Для доступа к рабочим столам требуется пароль.
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
- Выполните команды
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
Закройте Google Chrome. Внесите любые дальнейшие ручные изменения, которые необходимо сохранить в экземпляре, и выйдите из него.
Теперь, когда временный экземпляр работает надлежащим образом, запишите его как образ, чтобы больше не переустанавливать Google Chrome.
- Нажмите кнопку Capture в ICCT. Образ перейдет в состояние синхронизации в ICCT GUI.
Рисунок 15. Создание образа в ICCT с помощью команды Capture
- На вкладке Instance временного экземпляра в SmartCloud Portal появляется уведомление о сохранении образа.
Рисунок 16. Уведомление о сохранении образа
Это означает начало записи нового частного образа с предварительно установленным Google Chrome.
- На вкладке Image в SmartCloud Portal новый частный образ RHEL6WithGoogleChrome находится в состоянии записи.
Рисунок 17. Запись образа в SmartCloud
Когда новый образ записан, можно создать новый экземпляр записанного образа прямо из SmartCloud Portal. ICCT автоматически удаляет временный экземпляр.
- Когда образ перейдет в состояние Captured, обновите панель управления, вернитесь на вкладку Images и выберите записанный образ, чтобы увидеть пакеты программного обеспечения этого образа. Пакеты ПО обновляются, когда ICCT обновляет файл Semantic Topology ресурса образа RAM после успешной записи образа.
Рисунок 18. Образ в SmartCloud
Теперь образ с предварительно установленным Google Chrome доступен для создания новых экземпляров.
-
Если нажать кнопку Refresh в ICCT, статус образа должен смениться на Capture Complete (Запись завершена).
Рисунок 19. Статус "Запись завершена" в ICCT
-
с деталями образа RHEL6WithGoogleChrome можно ознакомиться в RAM (ресурс Template Topology).
Рисунок 20. Обычные детали ресурса Template Topology в RAM
-
В файле топологии 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>
- В листинге 2 показано, как воспользоваться API REST для извлечения списка SwBundles для записанного образа.
Листинг 2. Извлечение списка SwBundles с помощью API RESTcurl -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"} ] }
Чтобы использовать образ для создания экземпляра, выполните следующие действия.
- Подключитесь к SmartCloud Portal. Выберите образ на вкладке Image и нажмите кнопку Create Create (Создать экземпляр).
Рисунок 22. Создание экземпляра в SmartCloud
Рисунок 23. Принятие условий соглашения
- Обратите внимание на имя образа и пакет ПО на странице соглашения. Нажмите кнопку Submit (Отправить).
Рисунок 24. Отправка запроса на экземпляр в SmartCloud
- Когда экземпляр инициализирован, можно проверить, что Google Chrome работает, точно так же, как во временном экземпляре (см. выше). Если вы не закрыли браузер перед записью, то возможно, придется удалить /home/idcuser/.config/google-chrome/SingletonLock.
Рисунок 25. Успешное создание экземпляра в 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.
- Оригинал статьи: IBM SmartCloud Enterprise management, Part 2: Use and maintain software bundles with ICCT.
-
Вот некоторые ресурсы для расширения знаний, усвоенных из этой статьи.
- В этом документе объясняется, как ICCT помогает пользователям создавать виртуальные образы для развертывания в облачных решениях.
- Эксперт по WebSphere, облачным вычислениям и ICCT Дастин Амрхайн рассказывает об использовании комплектов программного обеспечения в ICCT. Он объясняет также, как создать систему для построения специальных облачных виртуальных образов.
- Тони Баркер рассказывает, что нужно знать для заполнения вкладки Requirements комплектов программного обеспечения в ICCT.
- Эта заметка в блоге представляет собой сборник полезных сведений по ICCT.
- Портал developerWorks содержит много информации по использованию ICCT; их можно искать по ключевому слову icct с наших страниц или воспользоваться следующим готовым списком.
Алексей Карве (Alexei Karve) работает старшим инженером-программистом в Научно-исследовательском центре IBM им. Томаса Дж. Уотсона. Член проектной группы SmartCloud Enterprise, специализирующейся на пакетах ПО и VPN/VLAN для облачных систем поддержки бизнеса. Имеет богатый опыт работы в области служб оперативной поддержки, виртуализации и Tivoli Provisioning Manager. Работая в IBM с 1993 года, занимался самой разнообразной деятельностью в области системного управления.

Алекс Эймис (Alex Amies) работает старшим инженером-программистом в IBM GTS Development Lab в Китае. В настоящее время занимается архитектурой IBM SmartCloud Enterprise. Ранее работал архитектором и разработчиком продуктов на основе облака и средств безопасности в других подразделениях 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.
Хидаятула Шейх (Hidayatullah H. Shaikh) является ведущим инженером-программистом в IBM T.J. Watson Research Center's On-Demand Architecture and Development Team. В область его интересов входят моделирование и интеграция бизнес-процессов, ориентированная на службы архитектура, сетевые вычисления, электронная коммерция, enterprise Java, системы управления базами данных и кластеры повышенной готовности. Вы можете связаться с Хидаятулой по адресу hshaikh@us.ibm.com.
Цян Го Тон (Qiang Guo Tong) работает в IBM с 2004 года. Один из руководителей группы разработки IBM SmartCloud Enterprise, ответственный за создание новых функций. Также является архитектором решения для упрощения глобализации SmartCloud. Обладает опытом работы в сфере глобализации технологий JavaEE. Более 8 лет занимается разработкой Web-приложений на основе архитектуры JavaEE и специализируется на технологиях Web 2.0, таких как Dojo и JSON-RPC.