mod
parent
4d4510f310
commit
97443153a8
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Разворачивание первого контроллера домена
|
- name: Разворачивание первого контроллера домена
|
||||||
hosts: dctest1
|
hosts: dc1
|
||||||
roles:
|
roles:
|
||||||
- deploy_dc1
|
- deploy_dc1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Добавление DNS записи о втором контроллере на первый
|
- name: Добавление DNS записи о втором контроллере на первый
|
||||||
hosts: dctest1
|
hosts: dc1
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Проверка соответствия ОС
|
- name: Проверка соответствия ОС
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Разворачивание второго контроллера домена
|
- name: Разворачивание второго контроллера домена
|
||||||
hosts: dctest2
|
hosts: dc2
|
||||||
roles:
|
roles:
|
||||||
- deploy_dc2
|
- deploy_dc2
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Репликация между контроллерами
|
- name: Репликация между контроллерами
|
||||||
hosts: dctest1
|
hosts: dc1
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Проверка соответствия ОС
|
- name: Проверка соответствия ОС
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Создание пользователей контроллера домена
|
- name: Создание пользователей контроллера домена
|
||||||
hosts: dctest1
|
hosts: dc1
|
||||||
vars:
|
vars:
|
||||||
- samba_user_mode: create # или 'delete'
|
- samba_user_mode: create # или 'delete'
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Добавление компьютеров в домен
|
- name: Добавление компьютеров в домен
|
||||||
hosts: testws
|
hosts: ws
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Проверка того, что узел не является членом домена
|
- name: Проверка того, что узел не является членом домена
|
||||||
|
|
|
@ -8,16 +8,9 @@ dc2 ansible_host=10.1.1.12
|
||||||
[nas]
|
[nas]
|
||||||
"{{ hostnames.nas_host }}" ansible_host=10.1.1.13
|
"{{ hostnames.nas_host }}" ansible_host=10.1.1.13
|
||||||
|
|
||||||
[test]
|
[ws]
|
||||||
dctest1 ansible_host=192.168.13.139
|
"{{ hostnames.cl1_host }}" ansible_host=10.1.1.14
|
||||||
dctest2 ansible_host=192.168.13.155
|
"{{ hostnames.cl2_host }}" ansible_host=10.1.1.15
|
||||||
|
|
||||||
[nastest]
|
|
||||||
"{{ hostnames.nas_host }}" ansible_host=192.168.13.166
|
|
||||||
|
|
||||||
[testws]
|
|
||||||
"{{ hostnames.cl1_host }}" ansible_host=192.168.13.152
|
|
||||||
"{{ hostnames.cl2_host }}" ansible_host=192.168.13.153
|
|
||||||
|
|
||||||
[all:vars]
|
[all:vars]
|
||||||
ansible_user=root
|
ansible_user=root
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Проверка наличия развёрнутого домена на хосте {{ ansible_hostname }}
|
- name: Проверка наличия развёрнутого домена на узле {{ ansible_hostname }}
|
||||||
ansible.builtin.shell: "samba-tool domain info {{ ansible_default_ipv4.address }}"
|
ansible.builtin.shell: "samba-tool domain info {{ ansible_default_ipv4.address }}"
|
||||||
register: samba_tool_result
|
register: samba_tool_result
|
||||||
|
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
msg: Операционная система должна быть Альт
|
msg: Операционная система должна быть Альт
|
||||||
when: ansible_os_family != "Altlinux"
|
when: ansible_os_family != "Altlinux"
|
||||||
|
|
||||||
- name: Проверка наличия развёрнутого домена на хосте {{ ansible_hostname }}
|
- name: Проверка наличия развёрнутого домена на узле {{ ansible_hostname }}
|
||||||
ansible.builtin.shell: "samba-tool domain info {{ ansible_default_ipv4.address }}"
|
ansible.builtin.shell: "samba-tool domain info {{ ansible_default_ipv4.address }}"
|
||||||
register: samba_tool_result
|
register: samba_tool_result
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: Если на хосте развёрнут домен, выполнение прерывается
|
- name: Если на узле развёрнут домен, выполнение прерывается
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: На хосте {{ ansible_hostname }} обнаружен развёрнутый домен. Прерываю выполнение
|
msg: На хосте {{ ansible_hostname }} обнаружен развёрнутый домен. Прерываю выполнение
|
||||||
when:
|
when:
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
dist_upgrade: true
|
dist_upgrade: true
|
||||||
clean: true
|
clean: true
|
||||||
|
|
||||||
- name: Назначение корректного имени хоста
|
- name: Назначение корректного имени узла
|
||||||
ansible.builtin.hostname:
|
ansible.builtin.hostname:
|
||||||
name: "{{ hostnames.dc1_host }}.{{ dc_details.realm }}"
|
name: "{{ hostnames.dc1_host }}.{{ dc_details.realm }}"
|
||||||
use: systemd
|
use: systemd
|
||||||
|
|
98
readme.md
98
readme.md
|
@ -23,6 +23,11 @@
|
||||||
- [Подготовка шаблона Альт Сервер](#подготовка-шаблона-альт-сервер)
|
- [Подготовка шаблона Альт Сервер](#подготовка-шаблона-альт-сервер)
|
||||||
- [Подготовка шаблона Альт Рабочая станция и Альт Рабочая станция К](#подготовка-шаблона-альт-рабочая-станция-и-альт-рабочая-станция-к)
|
- [Подготовка шаблона Альт Рабочая станция и Альт Рабочая станция К](#подготовка-шаблона-альт-рабочая-станция-и-альт-рабочая-станция-к)
|
||||||
- [Разворачивание группировки виртуальных машин](#разворачивание-группировки-виртуальных-машин)
|
- [Разворачивание группировки виртуальных машин](#разворачивание-группировки-виртуальных-машин)
|
||||||
|
- [Подготовка первого контроллера домена](#подготовка-первого-контроллера-домена)
|
||||||
|
- [Подготовка второго контроллера домена](#подготовка-второго-контроллера-домена)
|
||||||
|
- [Добавление DNS записи о втором контроллере на первый](#добавление-dns-записи-о-втором-контроллере-на-первый)
|
||||||
|
- [Разворачивание второго контроллера домена](#разворачивание-второго-контроллера-домена)
|
||||||
|
- [Репликация между контроллерами](#репликация-между-контроллерами)
|
||||||
|
|
||||||
### Описание стенда
|
### Описание стенда
|
||||||
|
|
||||||
|
@ -157,7 +162,7 @@ systemctl enable cloud-final
|
||||||
Процесс создания группировки виртуальных машин запускается из директории `ansible` с помощью команды:
|
Процесс создания группировки виртуальных машин запускается из директории `ansible` с помощью команды:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ansible-playbook deploy_vms_role.yml
|
ansible-playbook 01_deploy_vms_role.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
В результате выполнения команды в гипервизоре PVE будут созданы 5 виртуальных машин в соответствии со схемой стенда:
|
В результате выполнения команды в гипервизоре PVE будут созданы 5 виртуальных машин в соответствии со схемой стенда:
|
||||||
|
@ -168,3 +173,94 @@ ansible-playbook deploy_vms_role.yml
|
||||||
4. `ws` - Клиент, Рабочая станция
|
4. `ws` - Клиент, Рабочая станция
|
||||||
5. `kws` - Клиент, Рабочая станция К
|
5. `kws` - Клиент, Рабочая станция К
|
||||||
|
|
||||||
|
### Подготовка первого контроллера домена
|
||||||
|
|
||||||
|
Для развёртывания первого контроллера домена используется ansible роль - Разворачивание первого контроллера домена.
|
||||||
|
|
||||||
|
Запуск выполняется из директории `ansible` с помощью команды:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook 02_deploy_dc1_role.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
В этой роли выполняются 2 задачи: развёртывание контроллера и проверка развёртывания.
|
||||||
|
|
||||||
|
Задача развёртывания контроллера разделена на подзадачи (таски):
|
||||||
|
|
||||||
|
* **Проверка соответствия ОС** - таск выполнится при условии запуска на узле с ОС Альт, в противном случае будет выведено соответствующее сообщение и выполнение прервётся;
|
||||||
|
* **Проверка наличия развёрнутого домена на узле** - если на узле уже развёрнут контроллер домена, выполнение прервётся;
|
||||||
|
* **Обновление системы** - выполняется обновление системы до актуального состояния;
|
||||||
|
* **Назначение корректного имени узла** - устанавливается имя узла в соответствии с указанным в переменной в файле `mutable_vars.yml`;
|
||||||
|
* **Установка пакетов** - выполняется установка пакетов, необходимых для работы контроллера домена. Список пакетов указан в файле `vars.yml`;
|
||||||
|
* **Конфигурация NTP** - режим работы NTP переключается в значение `server`;
|
||||||
|
* **Включение службы синхронизации времени chrony** - включается и добавляется в автозагрузку служба `chrony`;
|
||||||
|
* **Отключение служб, которые будут конфликтовать с контроллером** - для корректной работы `samba` необходимо отключить службы которые будут конфликтовать. Перечень этих служб указан в переменных в файле `vars.yml`;
|
||||||
|
* **Удалить старую конфигурацию Samba** - удаляется старая конфигурация Samba, если таковая была;
|
||||||
|
* **Создать каталог для хранения групповых политик** - создаётся каталог для хранения групповых политик;
|
||||||
|
* **Настройка резолвера на 127.0.0.1** - значение резолвера устанавливается локальный адрес;
|
||||||
|
* **Обновление конфигурации резолвера** - выполняется обновление настроек резолвера;
|
||||||
|
* **Разворачивание первого контроллера домена** - выполняется непосредственное разворачивание контроллера домена;
|
||||||
|
* **Включение службы `samba`** - после развёртывания контроллера, запускается служба;
|
||||||
|
* **Копирование конфигурации Kerberos** - копируется созданная при развёртывании конфигурация Kerberos.
|
||||||
|
|
||||||
|
После развёртывания запускается задача проверки корректности работы контроллера домена. Эта задача, в свою очередь, разеделена на подзадачи:
|
||||||
|
|
||||||
|
* **Проверка наличия развёрнутого домена на узле** - если служба `samba` не работает на контроллере, выполнение задачи будет прервано;
|
||||||
|
* **Информация о домене** - на экран выводится краткая информация о домене;
|
||||||
|
* **Получение настройки резолвера** - выполняется проверка корректности настройки резолвера - указание на самого себя;
|
||||||
|
* **Записи служб DNS. Kerberos** - выполняется проверка работы DNS, записи служб Kerberos;
|
||||||
|
* **Записи служб DNS. LDAP** - выполняется проверка работы DNS, записи служб LDAP;
|
||||||
|
* **Записи служб DNS. A запись** - выполняется проверка работы DNS, наличие основной записи (А) о контроллере;
|
||||||
|
* **Проверка возможности авторизации Kerberos** - попытка авторизации на контроллере домена;
|
||||||
|
* **Текущие билеты Kerberos** - вывод текущего билета Kerberos после авторизации.
|
||||||
|
|
||||||
|
### Подготовка второго контроллера домена
|
||||||
|
|
||||||
|
Для подготовки второго контроллера домена используются:
|
||||||
|
|
||||||
|
* ансибл плэйбук - Добавление DNS записи о втором контроллере на первый
|
||||||
|
* ансибл роль - Разворачивание второго контроллера домена
|
||||||
|
* ансибл плэйбук - Репликация между контроллерами
|
||||||
|
|
||||||
|
#### Добавление DNS записи о втором контроллере на первый
|
||||||
|
|
||||||
|
В этой задаче выполняются следующие действия:
|
||||||
|
|
||||||
|
* **Проверка соответствия ОС** - задача будет выполнятся только на ОС семейства Альт;
|
||||||
|
* **Добавление DNS записи** - на первом контроллере домена в DNS добавляется А запись о втором контроллере домена.
|
||||||
|
|
||||||
|
Запуск выполняется из директории `ansible` с помощью команды:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook 03_add_dns_record.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Разворачивание второго контроллера домена
|
||||||
|
|
||||||
|
В роли выполняются следующие задачи:
|
||||||
|
|
||||||
|
* Развёртывание второго контроллера домена
|
||||||
|
* Проверка корректности развёртывания второго контроллера домена.
|
||||||
|
|
||||||
|
В этих задачах выполняются аналогичные подзадачи тем, которые выполнялись при развёртывании первого контроллера домена, за исключением указания резолвера. На втором контроллере домена в качестве резолвера указывается адрес первого контроллера.
|
||||||
|
|
||||||
|
Запуск выполняется из директории `ansible` с помощью команды:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook 04_deploy_dc2_role.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Репликация между контроллерами
|
||||||
|
|
||||||
|
В задаче выполняются действия:
|
||||||
|
|
||||||
|
* **Проверка соответствия ОС** - задача будет выполнятся только на ОС семейства Альт;
|
||||||
|
* **Проверка наличия развёрнутого домена** - если домен не развёрнут, выполнение задачи будет прервано;
|
||||||
|
* **Репликация в направлении контроллер 2 -> контроллер 1** - выполняется репликация в соответствующем направлении;
|
||||||
|
* **Репликация в направлении контроллер 1 -> контроллер 2** - выполняется репликация в соответствующем направлении;
|
||||||
|
|
||||||
|
Запуск выполняется из директории `ansible` с помощью команды:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook 05_dc_replication.yml
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue