alt_vkr/ansible/06_2_deploy_second_dc.yml

146 lines
5.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
- name: Разворачивание контроллера домена
hosts: dctest2
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: yes
- name: Если на хосте развёрнут домен, выполнение прерывается
ansible.builtin.fail:
msg: На хосте {{ ansible_hostname }} обнаружен развёрнутый домен. Прерываю выполнение
when:
- samba_tool_result.failed == false
- name: Обновление системы
apt_rpm:
update_cache: true
dist_upgrade: true
clean: true
- name: Назначение корректного имени хоста
ansible.builtin.hostname:
name: "{{ hostnames.dc2_host }}.{{ dc_details.realm }}"
use: systemd
- name: Установка пакетов {{ packages }}
apt_rpm:
package: "{{ item }}"
state: present
update_cache: yes
loop: "{{ packages }}"
- name: Конфигурация NTP (режим server)
ansible.builtin.command:
cmd: control chrony server
- name: Настройка синхронизации времени с контроллером домена - {{ dc_details.dc1_ip }}
ansible.builtin.lineinfile:
path: /etc/resolvconf.conf
regexp: '^server .*'
line: server {{ dc_details.dc1_ip }}
- name: Перезапуск службы синхронизации времени
ansible.builtin.systemd:
name: "{{ sync_time_daemon }}"
enabled: true
state: restarted
masked: false
- name: Отключение служб, которые будут конфликтовать с контроллером
ansible.builtin.systemd:
name: "{{ item }}"
enabled: false
state: stopped
loop: "{{ stop_daemons }}"
ignore_errors: yes
- name: Удалить старую конфигурацию Samba
ansible.builtin.file:
path: "{{ item }}"
state: absent
force: true
loop: "{{ old_config_to_remove }}"
- name: Создать каталог для хранения групповых политик
ansible.builtin.file:
path: "{{ gp_folder }}"
state: directory
mode: '0755'
- name: Настройка резолвера на контроллер домена - {{ dc_details.dc1_ip }}
ansible.builtin.lineinfile:
path: /etc/resolvconf.conf
regexp: '^name_servers'
line: name_servers={{ dc_details.dc1_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: Внесение изменений в /etc/krb5.conf - "default_realm = {{ dc_details.realm }}"
ansible.builtin.lineinfile:
path: /etc/krb5.conf
regexp: 'default_realm'
line: " default_realm = {{ dc_details.realm }}"
- name: Внесение изменений в /etc/krb5.conf - "dns_lookup_realm = false"
ansible.builtin.lineinfile:
path: /etc/krb5.conf
regexp: 'dns_lookup_realm'
line: " dns_lookup_realm = false"
- name: Внесение изменений в /etc/krb5.conf - "dns_lookup_kdc = true"
ansible.builtin.lineinfile:
path: /etc/krb5.conf
regexp: 'dns_lookup_kdc'
line: " dns_lookup_kdc = true"
- name: Добавление второго контроллера домена
ansible.builtin.shell: |
samba-tool domain join {{ dc_details.realm }} DC -Uadministrator --realm={{ dc_details.realm }} \
--option="dns forwarder=77.88.8.8" --option="idmap_ldb:use rfc2307 = yes" --password=P@ssw0rd
register: dc2_join_output
- ansible.builtin.debug:
# samba dc при развёртывании валит вывод во все потоки, в том числе и err
var: dc2_join_output.stderr_lines[-1:] # показать последнюю строку вывода
- name: Включение службы {{ samba_service }}
ansible.builtin.systemd:
name: "{{ samba_service }}"
enabled: true
state: restarted
masked: false
- name: Копирование конфигурации Kerberos
ansible.builtin.copy:
remote_src: true
src: /var/lib/samba/private/krb5.conf
dest: /etc/krb5.conf
- name: Настройка резолвера на 127.0.0.1
ansible.builtin.lineinfile:
path: /etc/resolvconf.conf
regexp: '^name_servers'
line: name_servers=127.0.0.1
- name: Обновление конфигурации резолвера
ansible.builtin.shell: "resolvconf -u"
- name: Перезагрузка узла после добавления в домен
ansible.builtin.reboot:
reboot_timeout: 3600