Я уже писал про то, что Broadcom выпустила утилиту LSA для управления RAID контроллерами LSI в гипервизоре ESXi.
Установка LWA VMware на ESXi 7.0
Утилита работает, но имеет некоторые недоработки:
- исходящие на 25 порт и входящие на 2463 порт закрыты
- после перезагрузки ваши настройки слетают
С портами и Firewall я недавно разобрался, написал свой отдельный VIB пакет:
ESXi 7.0 Firewall — добавляем своё правило
Пакет я назвал fw-lsa. Скачать его можно в Сборке для VMware. Пакет добавляет два правила firewall, которые нужны для работы LSA. Первое правило разрешает нам открывать страничку LSA UI, второе позволяет отправлять уведомления на внешний почтовый сервер.
Осталось разобраться со сбросом настроек после перезагрузки. По сути нам нужно только изменить два файла:
- /opt/lsi/LSIStorageAuthority/conf/monitor/config-current.json
- /opt/lsi/LSIStorageAuthority/conf/monitor/config-default.json
Поехали.
Установка LWA VMware на ESXi 7.0
Для начала установим обычный пакет LWA от Broadcom и проверим что всё работает.
Воспользуемся WinSCP и загрузим vmware-lsa_008.002.016.000-01_20140327.zip на гипервизор в директорию /tmp.
Включаем на гипервизоре службу SSH и логинимся в консоль гипервизора. Гипервизор у меня в Maintenance Mode.
Устанавливаем пакет:
esxcli software component apply -d /tmp/vmware-lsa_008.002.016.000-01_20140327.zip
Пакет установлен, но требуется перезагрузка. Перезагружаем гипервизор.
Проверим на каких портах работает служба:
esxcli network ip connection list | grep LSA
esxcli network ip connection list | grep 2463
Службы поднялись, нас интересует та, что на порту TCP 2463. Отключаем firewall:
esxcli network firewall set --enabled false
Теперь URL на http://адрес_хоста:2463 открывается.
Подготовка файла настроек
Логинимся под пользователем root. Переходим к настройкам почтовых уведомлений:
- Settings → Actions → Alert Delivery
- Settings → Actions → Mail Server
- Settings → Actions → Email
Настраиваем типы уведомлений и методы доставки.
Настраиваем адрес почтового сервера и email отправителя.
Настраиваем адрес получателей уведомлений. Save Settings.
Теперь включаем службу SSH на хосте и смотрим содержимое файла /opt/lsi/LSIStorageAuthority/conf/monitor/config-current.json.
cat /opt/lsi/LSIStorageAuthority/conf/monitor/config-current.json
Вот так легко и просто мы получили файл с нашими новыми настройками, который будем добавлять в наш изменённый пакет. Копируем содержимое... и исправляем кривой JSON код. Разработчики скобку потеряли. Получаем нечто похожее на:
{
"alertConfiguration": {
"properties": {
"global": [
{
"severity": "INFO",
"actions": []
},
{
"severity": "WARNING",
"actions": [
"systemlog",
"email"
]
},
{
"severity": "CRITICAL",
"actions": [
"systemlog",
"email"
]
},
{
"severity": "FATAL",
"actions": [
"email",
"systemlog"
]
},
{
"severity": "FAULT",
"actions": [
"email",
"systemlog",
"systemmessage",
"eventmessage"
]
}
],
"actions": [
{
"authentication": {
"type": "NONE"
},
"isActive": true,
"port": 25,
"host": "10.12.49.22",
"name": "email",
"protocol": "NONE",
"sender": "raid@domain.local",
"type": "EMAIL",
"to": [
"alarm@domain.local"
]
},
{
"isActive": true,
"name": "systemlog",
"type": "SYSTEMLOG"
},
{
"isActive": true,
"name": "systemmessage",
"type": "SYSTEMMESSAGE"
},
{
"isActive": true,
"name": "eventmessage",
"type": "EVENTMESSAGE"
}
],
"events": []
}
}
}
Настройка Firewall
Отвлечёмся немного от сборки нового пакета. Включаем обратно Firewall:
esxcli network firewall set --enabled true
Не дело на боевых серверах отключать защиту. Устанавливаем VIB пакет fw-lsa с правилами LSA для Firewall. Скачать его можно в Сборке для VMware.
ESXi 7.0 Firewall — добавляем своё правило
Копируем ZIP пакет на хост в папку /tmp.
Запускаем службу SSH на хосте, коннектимся. Проверяем содержимое папки tmp.
ZIP файл присутствует. Разрешаем установку программ и драйверов со сторонними сертификатами. Для этого перед установкой выполняем команду:
esxcli software acceptance set --level=CommunitySupported
Устанавливаем пакет:
esxcli software vib install -d /tmp/fw-lsa-1.0-2-offline_bundle.zip
Пакет установлен. В списке установленных VIB пакетов имеется наш новый пакет.
esxcli software vib list | grep lsa
Configure → System → Firewall → Edit. У нас появились два новых правила:
- LSA Mail
- LSA UI
Включаем их галками. OK.
Входящее на TCP 2463:
Исходящее на TCP 25:
Больше нам пакет LSA не нужен, удаляем его:
esxcli software vib remove -n BMC-vmware-sla
Перезагружаем хост.
Распаковываем VIB файл
Чтобы собрать свой пакет, нужно сначала разобрать пакет от Broadcom.
Для распаковки будем пользоваться стандартными инструментами Linux. Дополнительно нам понадобится утилита VMware с именем vmtar. Её можно скачать из любого гипервизора ESXi, для которого предназначен VIB пакет. Я взял из /sbin/vmtar гипервизора ESXi 7.0. Добавил с Сборку для системного администратора.
Имеем:
- BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib — VIB пакет, который нужно распаковать.
- vmtar — утилита VMware
Распакуем BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib:
ar x BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib
Получаем три файла:
- lsa — архив с содержимым пакета
- descriptor.xml — XML файл с перечислением всех файлов пакета и дополнительной информацией о пакете.
- sig.pkcs7 — цифровая подпись
Нас интересует файл с архивам, в данном случае он называется lsa. Для его распаковки архива нам понадобится утилита vmtar. В результате получим TAR файл:
./vmtar -v -x lsa -o lsa.tar
Получили файл:
- lsa.tar
Распаковываем его:
tar -xvf lsa.tar
Распаковалось прямо в текущую папку. Можно было сделать аккуратнее. В любом случае, мы получили то что хотели.
А именно нам нужны папки:
- /etc/*
- /opt/*
Собираем VIB пакет
Сначала внесём изменения в файлы:
- /opt/lsi/LSIStorageAuthority/conf/monitor/config-current.json
- /opt/lsi/LSIStorageAuthority/conf/monitor/config-default.json
Сохраняем туда полученный нами ранее JSON файл с конфигурацией настроек почтовых уведомлений.
Для сборки нам понадобится пакет:
ESXi Community Packaging Tools 2.4
Создаём TGZ файл. Переходим в корневую папку проекта и собираем TGZ архив:
tar cvzf ../IL-vmware-lsa.tgz *
Создаём VIB файл с помощью tgz2vib5.cmd. Переходим к ESXi Community Packaging Tools 2.4. Чтобы создать файл VIB из нашего файла TGZ, запускаем tgz2vib5.cmd.
Указываем необходимые поля. Хочется отметить, то уровня community недостаточно. Устанавливаем Acceptance Level: accepted. Run!
Собран VIB файл IL-vmware-lsa-1.0-3.x86_64.vib.
Создаём ZIP файл Offline Bundle с помощью tgz2vib5.cmd. В принципе, достаточно и VIB файла. Но я собираюсь сохранить пакет в архиве, ZIP для этого предпочтительнее. Чтобы создать Offline Bundle из нашего файла VIB, запускаем vib2zip.cmd:
Указываем директорий с файлом VIB, рабочую директорию. Заполняем поля, устанавливаем максимальный уровень совместимости. Run!
Offline Bundle IL-vmware-lsa-1.0-3-offline_bundle.zip собрался.
Установка Offline Bundle
Для тестирования перевожу хост в Maintenance Mode.
Копируем ZIP пакет на хост в папку /tmp.
Запускаем службу SSH на хосте, коннектимся. Проверяем содержимое папки tmp.
ZIP файл присутствует.
Устанавливаем пакет (--nosig-check нужен, поскольку мы устанавливали уровень Acceptance Level: accepted):
esxcli software vib install -d /tmp/IL-vmware-lsa-1.0-3-offline_bundle.zip --no-sig-check
Перезагружаем хост.
Проверим установку пакетов:
esxcli software vib list | grep lsa
Все нужные пакеты установлены.
Проверка связи
Ломаем RAID!
Пыщъ! Не повторяйте это на боевых серверах.
И...
Почта пришла. Шарманка заработала.
Билди с нами, билди как мы, билди лучше нас...