---

- name: Репликация между контроллерами
  hosts: dc1

  tasks:
  - name: Проверка соответствия ОС
    ansible.builtin.fail:
      msg: Операционная система должна быть Альт
    when: ansible_os_family != "Altlinux"

  - name: Проверка наличия развёрнутого домена на хосте {{ ansible_hostname }}
    ansible.builtin.shell: "samba-tool domain info {{ ansible_default_ipv4.address }}"
    register: samba_tool_result
    ignore_errors: true
    
  - name: Если на хосте НЕ развёрнут домен, выполнение прерывается
    ansible.builtin.fail:
      msg: На хосте {{ ansible_hostname }} НЕ обнаружен развёрнутый домен. Прерываю выполнение
    when:
      - samba_tool_result.failed != false

  - name: Репликация в направлении {{ hostnames.dc2_host }} -> {{ hostnames.dc1_host }}
    ansible.builtin.shell: |
      samba-tool drs replicate \
        {{ hostnames.dc2_host }}.{{ dc_details.realm }} \
        {{ hostnames.dc1_host }}.{{ dc_details.realm }} \
        dc={{ dc_details.domain }},dc={{ dc_details.domain_suffix }} \
          -Uadministrator --password={{ dc_details.adminpass }}
    register: rep1_output
  - ansible.builtin.debug:
      msg: "Итог репликации: {{ rep1_output.stdout }}"

  - name: Репликация в направлении {{ hostnames.dc1_host }} -> {{ hostnames.dc2_host }}
    ansible.builtin.shell: |
      samba-tool drs replicate \
        {{ hostnames.dc1_host }}.{{ dc_details.realm }} \
        {{ hostnames.dc2_host }}.{{ dc_details.realm }} \
        dc={{ dc_details.domain }},dc={{ dc_details.domain_suffix }} \
          -Uadministrator --password={{ dc_details.adminpass }}
    register: rep2_output
  - ansible.builtin.debug:
      msg: "Итог репликации: {{ rep2_output.stdout }}"
