diff --git a/ansible_deploy_dc/add_samba_clients.yml b/ansible_deploy_dc/add_samba_clients.yml index ade69fe..0358b1a 100644 --- a/ansible_deploy_dc/add_samba_clients.yml +++ b/ansible_deploy_dc/add_samba_clients.yml @@ -27,24 +27,17 @@ name: "{{ inventory_hostname }}.{{ dc_details.realm }}" use: systemd - - name: Настройка синхронизации времени с контроллером домена - {{ dc_details.dc_ip }} - ansible.builtin.lineinfile: - path: /etc/resolvconf.conf - regexp: '^server .*' - line: server {{ dc_details.dc_ip }} - - - name: Перезапуск службы синхронизации времени - ansible.builtin.systemd: - name: "{{ sync_time_daemon }}" - enabled: true - state: restarted - masked: false - - - name: Настройка резолвера на контроллер домена - {{ dc_details.dc_ip }} + - name: Настройка резолвера на контроллеры домена - {{ dc_details.dc1_ip }}, {{ dc_details.dc2_ip }} ansible.builtin.lineinfile: path: /etc/resolvconf.conf regexp: '^name_servers' - line: name_servers={{ dc_details.dc_ip }} + 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" diff --git a/ansible_deploy_dc/add_samba_users.yml b/ansible_deploy_dc/add_samba_users.yml index c657a8f..a71793b 100644 --- a/ansible_deploy_dc/add_samba_users.yml +++ b/ansible_deploy_dc/add_samba_users.yml @@ -1,7 +1,7 @@ --- - name: Создание пользователей контроллера домена - hosts: dctest + hosts: dctest1 vars: - samba_user_mode: create vars_files: diff --git a/ansible_deploy_dc/check_primary_dc.yml b/ansible_deploy_dc/check_dc.yml similarity index 99% rename from ansible_deploy_dc/check_primary_dc.yml rename to ansible_deploy_dc/check_dc.yml index 93c8148..cd7d748 100644 --- a/ansible_deploy_dc/check_primary_dc.yml +++ b/ansible_deploy_dc/check_dc.yml @@ -1,7 +1,7 @@ --- - name: Проверка состояния контроллера домена - hosts: dctest + hosts: dctest1 vars_files: - vars.yml - mutable_vars.yml diff --git a/ansible_deploy_dc/deploy_primary_dc.yml b/ansible_deploy_dc/deploy_primary_dc.yml index e3f5beb..210f87d 100644 --- a/ansible_deploy_dc/deploy_primary_dc.yml +++ b/ansible_deploy_dc/deploy_primary_dc.yml @@ -1,7 +1,7 @@ --- - name: Разворачивание контроллера домена - hosts: dctest + hosts: dctest1 vars_files: - vars.yml - mutable_vars.yml diff --git a/ansible_deploy_dc/deploy_second_dc.yml b/ansible_deploy_dc/deploy_second_dc.yml new file mode 100644 index 0000000..e086448 --- /dev/null +++ b/ansible_deploy_dc/deploy_second_dc.yml @@ -0,0 +1,125 @@ +--- + +- name: Разворачивание контроллера домена + hosts: dctest2 + vars_files: + - vars.yml + - mutable_vars.yml + + 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: "{{ inventory_hostname }}.{{ dc_details.realm }}" + use: systemd + + - name: Установка пакетов {{ packages }} + apt_rpm: + package: "{{ item }}" + state: present + update_cache: yes + loop: "{{ packages }}" + + - name: Разрешить подключение клиентов для синхронизации времени + ansible.builtin.lineinfile: + path: /etc/chrony.conf + line: allow all + create: yes + + - name: Настройка синхронизации времени с контроллером домена - {{ dc_details.dc_ip }} + ansible.builtin.lineinfile: + path: /etc/resolvconf.conf + regexp: '^server .*' + line: server {{ dc_details.dc_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.dc_ip }} + ansible.builtin.lineinfile: + path: /etc/resolvconf.conf + regexp: '^name_servers' + line: name_servers={{ dc_details.dc_ip }} + + # - name: Настройка резолвера доменную зону - {{ dc_details.realm }} + # ansible.builtin.lineinfile: + # path: /etc/resolvconf.conf + # regexp: '^search_domains' + # line: search_domains={{ dc_details.realm }} + + ################################################################################################ + + # !!! Как обратится к первому контроллеру,чтобы добавить в DNS запись о втором контроллере? !!! + + ################################################################################################ + + - name: Обновление конфигурации резолвера + ansible.builtin.shell: "resolvconf -u" + + - name: Разворачивание первого контроллера домена + ansible.builtin.shell: | + samba-tool domain provision --realm={{ dc_details.realm }} --domain={{ dc_details.domain }} \ + --adminpass='{{ dc_details.adminpass }}' --dns-backend=SAMBA_INTERNAL \ + --option="dns forwarder={{ dc_details.dns_forwarder }}" --server-role=dc --use-rfc2307 + register: dc_provision_output + - ansible.builtin.debug: + msg: dc_provision_output.stdout_lines + + - 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 diff --git a/ansible_deploy_dc/hosts.ini b/ansible_deploy_dc/hosts.ini index f3d86eb..5465932 100644 --- a/ansible_deploy_dc/hosts.ini +++ b/ansible_deploy_dc/hosts.ini @@ -6,7 +6,8 @@ alts2 ansible_host=10.1.1.12 ansible_user=root alts3 ansible_host=10.1.1.13 ansible_user=root [test] -dctest ansible_host=192.168.13.139 ansible_user=root +dctest1 ansible_host=192.168.13.139 ansible_user=root +dctest2 ansible_host=192.168.13.155 ansible_user=root [testws] altws ansible_host=192.168.13.152 ansible_user=root diff --git a/ansible_deploy_dc/mutable_vars.yml b/ansible_deploy_dc/mutable_vars.yml index 8138490..25820fd 100644 --- a/ansible_deploy_dc/mutable_vars.yml +++ b/ansible_deploy_dc/mutable_vars.yml @@ -1,5 +1,6 @@ dc_details: - dc_ip: 192.168.13.139 + dc1_ip: 192.168.13.139 + dc2_ip: 192.168.13.155 realm: alt.lan realm_u: ALT.LAN domain: alt