Я тестирую Соль. У меня есть простая тестовая установка из 3 виртуальных машин VirtualBox - с солью-мастером, работающей на одной из машин, и солевыми миньонами, работающими на двух других виртуальных машинах.
Я могу запустить любую виртуальную машину соляных миньонов, и они подключатся к мастеру и будут получать команды. Если я запустил обе виртуальные машины миньонов, они обе подключатся на короткое время, а затем одна из них отключится и будет отображаться как не подключенная к мастеру.
На самом деле мне даже не нужно иметь более одного активного клиента виртуальной машины. С 1 клиентом виртуальной машины и 1 виртуальной машиной salt-minion он отключится.
Я могу перезапустить соль-миньон, и он снова подключится к мастеру и снова получит команды ... по крайней мере, на пару минут. В конце концов, он будет отображаться на главном устройстве как отключенный. Запуск salt-minion в отладке, похоже, не показывает ничего, что объясняет, почему он отображается как отключенный на мастере.
Что может быть причиной этого?
Редактировать:
Я использую ОС Ubuntu 14.04. Среда мастера и миньона такая же, за исключением пакета salt-master. Бег --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: 2015.5.3
...
ZMQ: 4.0.5
Вы также должны попытаться воспроизвести проблему с помощью простая демонстрация бродяги. Обратите внимание, что вам нужно будет изменить версии соли в бродячем файле на «2015.5.3».
Вы не указали, какую операционную систему или версию Salt вы используете, но существует постоянная проблема с пакетом zmq, используемым солью, которая вызывает медленные соединения и прерывания. Настоятельно рекомендуется обновить пакет 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:
"salt '*' test.ping > /dev/null":
cron.present:
- user: root
- minute: '*/1'
Вы также можете пинговать мастера с миньона, установив master_alive_interval
в конфигурационном файле миньона.