Перейти к основному содержанию

Собираем собственный VIB пакет LSA

internet-lab.ru

Я уже писал про то, что 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.

lsi

Включаем на гипервизоре службу SSH и логинимся в консоль гипервизора. Гипервизор у меня в Maintenance Mode.

Устанавливаем пакет:

esxcli software component apply -d /tmp/vmware-lsa_008.002.016.000-01_20140327.zip

lsi

Пакет установлен, но требуется перезагрузка. Перезагружаем гипервизор.

Проверим на каких портах работает служба:

esxcli network ip connection list | grep LSA
esxcli network ip connection list | grep 2463

netstat на ESXi

lsi

Службы поднялись, нас интересует та, что на порту TCP 2463. Отключаем firewall:

esxcli network firewall set --enabled false

Теперь URL на http://адрес_хоста:2463 открывается.

lsa

Подготовка файла настроек

Логинимся под пользователем root. Переходим к настройкам почтовых уведомлений:

  • Settings → Actions → Alert Delivery
  • Settings → Actions → Mail Server
  • Settings → Actions → Email

lsa

Настраиваем типы уведомлений и методы доставки.

lsa

Настраиваем адрес почтового сервера и email отправителя.

lsa

Настраиваем адрес получателей уведомлений. Save Settings.

Теперь включаем службу SSH на хосте и смотрим содержимое файла /opt/lsi/LSIStorageAuthority/conf/monitor/config-current.json.

cat /opt/lsi/LSIStorageAuthority/conf/monitor/config-current.json

lsa

Вот так легко и просто мы получили файл с нашими новыми настройками, который будем добавлять в наш изменённый пакет. Копируем содержимое... и исправляем кривой 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 — добавляем своё правило

Как установить VIB пакет

Копируем ZIP пакет на хост в папку /tmp.

firewall

Запускаем службу SSH на хосте, коннектимся. Проверяем содержимое папки tmp.

firewall

ZIP файл присутствует. Разрешаем установку программ и драйверов со сторонними сертификатами. Для этого перед установкой выполняем команду:

esxcli software acceptance set --level=CommunitySupported

Устанавливаем пакет:

esxcli software vib install -d /tmp/fw-lsa-1.0-2-offline_bundle.zip

firewall

Пакет установлен. В списке установленных VIB пакетов имеется наш новый пакет.

esxcli software vib list | grep lsa

firewall

Configure → System → Firewall → Edit. У нас появились два новых правила:

  • LSA Mail
  • LSA UI

firewall

Включаем их галками. OK.

Входящее на TCP 2463:

firewall

Исходящее на TCP 25:

firewall

Больше нам пакет LSA не нужен, удаляем его:

esxcli software vib remove -n BMC-vmware-sla

Как удалить VIB пакет

Перезагружаем хост.

Распаковываем 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

vib

Распакуем BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib:

ar x BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib

vib

Получаем три файла:

  • lsa — архив с содержимым пакета
  • descriptor.xml — XML файл с перечислением всех файлов пакета и дополнительной информацией о пакете.
  • sig.pkcs7 — цифровая подпись

Нас интересует файл с архивам, в данном случае он называется lsa. Для его распаковки архива нам понадобится утилита vmtar. В результате получим TAR файл:

./vmtar -v -x lsa -o lsa.tar

vib

Получили файл:

  • lsa.tar

Распаковываем его:

tar -xvf lsa.tar

vim

Распаковалось прямо в текущую папку. Можно было сделать аккуратнее. В любом случае, мы получили то что хотели.

vib

А именно нам нужны папки:

  • /etc/*
  • /opt/*

lsa

Собираем VIB пакет

Сначала внесём изменения в файлы:

  • /opt/lsi/LSIStorageAuthority/conf/monitor/config-current.json
  • /opt/lsi/LSIStorageAuthority/conf/monitor/config-default.json

Сохраняем туда полученный нами ранее JSON файл с конфигурацией настроек почтовых уведомлений.

lsa

Для сборки нам понадобится пакет:

ESXi Community Packaging Tools 2.4

Создаём TGZ файл. Переходим в корневую папку проекта и собираем TGZ архив:

tar cvzf ../IL-vmware-lsa.tgz *

lsa

Создаём VIB файл с помощью tgz2vib5.cmd. Переходим к ESXi Community Packaging Tools 2.4. Чтобы создать файл VIB из нашего файла TGZ, запускаем tgz2vib5.cmd.

lsa

Указываем необходимые поля. Хочется отметить, то уровня community недостаточно. Устанавливаем Acceptance Level: accepted. Run!

Собран VIB файл IL-vmware-lsa-1.0-3.x86_64.vib.

lsa

Создаём ZIP файл Offline Bundle с помощью tgz2vib5.cmd. В принципе, достаточно и VIB файла. Но я собираюсь сохранить пакет в архиве, ZIP для этого предпочтительнее. Чтобы создать Offline Bundle из нашего файла VIB, запускаем vib2zip.cmd:

lsa

Указываем директорий с файлом VIB, рабочую директорию. Заполняем поля, устанавливаем максимальный уровень совместимости. Run!

Offline Bundle IL-vmware-lsa-1.0-3-offline_bundle.zip собрался.

lsa

Установка Offline Bundle

Для тестирования перевожу хост в Maintenance Mode.

Как установить VIB пакет

Копируем ZIP пакет на хост в папку /tmp.

lsa

Запускаем службу SSH на хосте, коннектимся. Проверяем содержимое папки tmp.

lsa

ZIP файл присутствует.

Устанавливаем пакет (--nosig-check нужен, поскольку мы устанавливали уровень Acceptance Level: accepted):

esxcli software vib install -d /tmp/IL-vmware-lsa-1.0-3-offline_bundle.zip --no-sig-check

lsa

Перезагружаем хост.

Проверим установку пакетов:

esxcli software vib list | grep lsa

lsa

Все нужные пакеты установлены.

Проверка связи

Ломаем RAID!

lsa

Пыщъ! Не повторяйте это на боевых серверах.

lsa

И...

lsa

Почта пришла. Шарманка заработала.

Билди с нами, билди как мы, билди лучше нас...

 

Похожие материалы