Чтобы интегрировать инвентаризацию Ansible с Active Directory и автоматически извлекать список компьютеров из определенной группы, вам действительно подойдет плагин `microsoft.ad.ldap_inventory`. Этот плагин позволяет вам динамически извлекать информацию о компьютерах из вашего домена.
Вот основные шаги и пример конфигурации для настройки инвентаризации, извлекая компьютеры из определенной группы в Active Directory:
### 1. Установка необходимых зависимостей
Убедитесь, что у вас установлены все необходимые зависимости для работы с Active Directory, если вы этого ещё не сделали:
```bash
pip install ansible[ldap]
```
### 2. Настройка конфигурации `ldap_inventory`
Создайте файл конфигурации для инвентаризации, например `ldap_inventory.yml`. В этом файле вы можете указать все параметры подключения и настройки группы.
Пример содержимого файла:
```yaml
plugin: microsoft.ad.ldap_inventory
# Укажите адрес вашего LDAP-сервера
uri: ldap://your-ldap-server:389
# Укажите DN пользователя для подключения
bind_dn: "CN=your-user,CN=Users,DC=yourdomain,DC=com"
# Укажите пароль для подключения
bind_password: your-password
# Укажите основы для поиска
base_dn: "DC=yourdomain,DC=com"
# Укажите фильтр для определения группы, из которой будут извлекаться компьютеры
group_filter: "(&(objectClass=group)(cn=YourGroupName))"
# Укажите фильтр для поиска объектов компьютеров
computer_filter: "(objectClass=computer)"
```
### 3. Обновление инвентаризации
После того как файл конфигурации создан, вы можете обновить инвентаризацию и получить список компьютеров, входящих в указанную группу. Запустите следующую команду Ansible:
```bash
ansible-inventory -i ldap_inventory.yml --list
```
### 4. Поиск компьютеров по группе
Если вам нужно фильтровать только компьютеры из конкретной группы, вы можете использовать `group_filter`, как указано выше. Это даст вам доступ только к машинам, которые принадлежат к указанной группе в Active Directory.
### 5. Применение инвентаризации в ваших плейбуках
После настройки вы можете ссылаться на извлеченный инвентарь в своих плейбуках, например:
```yaml
- hosts: all
tasks:
- name: Проверка состояния компьютера
win_ping:
```
### Полезные ссылки
- [Документация по Ansible-Inventory](https://docs.ansible.com/ansible/latest/collections/microsoft/ad/ldap_inventory.html)
- [Логи и отладка](https://docs.ansible.com/ansible/latest/user_guide/intro_logging.html)
Таким образом, вы сможете связать инвентаризацию Ansible с вашей Active Directory и извлекать информацию о компьютерах из нужной вам группы.