SaltStack - Соляные прокси-миньоны

Существует множество устройств, таких как маршрутизатор, сетевое оборудование и т. Д., С настраиваемой ОС, ограниченной памятью и высокими требованиями к безопасности. На этих устройствах нам не удалось установить стандартныйsalt-minionи впоследствии не могли управлять этими системами. Однако Salt предлагает инновационную технологию для преодоления этого ограничения.

У Salt есть отдельный модуль, salt proxy minion, который управляет удаленной системой с помощью службы REST, запущенной в удаленной системе. Эта служба REST представляет собой веб-службу на основе HTTP, написанную с использованиемRepresentational State Transfer (REST) концепции, и они оба просты в реализации и удобны в использовании.

Каждое устройство будет иметь собственный SDK и среду разработки для написания сложных приложений. Salt ожидает, что в устройстве будет разработана служба REST в соответствии со спецификацией интерфейса Salt. Salt также предоставляет модуль Python для написания веб-службы REST. Если устройство поддерживает Python, то разработать веб-сервис REST будет несложно.

После разработки и развертывания веб-службы REST в удаленной системе Salt можно настроить для управления удаленным устройством с помощью веб-службы REST вместо миньона соли.

Рабочий пример

Давайте узнаем концепцию salt proxy minionиспользуя живую рабочую среду. Для живой среды мы выбрали систему Linux как для главного, так и для прокси-миньона. Мы собираемся управлять системой с помощью веб-сервиса REST вместо salt-minion.

Установить и настроить веб-службу REST

Salt предоставляет образец реализации веб-сервиса REST, который в своем модуле contrib назван proxyminion_rest_example. Давайте установим образец веб-службы.

  • Установить ‘bottle’с помощью пипса. Вbottle Команда - это веб-фреймворк на Python для разработки веб-приложений.

pip install bottle = 0.12.8
  • Загрузите saltstack/salt-contribпроект из github. В противном случае клонируйте проект с помощью следующей команды.

git clone https://github.com/saltstack/salt-contrib
  • Откройте терминал и перейдите в salt-contrib каталог.

  • В этом каталоге salt-contrib будет папка, proxyminion_rest_example. Эта папка содержит образец реализации веб-службы REST. Перейдите в папку proxyminion_rest_example.

  • Выполните следующую команду, чтобы запустить веб-службу REST.

python rest.py --address <your ip address> --port 8000
  • Откройте браузер и загрузите http: // «ваш IP-адрес»: 8000. Откроется страница по умолчанию со службами и пакетами, как показано на снимке экрана ниже.

Теперь мы настроили веб-службу REST, и она проверит, как настроить прокси-сервер соли для запроса веб-службы REST и управления системой.

Настроить Salt-Proxy

Чтобы настроить Salt-Proxy, мы должны выполнить шаги, указанные ниже.

  • Мы должны указать главный узел для солевого прокси. Отредактируйте расположение файла конфигурации прокси, который находится в / etc / salt / proxy, и введите следующий код.

master: <your ip address>
  • Изменить / создать файл базовой стойки в /srv/pillar/top.sls как показано в следующем блоке кода.

base:
  'p8000':
      - p8000
  • Добавьте новый файл столба, p8000.sls в /srv/pillar как показано в блоке кода ниже.

proxy:
   proxytype: rest_sample
   url: http://<your ip address>:8000
  • Запустите salt-proxy в режиме отладки, используя следующую команду.

salt-proxy --proxyid = p8000 -l debug
  • Подобно соленому миньону, примите salt-proxy key как показано ниже.

salt-key -y -a p8000

The following keys are going to be accepted:
Unaccepted Keys:
p8000
Key for minion p8000 accepted.

Бегущая соль

Теперь запустите salt команду и вызовите ping.test работают, как показано ниже.

salt p8000 test.ping

Мы можем запустить любую функцию, поддерживаемую веб-службой REST, используя salt, что похоже на salt-minion.

Например, информацию о зернистости можно получить с помощью следующей команды.

salt p8000 grains.items