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