Добавить playbooks/promote_dc.yml

This commit is contained in:
2026-05-06 08:32:41 +03:00
parent e7b675abf2
commit e903d3f9cf
+57
View File
@@ -0,0 +1,57 @@
---
- 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