Могут ли миньоны 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 для входа в каждый клиент.
Хотелось бы кардинально улучшить этот процесс. Мне известны два варианта:
используйте обратные туннели ssh и сценарии bash. Я проверил это, и он работает. Но я не получаю никаких отчетов и т. Д., Которые я бы получил с Salt Stack.
используйте инструмент управления 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
на миньона - а вот как.