Files
semaphore/playbooks/promote_dc.yml
T

57 lines
2.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
- 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