Как связать инвентаризацию с группой компьютеров в домене?

Я изучаю этот замечательный инструмент, и в целом он работает хорошо — необходимое программное обеспечение разворачивается как на Linux, так и на Windows. Однако у меня возникла трудность с интеграцией его с Active Directory. Я хотел бы, чтобы список нужных компьютеров формировался не из файла, а автоматически извлекался из группы в AD. 

Я заметил, что существует плагин <a href="https://docs.ansible.com/ansible/latest/collections/microsoft/ad/ldap_inventory.html" rel="nofollow">microsoft.ad.ldap inventory</a> и ознакомился с настройкой подключения к домену, но не могу понять, как указать, из какой группы следует извлекать список компьютеров. Можете ли вы указать мне направление и предложить пример?
  • 10 сентября 2024 г. 10:33
Ответы на вопрос 2
Чтобы интегрировать инвентаризацию 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 и извлекать информацию о компьютерах из нужной вам группы.
Странно, но переименовал свой файл MyTest.yml в MyTest.microsoft.ad.ldap.yml и всё заработало..... Неожиданно однако...
Похожие вопросы