--- - name: Setup Windows Server 2025 as Additional Domain Controller hosts: all gather_facts: yes # В Ansible Semaphore эти переменные лучше передавать через Environment (Extra Variables) # и использовать защищенные хранилища (Key Store) для паролей! vars: domain_name: "example.local" # Имя вашего домена primary_dc_ip: "192.168.1.10" # IP-адрес текущего контроллера домена (для DNS) domain_admin_user: "Administrator@example.local" # Учетная запись админа домена # domain_admin_password: "{{ vault_domain_admin_password }}" # safe_mode_password: "{{ vault_safe_mode_password }}" # Пароль восстановления DSRM tasks: - name: Set Primary DC as DNS server (Required for Domain Join) ansible.windows.win_dns_client: adapter_names: "*" ipv4_addresses: - "{{ primary_dc_ip }}" - "127.0.0.1" - name: Install Active Directory Domain Services & Management Tools ansible.windows.win_feature: name: AD-Domain-Services state: present include_management_tools: yes register: ad_feature - name: Promote server to Additional Domain Controller microsoft.ad.domain_controller: domain_name: "{{ domain_name }}" domain_admin_user: "{{ domain_admin_user }}" domain_admin_password: "{{ domain_admin_password }}" safe_mode_password: "{{ safe_mode_password }}" state: domain_controller # Указываем, что сервер должен стать дополнительным DC в существующем домене register: dc_promotion - name: Reboot after promotion ansible.windows.win_reboot: msg: "Rebooting to apply Domain Controller promotion" reboot_timeout: 600 post_reboot_delay: 60 # Даем время на инициализацию служб AD после перезагрузки when: dc_promotion.reboot_required # Active Directory настраивает репликацию автоматически. # Следующий шаг принудительно инициирует синхронизацию для проверки. - name: Force Active Directory Replication (SyncAll) ansible.windows.win_command: repadmin /syncall /A /e /d register: repadmin_result changed_when: false ignore_errors: yes # Игнорируем ошибки, если топология еще не построилась - name: Show Replication Status ansible.builtin.debug: var: repadmin_result.stdout_lines