Информационные технологии становятся неотъемлемой частью продуктов и услуг нового стиля IT, в котором бизнес ожидает получить запрошенные ресурсы под новые приложения почти мгновенно. IT ресурсы, в парадигме новых требований со стороны современных приложений, должны автоматически выделяться, использоваться, возвращаться и повторно использоваться из общего пула узлов вычислений, хранения, и сети.
Такая инфраструктура может иметь различные типы аппаратных платформ, абстрагированные под единой системой управления. Этот подход называется «инфраструктура как код» (infrastructure-as-code). Видение компании Hewlett Packard Enterprise это движение к Composable (Составляемая) Инфраструктуре — гибкому пулу ресурсов, из которого, под управлением менеджера HPE OneView с помощью шаблонов и API, происходит развертывание, обслуживание и контроль приложений.
Чтобы реализовать концепцию Composable Инфраструктуры и автоматизировать развертывания сред для бизнес-приложений, HPE объединил свои наработки с известным разработчиком ПО для управления конфигурациями приложений CHEF Software.
CHEF (Шэф) — система управления конфигурациями, написанная на Ruby и Erlang, с использованием предметно-ориентированного языка для описания конфигураций. Используется для упрощения задач настройки и поддержки множества серверов и может интегрироваться в облачные платформы для автоматизации управления текущими и автоматизации процесса настройки новых серверов.
Пользователь CHEF создаёт определенные «рецепты» с описанием того, как управлять серверными приложениями (например, Apache, MySQL или Hadoop) и их настроек.
«Рецепт» — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы. CHEF проверяет, что каждый из ресурсов системы настроен правильно и пытается исправить состояние ресурса, если оно не соответствует ожидаемому.
«Рецепты» используются как для управления Linux-узлами, так и Windows (в последних релизах)
Драйвер развертывания CHEF для HPE OneView, позволяет IT администраторам использовать «рецепты» CHEF, чтобы автоматизировать процесс физического развертывания как физической среды, включая серверы, сетевые соединения, хранение, так и развертывание операционных систем и приложений. Такая интеграция увеличивает скорость отдачи для бизнеса и повышает надежность развертывания, благодаря автоматизации всех шагов.
Рис.1 — Схема взаимодействия драйвера CHEF с HPE OneView
Чтобы создать быструю и эффективную IT инфраструктуру организация должна трансформировать традиционные физические системы в гибкие пулы физических и виртуальных ресурсов.
По мере такой трансформации организация часто сталкивается со сложностями в автоматизации развертывания «bare metal» физического оборудования. Развертывание всегда сложный процесс. Он требует установки и подготовки аппаратного обеспечения, подключений, ОС и стека приложений на подходящем для этой задачи оборудовании. Эти процессы часто требуют ручного управления и мониторинга, что занимает много времени и может приводить к появлению ошибок.
Вот тут и появляется идея Composable инфраструктуры. В такой инфраструктуре есть гибкий пул вычислителей, хранения и сети, ресурсы в нем выделяются, увеличиваются, уменьшаются, повторно используются динамически, используя программно-определяемый подход. В портфеле решений Hewlett Packard Enterprise все продукты серверов, систем хранения и сетей передачи данных специально разрабатывались для встраивания в такую программно-определяемой инфраструктуру.
Например, каждый сервер оснащен чипом iLO, что позволяет без установки агентов в ОС собирать состояние всех аппаратных компонент и настроить взаимодействие с сервером. Системы хранения и сетевые устройства в портфеле решений Hewlett Packard Enterprise понимают открытый стандарт API RESTful. Оставалось создать продукт, который был бы способен объединить все наработки в аппаратной части портфеля и создать полноценный оркестратор, который сможет управлять всей инфраструктурой ЦОДа. Таким продуктов стал OneView, выпущенный в октябре 2013 года.
HPE OneView
Рис.2 — Окружающая среда HPE OneView
HPE OneView — программный продукт полного цикла управления современного ЦОД: использует коннекторы для управления сетью, серверами и системами хранения, построенных на продуктах Hewlett Packard Enterprise, Brocade, некоторыми коммутаторами Cisco, интегрируется во все известные гипервизоры и может обращаться к ним для развертывания виртуальных сред.
Поставляется в виде образа виртуальной машины Vmware или Hyper-v и может быть развернут на любом оборудовании с поддержкой этих гипервизоров. HPE OneView имеет понятный и простой в освоении интерфейс, который можно адаптировать под определенные группы администраторов, добавляя или убирая компоненты в графической консоли. Помимо этого, HPE OneView может интегрироваться с инфраструктурой ЦОДа — UPS, PDU (Schneider Electric, Eaton и др.), стойками, позволяя получить трехмерную картину того, что происходит в серверных залах и управлять перемещением приложений или виртуальных машин, основываясь на полученных данных.
Рис.3 — Температурная карта ЦОД в OneView
Администратор может построить карту взаимодействия устройств в интерфейсе OneView:
Рис.4 — Связи элементов серверной архитектуры
HPE OneView заменяет целиком 5 предшествующих продуктов управления серверной инфраструктурой: HP SIM, Insight Control, Onboard Administrator, VCM, HPSUM.
В версии 2.0 HPE OneView расширил свои возможности — появился функционал миграции профилей (настроек IP, WWN, MAC адресов и других параметров) сервера с одного блейд-отсека на другой, как между отсеками с одинаковыми блейд-серверами (те же типы процессоров, памяти, сетевых адаптеров), так и между отсеками с разными поколениями блейд-серверов с разными поколениями CPU, типом LAN и FC адаптеров. Причем, такая миграция возможна теперь не только в рамках одной блейд-корзины, но и между несколькими.
Рис.5 — Новые возможности по миграции профилей в OneView 2.0
HPE OneView позволяет администраторам использовать шаблоны и профили для реализации на своем предприятии идеи программно-определяемой архитектуры или инфраструктуры-как-код (infrastructure-as-code).
Шаблоны, поставляемые вместе с OneView, могут легко адаптированы и изменены под различные приложения и исходя из специфики оборудования в каждом конкретном случае.
Эти шаблоны рекомендуется использовать в подходе DevOps потому, что они уменьшают время развертывания инфраструктуры для разработчиков и устраняют рассогласованность между представителями департамента IT, позволяя за считанные минуты начать тестировать приложения.
Шаги развёртывания
Для того, чтобы показать возможность автоматизированного развертывания приложений «с нуля», используя возможности OneView и CHEF необходимо выполнить несколько шагов.
Развёртывание физического сервера, используя HPE OneView
Для этого заходим в консоль HPE OneView — Server Profiles — Create Profile. И получаем примерно такое окно:
Рис.6 — Создание профиля в OneView
В этом сценарии имя профиля задается «Web Server Template», заполняются параметры блейд-корзины, блейд-сервера, сетевых подключений, основываясь на конкретных моделях оборудования в вашем ЦОДе.
Нажимаем «Create» и сохраняем профиль. Далее нужно установить драйвер интеграции CHEF и OneView.
Развертывание ОС, используя шаблон в OneView
Загружаем скрипт «chef-settings-Linux» с сайта GitHub. Меняем в скрипте следующие значения:
CHEF_PROXYSERVER: the proxy server address YUM_REPOSITORY_INFO: the yum repository information CHEF_CERT: the SSH certificate information to be copied into the authorization files LOGIN_DISABLED: should be set to YES/yes to disable user login and NO/no if LOGIN using username/password should not be disabled
Этот скрипт необходимо встроить в пакет развертывания ОС — OS Build Plan. Подробнее о создании OS Build Plan тут и тут.
Конфигурация стека приложения, используя Cookbook (поваренная книга) CHEF
Далее создаем поваренную книгу и рецепт в CHEF. Какой главный инструмент шеф-повара? Нож!
Первый файл рецепта будет иметь такое же название, находим его https://github.com/HewlettPackard/chef-provisioning-oneview#prerequisites и заполняем все параметры вашего окружения.
Следующим шагом мы создаем сам рецепт, заменяя параметры приведенного ниже кода на актуальные для вашего окружения:
require 'chef/provisioning' with_driver 'oneview' with_chef_server "<a href="https://my-chef.my-domain.com/organizations/my-org">https://my-chef.my-domain.com/organizations/my-org</a>", :client_name => Chef::Config[:node_name], :signing_key_filename => Chef::Config[:client_key] machine 'web01' do recipe 'my_server_cookbook::default' machine_options :driver_options => { :server_template => 'Web Server Template', :os_build => 'CHEF-RHEL-6.5-x64', :host_name => 'chef-web01', :ip_address => 'xx.xx.xx.xx', :domainType => 'workgroup', :domainName => 'sub.domain.com', :mask => '255.255.255.0', :dhcp => false, :gateway => 'xx.xx.xx.1', :dns => 'xx.xx.xx.xx,xx.xx.xx.xx,xx.xx.xx.xx', :connections => { #1 => { ... } (Reserved for PXE on our setup) 2 => { :ip4Address => 'xx.xx.xx.xx', :mask => '255.255.254.0', # Optional :dhcp => false :gateway => 'xx.xx.xx.1' # Optional :dns => 'xx.xx.xx.xx' # Optional } }, :custom_attributes => { :chefCert => 'ssh-rsa AA...' # Optional } }, :transport_options => { :user => 'root', # Optional. Defaults to 'root' :ssh_options => { :password => Chef::Config.knife[:node_root_password] } }, :convergence_options => { :ssl_verify_mode => :verify_none, # Optional :bootstrap_proxy => '<a href="http://proxy.domain.com:8080/">http://proxy.domain.com:8080</a>' # Optional } chef_environment '_default' converge true end
Развёртываем! Теперь, когда все готово, приступаем к финальной части. CHEF будет использовать созданный рецепт и совместно с драйвером OneView будет проведено полное развертывание web-сервера «с нуля».
В консоли CHEF нужно встать на директорию, содержащую рецепт и выполнить команду:
$ bundle exec chef-client -z путь_к_рецепту.rb
Заглянем в консоль OneView и посмотрим, как происходит развертывание нашего приложения:
Рис.7 — Тихо, идет развертывание!
Когда развертывание будет завершено — проверим, что все компоненты установлены и настроены правильно:
Рис.8 — Проверяем параметры
Теперь переключаемся в консоль CHEF и проверяем, что узел действительно создан с использованием рецепта CHEF:
Рис.9 — CHEF тоже знает об этом узле
Также проверяем, что серверу присвоен серийный номер, на нем сконфигурирован Apache и поднят Apache Webserver, сколько потребовалось времени и какие были сделаны шаги:
Рис.10 — Большинство компонент проинициализированы за секунды!
То, что этот сервер сейчас виден в консоли значит, что он правильно сконфигурирован и посылает информацию о себе. Пришло время убедиться, что приложение действительно работает, для этого обращаемся к Webserver в браузере:
Рис.11 — Webserver жив и готов работать!
Механика развёртывания в HPE OneView состоит из 5 шагов:
1. Мы выбираем совместимое серверное оборудование из пула доступных серверов, управляемых HPE OneView, используя поиск HPE OneView REST API.
2. Создаем новый шаблон профиля сервера, используя HPE OneView REST API и назначаем:
A. Версию прошивки, BIOS, конфигурацию локального хранилища: HPE OneView использует встроенный HP Intelligent Provisioning (IP), окружение Linux для PXE boot, которое уже встроено в iLO baseboard management card (BMC) процессор, SmartStart.
B. Сетевые подключения: HPE OneView использует сетевую платформу virtual connect для динамического представления сетевых подключений для серверов из пула сетевых подключений.
C. Сеть SAN: HPE OneView автоматизирует представление сети SAN для хранилища HPE 3PAR и для коммутаторов Fibre Channel, включая Brocade, Cisco и HPE Networking.
3. Развертывается выбранная ОС как только предоставление физических ресурсов окончено:
A. Серверный профиль сконфигурирован на загрузку установочного образа по сети.
B. Сервер включается и начинается загрузка PXE boot.
C. Драйвер OneView запускает установку ОС, используя HPE OneView REST API (Insight Control server provisioning).
4. Задаются параметры сети
A. IP адреса, подсети, имя хостов, и т.д. для различных сетевых адаптеров и виртуальных сетевых адаптеров, позволяя создавать сложные сетевые конфигурации.
5. CHEF разворачивает стек приложений поверх развернутой ОС
A. Загрузка клиента CHEF на сервер, после этого клиент CHEF регистрируется на сервере CHEF.
B. Запуск клиента CHEF на новом сервере, который подтягивает необходимую «поваренную книгу» с сервера CHEF и применяет рецепт для конфигурации Web сервера.
Видео процесса развертывания:
Как видим — используя рецепты CHEF, совместно с аппаратными и программными продуктами Hewlett Packard Enterprise, можно получить простую, открытую и полностью автоматизированную инфраструктуру-как-код для развертывания приложений. Не бойтесь экспериментировать, только так можно стать настоящим шефом IT кухни!
Для самостоятельного изучения: Ван — Ту — Фри — Фо
Спасибо за внимание!
Автор: Hewlett Packard Enterprise