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

Как использовать Salt Stack с миньонами, находящимися за NAT (не общедоступно, солевые порты по умолчанию не открыты)?

Могут ли миньоны Salt Stack общаться с мастером соли из-за NAT / межсетевых экранов и т. Д., Используя стандартные порты, которые будут открыты по умолчанию во всех потребительских маршрутизаторах NAT (и без миньонов, имеющих общедоступную запись DNS или статический IP-адрес)?

Я прорабатываю свой первый урок по соли, и здесь я застрял.

Я могу настроить iptables на солевом мастере Ubuntu. Но у меня нет контроля над маршрутизаторами / NAT, за которыми будут сидеть миньоны.

Пока я пробовал эти настройки:

/ и т.д. / соль / мастер:

publish_port: 465
ret_port: 443

/ и т.д. / соль / миньон:

master_port: 465

Это не сработало.

Задний план:

У меня есть специально разработанное приложение, которое в настоящее время работает примерно на 40 ноутбуках Kubuntu (и планируется еще больше). Каждые несколько месяцев мне приходится обновлять приложение. (Часто это просто замена файла .jar, для чего требуются права root.) Мне также нужно запускать обновления Ubuntu и некоторые другие мелочи. Я делал это вручную, один за другим, используя Team Viewer для входа в каждый клиент.

Хотелось бы кардинально улучшить этот процесс. Мне известны два варианта:

  1. используйте обратные туннели ssh и сценарии bash. Я проверил это, и он работает. Но я не получаю никаких отчетов и т. Д., Которые я бы получил с Salt Stack.

  2. используйте инструмент управления Salt Stack (или аналогичный). Но мне нужен действительно простой инструмент. Я не могу тратить время на долгое обучение.

Я посмотрел на Puppet и кучу связанных с ним инструментов. Единственный, который мне показался достаточно простым (пока), - это Salt Stack. Но сейчас я застрял, потому что мой миньон не может добраться до соляного мастера, как указано выше.

Я ценю предложения.

Ответ - «просто работает». Нет необходимости изменять файлы конфигурации (как мастера, так и миньона). Не нужно беспокоиться о NAT или брандмауэрах для миньонов.

Однако на главном сервере необходимо открыть два порта на брандмауэре. Я добился этого с помощью:

iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT

На миньонах добавьте запись в / etc / hosts, указывающую имя «соль» на IP-адрес мастера. Пример:

root@minion2:~# cat /etc/hosts
127.0.0.1       localhost.localdomain   localhost
111.222.333.444  salt salt.example.com

На самом деле это очень просто.

Чтобы получить соединение миньона через любой брандмауэр, который разрешает исходящие соединения на портах http и https, мы используем это на главном устройстве:

publish_port: 80
ret_port: 443

А это на миньоне:

publish_port: 80
master_port: 443

Имена все еще сбивают меня с толку - я бы ожидал publish_port на мастере соответствовать master_port на миньона - а вот как.