2017-02-05 8 views
0

Я пытаюсь написать задачу для своей пьесы для запуска следующего кода, только если изменения внесены в мой каталог wordpress. Я придумал сценарий ниже, однако код для повторного развертывания приложения wordpress не запускается, если в каталог wordpress внесено изменение.Как выполнить задачу в недоступном только в том случае, если содержимое каталога было изменено

- name: Run if content is added or deleted in application directory 
    shell: find /var/www/html/wordpress -type f -exec md5sum {} \; | sort -k 2 | md5sum 
    register: change 

- name: Copy code to application directory 
unarchive: 
    src: /root/wordpress.zip 
    dest: /var/www/html 
    owner: apache 
    group: apache 
    mode: 0644 
when: 
    - change.stdout|success 
notify: 
    - Reload Apache server 

ответ

0

Я думаю, что проблема в том, что вы используете оболочный модуль. Модуля оболочки считается низким модулем уровня в анзибле, а это означает, что он не имеет «идемпотентности» запеченный в.

Так что командная оболочка будет запускаться каждый раз, когда вы запустите его по умолчанию ,

Путь у меня она занималась в том, что я использую git module для моего приложения, и что модуль мерзавца затем говорит мне, если состояние моего мерзавца репо изменяется в зависимости от состояния приложения, это находится на мое производство.

Пример:

- name: Ensure demo application is at correct release. 
     git: 
      repo: https://github.com/foobar 
      version: "{{ app_version }}" 
      dest: "{{ app_directory }}" 
      force: true 
      accept_hostkey: true 
     register: app_updated 
     notify: restart nginx 

В этом примере изменение только будет происходить (действие, которое вы хотите), когда состояние мерзавца репо изменяется (по отношению к Thats репо на сервере), и все соответствующие действия в моей книге будут основаны на этом факте.

Итак, вы на правильном пути, но я бы посоветовал вам использовать модуль copy, который будет копировать файлы или папки, только если есть изменение между исходным каталогом и удаленным каталогом.

И затем вы можете поймать это изменение с помощью переменной (как и вы) и использовать ее позже в своей книге.

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

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