2016-10-05 2 views
-1

У меня есть сборник пьес со следующей задачей и секции обработчика (только сниппета):анзибль обработчики и модуль оболочки

tasks: 
    - name: 'Run legacy script and power off' 
     debug: msg="Preparing for reboot" 
     notify: Legacy sysprep 

    handlers: 
    - name: Enable Service1 
     service: name=service1 enabled=yes state=restarted 

    - name: Legacy sysprep 
     shell: /var/scripts/prep-reboot.sh 

Когда я бегу пьес, я вижу сообщение отладки для выполнения этой задачи, которая вызывает Legacy sysprep обработчик, и я вижу обработчик Enable Service1, но обработчик Legacy sysprep не вызывается (он не отображается в выходном файле воспроизведения и не запускается в системе), и серверы не перезагружаются (часть скрипта) ,

Да, я планирую перенести скрипт prep -reboot.sh в загрузочную книгу Ansible, но я был удивлен тем, что, по-видимому, модуль shell не работает? Или есть ошибка, которую я забыл? Запуск с -vvv не сообщает ничего неожиданного.

Ansible and Ansible-playbook version 2.1.1.0, работающий на RHEL 6.8.

+1

Там нет никакого способа для любого из обработчиков для запуска в примере вы дали, потому что 'debug' возвратит' ok' статус. Тем не менее, вопрос непонятен. Пожалуйста, укажите ** проверяемый пример **. – techraf

+0

@techraf - Спасибо за подсказку, я добавил «changed_when: true» в игру, а теперь триггеры обработчика. См. Ответ, который я опубликовал ниже. –

ответ

0

Спасибо, @techraf, что ты меня указал в правильном направлении. Я закончил тем, что добавил changed_when: true в строку отладки, и это заставляет играть, чтобы зарегистрировать изменение, которое затем запускает соответствующий обработчик.

Вот мой фактический тест сборник пьес для справки:

--- 
- name: Testing forced handler 
    hosts: testsys_only 
    gather_facts: True 

    tasks: 
    - name: 'Run legacy script and power off' 
     debug: msg="Preparing for reboot" 
     changed_when: true 
     notify: Legacy sysprep 

    handlers: 
    - name: Enable Service1 
     service: name=service1 enabled=yes state=restarted 

    - name: Legacy sysprep 
     shell: /var/scripts/prep-reboot.sh 

 Смежные вопросы

  • Нет связанных вопросов^_^