Назад | Перейти на главную страницу

Как автоматизировать создание сетей в марионеточной среде?

Наша инфраструктура: мы запускаем марионеточный мастер примерно для 250 узлов (около 100 аппаратных серверов). Сама ОС на нодах полностью кукольна.

Теперь мы планируем расширить эту установку марионетки на следующие домены:

  1. Управление IP / DHCP
  2. Конфигурация APC
  3. настройка коммутатора (по SNMP, есть коммутаторы Arista)
  4. управление запасами (где стоит сервер x? как долго еще действует гарантия?)

Есть ли программное обеспечение (с открытым исходным кодом, неважно), которое позволяет нам этого добиться? Я предполагаю, что у него есть схема реляционных данных, например server или switch который можно заполнить через веб-интерфейс. Затем для каждой из этих 4 точек есть сценарии для извлечения данных из таблиц и их передачи на устройства.

хорошо, почему бы нам просто не взять марионетку для этого?

Нам бы очень хотелось, так как мы хотим иметь всю конфигурацию в одном месте, но ...

1 + 2 мог выполняется в марионеточном режиме, но для 250 узлов это выглядит чертовски большим марионеточным манифестом. Кроме того, мы хотим вскоре добавить подготовку виртуальных машин через марионеточного мастера, поэтому «система резервирования IP» должна быть «реактивной», и, следовательно, IMO должна находиться вне марионетки.
3, вероятно, невозможно, поскольку переключатели еще не готовы для марионетки,
4 это наверное возможно с марионеткой, когда мы добавим «аппаратный» слой над уровнем узла в марионетке.

Есть предположения?

AFAIK Форман уже ведет в правильном направлении, так что, возможно, вам стоит начать играть с этим.

Кроме того, взгляните на Пользовательские факты. Они представляют собой мощный способ доступа ко всем видам данных и использования их в манифестах Puppet. Например. создать собственный факт, например $::inventory_ipaddress или даже перезаписать $::ipaddress факт с каноническим, который будет использоваться для конфигурации.

Для 1: для большого количества хостов, как правило, не рекомендуется иметь сотни node определений, а скорее иметь набор роли и профили.

Общая задача проектирования здесь состоит в том, чтобы иметь четкий поток информации от единственного источника (источников) правды до обеспечения.

Для 2 + 3: вы можете использовать марионетку для вызова всех видов вспомогательных скриптов и инструментов, но я сомневаюсь, что это лучший инструмент для работы, потому что он, вероятно, не будет «источником истины».

Для 4: Это где-то посередине. Я сам использую марионетку на инстансах EC2, чтобы периодически запускать обновление инвентаря Zabbix и использовать facter для заполнения, например роль, версия ОС, группы безопасности. Предостережение: мой нормативный источник истины - это инструмент обеспечения, и моя марионетка проявляется там, где я могу изменять настройки; с другой стороны, эта инвентаризация - это только окончательный результат для проверки результатов.

Коммутаторы Arista можно настроить с помощью Puppet, работающего в операционной системе EOS на самом коммутаторе. Arista даже предоставляет руководство по установке Puppet: Установка Puppet на EOS Так что это не должно быть проблемой.

Для задач инвентаризации (IP-адреса, локации, гарантия) я бы порекомендовал Zabbix.