Я тестирую Соль. У меня есть простая тестовая установка 3 VirtualBox VM's - с соленым ведущим устройством, работающим на одной из машин и соленых фаворитов, работающих на других 2 VM's.
Я могу запустить любого из соленого фаворита VM, и они соединятся с ведущим устройством и получат команды. Если я запущу обоих фаворитов VM, то они и соединятся в течение короткого промежутка времени, и затем каждый отбросит и покажет как не соединенный от ведущего устройства.
На самом деле у меня не должно даже быть больше чем одного активного клиента VM. С 1 клиентом VM и 1 соленым фаворитом VM, это разъединится.
Я могу перезапустить соленого фаворита, и это снова соединится с ведущим устройством и получит команды снова... в течение нескольких минут, по крайней мере. В конечном счете это покажет, как разъединено на ведущем устройстве. Выполнение соленого фаворита в отладке, кажется, не показывает ничего, что объясняет, почему это показывает, как разъединено на ведущем устройстве.
Что могло вызывать это?
Править:
ОС, которую я использую, является Ubuntu 14.04. Среды ведущего устройства и фаворита являются тем же за исключением солено-основного пакета. Выполнение --versions-report
на ведущем устройстве и фаворите дает следующие версии:
Salt: 2015.5.3
Python: 2.7.6 (default, Mar 22 2014, 22:59:56)
Jinja2: 2.7.2
M2Crypto: 0.21.1
msgpack-python: 0.3.0
msgpack-pure: Not Installed
pycrypto: 2.6.1
libnacl: Not Installed
PyYAML: 3.10
ioflo: Not Installed
PyZMQ: 14.0.1
RAET: Not Installed
ZMQ: 4.0.4
Mako: Not Installed
Tornado: Not Installed
Debian source package: 2015.5.3+ds-1trusty1
Проблемы со связью обычно вызываются библиотекой ZMQ (менее 4.X.X) и/или солевой версией . Для того, чтобы посмотреть, какие версии вы используете, запустите salt --versions-report
на ведущем и salt-call --versions-report
на ведущем и salt-call --versions-report
. Вы должны запустить:
Salt: 2015.5.3
...
ZMQ: 4.0.5
Вы также должны попробовать воспроизвести выпуск с простой демонстрацией бродячих солей . Обратите внимание, что вам нужно изменить версии salt в файле бродяги на "2015.5.3"
Вы не указали, какие операционные системы или версию salt вы используете, но есть постоянная проблема с пакетом zmq, используемым salt, которая приводит к медленным соединениям и падениям. Настоятельно рекомендуется обновить пакет zmq : (это sls-файл на основе redhat)
{% if grains['os'] in ('RedHat', 'CentOS', 'Fedora') %}
{% if grains['os'] == 'Fedora' %}
{% set repotype = 'fedora' %}
{% else %}
{% set repotype = 'epel' %}
{% endif %}
saltstack-zeromq4:
pkgrepo.managed:
- humanname: Copr repo for zeromq4 owned by saltstack
- baseurl: http://copr-be.cloud.fedoraproject.org/results/saltstack/zeromq4/{{ repotype }}-$releasever-$basearch/
- gpgcheck: 0
- skip_if_unavailable: True
- enabled: 1
{% endif %}
{% if grains['os'] in ('RedHat', 'CentOS', 'Fedora') %}
update_zmq:
pkg:
- latest
- pkgs:
- zeromq
- python-zmq
- order: last
cmd:
- wait
- name: echo service salt-minion restart | at now + 1 minute
- watch:
- pkg: update_zmq
{% endif %}
Другой "хак" - это пинговать машины каждую минуту или около того, просто добавьте это в salt-master minion config:
"salt '*' test.ping > /dev/null":
cron.present:
- user: root
- minute: '*/1'
Вы также можете пинговать ведущее устройство от minion, установив опцию master_alive_interval
в minion config-файле.