---

- name: Добавление компьютеров в домен
  hosts: ws

  tasks:
  - name: Проверка того, что узел не является членом домена
    ansible.builtin.shell: net ads testjoin
    register: testjoin
    ignore_errors: yes
  - name: Результат проверки
    ansible.builtin.debug:
      var: testjoin.stdout_lines
    failed_when: testjoin.rc == 0
  
  - name: Обновление системы
    apt_rpm:
      update_cache: true
      dist_upgrade: true
      clean: true
  
  - name: Назначение корректного имени хоста
    ansible.builtin.hostname:
      name: "{{ inventory_hostname }}.{{ dc_details.realm }}"
      use: systemd

  - name: Настройка резолвера на контроллеры домена - {{ dc_details.dc1_ip }}, {{ dc_details.dc2_ip }}
    ansible.builtin.lineinfile:
      path: /etc/resolvconf.conf
      regexp: '^name_servers'
      line: name_servers="{{ dc_details.dc1_ip }} {{ dc_details.dc2_ip }}"
  
  # - name: Настройка резолвера доменную зону - {{ dc_details.realm }}
  #   ansible.builtin.lineinfile:
  #     path: /etc/resolvconf.conf
  #     regexp: '^search_domains'
  #     line: search_domains={{ dc_details.realm }}
  
  - name: Обновление конфигурации резолвера
    ansible.builtin.shell: "resolvconf -u"

  - name: Установка клиентского пакета Samba {{ samba_client_package }}
    apt_rpm:
      package: "{{ samba_client_package }}"
      state: present
      update_cache: yes

  - name: Ввод в домен
    ansible.builtin.shell: |
      system-auth write ad {{ dc_details.realm }} {{ inventory_hostname }} {{ dc_details.domain }} \
        '{{ dc_details.admin }}' '{{ dc_details.adminpass }}'
    register: add_to_domain
  - name: Итог ввода
    ansible.builtin.debug:
      var: add_to_domain.stdout_lines

  - name: Проверка ввода в домен
    ansible.builtin.shell: net ads testjoin
    register: testjoin
    failed_when: testjoin.rc != 0
  
  - name: Перезагрузка узла после добавления в домен
    ansible.builtin.reboot:
      reboot_timeout: 3600
