Выполнение следующих задач при смене главной задачи - PullRequest
0 голосов
/ 12 июня 2019

Хотите выполнить вторую задачу (task2), когда первая задача (task1) успешно добавила строки в файл (blockinfile).

 - name: nodes ip server configuration
   hosts: "{{ hostname }}"
   become: true
   become_user: root
   tasks:
     - include_tasks: step1_iptables.yaml
     - include_tasks: step2_script_firewall.yaml

======= more step1_iptables.yaml =========

- name: ip firewall configuration
  blockinfile:
    path: /etc/init.d/test
    marker: "# {mark} Customer {{ admin_code }}-{{ ipadd }}-{{ ip }}-{{ rg1 }}-{{ rg2 }}"
    insertbefore: "## TO HERE"
    block: |
      $IPTABLES -A LOCALLY_MANAGED_RULES_INPUT -p udp -s {{ ipadd }} --sport 5060 -d $ip_SERVER_{{ ip }}_IP_ADDRESS --dport $ip_PORT -j ACCEPT
      $IPTABLES -A LOCALLY_MANAGED_RULES_OUTPUT -p udp -s $ip_SERVER_{{ ip }}_IP_ADDRESS --sport $ip_PORT -d {{ ipadd }} -j ACCEPT
    backup: yes

======= more step2_script_firewall.yaml =========

- name: Run script to save iptables
  command: sh /etc/init.d/firewall_node_local
  register: myoutput
- debug: var=myoutput.stdout_lines

=======================================================================

task2 запускается только когда строки в task1 добавлены в файл.если дублирование, то задача2, связанная с запуском скрипта, пропускается.

   tasks:
      - include_tasks: step1_iptables.yaml
      - include_tasks: step2_script_firewall.yaml
        when: step1_iptables.yaml is changed

======================================================================

1 Ответ

0 голосов
/ 12 июня 2019

Вот для чего нужны обработчики .Добавьте notify к 1-му заданию

- name: ip firewall configuration
  blockinfile:
    path: /etc/init.d/test
    ...
    backup: yes
  notify: script_firewall

и создайте обработчики раздел с обработчиком

handlers:
- name: script_firewall
  command: sh /etc/init.d/firewall_node_local
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...