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

Соляные миньоны теряют связь с хозяином

Я тестирую Соль. У меня есть простая тестовая установка из 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 в конфигурационном файле миньона.