Я хочу управлять конфигурацией нескольких устройств под управлением встроенного Linux.
В моей среде есть веб-сервер с интерфейсом SOAP, который я могу использовать для получения / установки всех параметров каждого из устройств, которые я хочу настроить. Веб-сервер общается со встроенными устройствами Linux, отправляя сообщения SNMP, это единственный вариант, который у меня есть для управления ими.
Я хотел бы использовать инструмент управления конфигурацией для определения каждого встроенного устройства, а затем использовать сервер SOAP для их настройки, но я не могу найти никаких примеров с Puppet / Ansible для того, что я хочу сделать (но, возможно, я ' искал неправильные термины в Google).
Марионеточное устройство похоже на то, что я пытаюсь сделать, похоже, оно используется для настройки некоторых типов сетевого оборудования, но оно все еще разговаривает с узлами устройства с помощью ssh и запускает команды в оболочке на узле, а не с помощью промежуточного прокси для получения / установки параметров. Я ожидаю, что мне придется написать собственный поставщик (или эквивалент для инструмента, отличного от Puppet CM), есть ли способ реализовать это в любом инструменте управления конфигурацией? Я уверен, что должен быть разумный способ сделать это, но я изо всех сил пытаюсь найти примеры такого рода сценариев.
Предполагая, что ваши устройства под управлением встроенного Linux могут запускать Python и Ansible, одним из решений было бы использование Ansible-тянуть Скрипт, чтобы они могли централизованно проверять ваш Ansible playbook и локально запускать ansible-playbook на устройствах. Таким образом, вам не нужно иметь доступ к устройствам через ssh.
Вы можете вызвать ansible-pull из crontab и / или запустить его после загрузки устройства.
См. Ansible's документация Чтобы получить больше информации.
Моя первая мысль была бы такой ... Ваш центральный сервер, который позволяет вам определять все конфигурации, может вместо того, чтобы делать исходящие запросы к каждому устройству, записывать в формате, который легко обнаруживается каждым отдельным узлом.
Я использую CFEngine, он очень легкий, быстрый и работает практически на чем угодно. Каждый узел подключается к центральному серверу политик по умолчанию каждые пять минут, но вы, конечно, можете настроить расписание по своему усмотрению. В политике может быть что-то для загрузки в те дни, что было сгенерировано центральным сервером. (Тот, который использовался для вызовов SNMP). Если есть новые данные, агент cfengine может обработать эти данные и внести необходимые корректировки.