Шаг 1. Установка Ansible-роли
В консоли сервера FreeIPA выполняем обновление пакетов:
1
|
sudo apt update -y && apt upgrade -y
|
Загружаем на наш доменный сервер FreeIPA ansible и ansible роль:
1
2
3
|
sudo apt install ansible -y
sudo ansible-galaxy install ipaclient
sudo apt install sshpass -y
|
Создаем и переходим в рабочую директорию:
1
|
sudo mkdir /opt/freeipa && cd /opt/freeipa
|
Шаг 2. Создаем файл inventory.ini
Прописываем:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# Сервера-клиенты на присоединение в домен:
[ipaclients]
client-1.domain.local
client-2.domain.local
client-3.domain.local
# Сервер домена FreeIPA:
[ipaservers]
freeipa.domain.local
# Переменные для мастера установки (меняем на свои):
[ipaclients:vars]
ipaclient_domain=domain.local
ipaclient_realm=DOMAIN.LOCAL
ipaadmin_principal=admin
ipaadmin_password=changeMe
ipaclient_no_ntp=yes
ipaclient_mkhomedir=yes
|
Сохраняем, закрываем.
Все сервера в списках должны резолвиться по имени.
Дополнительно в этой же директории можно создать файл ansible.cfg
1
2
|
[defaults]
host_key_checking=false
|
Чтобы при подключении сервер не запрашивал отпечаток ключа.
Здесь же создаём файл ipa-playbook.yaml
Содержимое которого (remote_user меняйте на своего пользователя удаленного компьютера, который имеет право выполнять команды под sudo):
1
2
3
4
5
6
7
8
9
10
11
|
---
- name: "Playbook to configure IPA clients"
hosts: ipaclients
become: true
remote_user: admin
gather_facts: true
roles:
- role: ipaclient
state: present
...
|
- Также, возможно необходимо будет доустановить библиотеку python
1
2
|
sudo apt install python3-pip
sudo pip install python-gssapi
|
Запускаем ansible playbook:
1
|
ansible-playbook ipa-playbook.yaml -i inventory.ini
|
Дожидаемся процесса установки.
Готово. Наши сервера успешно присоединены к домену.