microsoft.ad.ldap inventory – Плагин инвентаризации для Active Directory
Примечание
Этот плагин инвентаризации входит в коллекцию microsoft.ad (версия 1.7.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install microsoft.ad. Для использования этого плагина инвентаризации необходимы дополнительные требования, см. Требования для подробностей.
Чтобы использовать его в плейбуке, укажите: microsoft.ad.ldap.
Добавлена в microsoft.ad 1.1.0
Описание
- Плагин инвентаризации для Active Directory или других источников LDAP.
- Использует конфигурационный файл YAML, который заканчивается
microsoft.ad.ldap.{yml|yaml}. - Каждый добавляемый хост установит
inventory_hostnameвnameобъекта компьютера LDAP иansible_hostв значение атрибута LDAPdNSHostName, если он задан. Если атрибутdNSHostNameне задан в объекте компьютера, тоansible_hostне устанавливается. Подробнее о том, как устанавливаются эти значения и как их настроить, см. Имя хоста инвентаризации LDAP. - Факт хоста
microsoft_ad_distinguished_nameтакже будет установлен в имя объекта хоста, использованного для получения записи хоста. - Любой другой необходимый факт должен быть определён в опции attributes.
Требования
Ниже перечислены требования к локальному контроллеру, выполняющему этот инвентаризационный плагин.
- dnspython - Для поддержки поиска сервера по опции
- pyspnego >= 0.8.0
- pyspnego[kerberos] - Для поддержки Kerberos и поиска сервера
- sansldap
- dpapi-ng - Для поддержки дешифрования LAPS
Параметры
Параметр | Комментарии |
|---|---|
attributes dictionary | Атрибуты LDAP для получения. Указанные ключи представляют собой запрашиваемые атрибуты LDAP, а значения для каждого атрибута — это словарь, отражающий, в какую переменную узла его следует установить и как. Каждый ключ внутреннего значения словаря — это имя переменной узла, которую нужно установить, а значение — это шаблон, используемый для получения значения. Если значение не установлено явно, оно будет использовать принудительно преобразованное значение, возвращаемое из атрибута LDAP. Атрибуты, обозначенные как однозначные в схеме LDAP, возвращаются как одно значение, многозначные атрибуты возвращаются как список значений. См. LDAP inventory attributes для получения дополнительной информации. Default: |
auth_protocol string | Протокол аутентификации, используемый при подключении к хосту LDAP. По умолчанию используется
Поддержка Kerberos требует установки дополнительных компонентов См. LDAP authentication для получения дополнительной информации. Этот параметр можно установить с помощью значения шаблона Jinja2. Варианты:
Конфигурация:
|
ca_cert string | Может быть путем к файлу сертификата CA PEM или DER, каталогом сертификатов PEM или строкой сертификата CA PEM, используемой для проверки сертификата. Если пропущено, хранилище CA по умолчанию, используемое для проверки, зависит от текущих параметров Python. Этот параметр можно установить с помощью значения шаблона Jinja2. Конфигурация:
|
cert_validation string | Поведение проверки сертификата при использовании соединения TLS. Это может быть установлено на
См. Certificate validation для получения дополнительной информации. Этот параметр можно установить с помощью значения шаблона Jinja2. Варианты:
Конфигурация:
|
certificate string | Сертификат или пакет сертификата с ключом, используемый для аутентификации сертификата. Значение может быть либо путем к файлу, содержащему сертификат, либо строкой сертификата с кодировкой PEM. При использовании пути к файлу сертификата файл может быть сертификатом с кодировкой PEM, пакетом сертификата и ключа с кодировкой PEM, сертификатом с кодировкой DER или пакетом сертификата и ключа с кодировкой PFX/PKCS12. Используйте certificate_key, если указанный сертификат не содержит ключ. Используйте certificate_password, если ключ зашифрован паролем. Этот параметр можно установить с помощью значения шаблона Jinja2. Конфигурация:
|
certificate_key string | Ключ сертификата, используемый для аутентификации сертификата. Значение может быть либо путем к файлу, содержащему ключ в кодировке PEM или DER, либо строкой ключа с кодировкой PEM. Используйте certificate_password, если ключ зашифрован паролем. Этот параметр можно установить с помощью значения шаблона Jinja2. Конфигурация:
|
certificate_password string | Пароль, используемый для расшифровки ключа сертификата, указанного в certificate или certificate_key. Этот параметр можно установить с помощью значения шаблона Jinja2. Конфигурация:
|
compose dictionary | Создать переменные из выражений jinja2. Default: |
connection_timeout integer | Тайм-аут в секундах ожидания установления соединения перед сбоем. Этот параметр можно установить с помощью значения шаблона Jinja2. Default: Конфигурация:
|
encrypt boolean | Требуется ли шифрование для подключения. Шифрование может выполняться с использованием протокола аутентификации или через TLS. auth_protocol Если используется Этот параметр можно задать с помощью значения шаблона Jinja2. Варианты:
Настройка:
|
filter string | Строка фильтра LDAP, используемая для запроса объектов компьютеров. По умолчанию она будет объединена с фильтром “(objectCategory=computer)”. Используйте filter_without_computer для переопределения этого поведения и использования только filter в качестве фильтра. |
filter_without_computer boolean добавлен в microsoft.ad 1.3.0 | Не будет объединять значение filter с фильтром по умолчанию “(objectCategory=computer)”. В большинстве случаев это должно быть Варианты:
|
groups dictionary | Добавляет хосты в группу на основе условных выражений Jinja2. По умолчанию: |
keyed_groups list / elements=dictionary | Добавляет хосты в группу на основе значений переменной. По умолчанию: |
|
default_value string добавлен в ansible-core 2.12 |
Значение по умолчанию, когда значение переменной хоста — пустая строка. Этот параметр взаимоисключает |
|
key string |
Ключ из входного словаря, используемый для создания групп. |
|
parent_group string |
Родительская группа для группы с ключом. |
|
prefix string |
Имя группы с ключом будет начинаться с этого префикса. По умолчанию: |
|
separator string |
Разделитель, используемый для построения имени группы с ключом. По умолчанию: |
|
trailing_separator boolean добавлен в ansible-core 2.12 |
Установите этот параметр в Этот параметр взаимоисключает Варианты:
|
leading_separator boolean добавлен в ansible-core 2.11 | Используется совместно с keyed_groups. По умолчанию имя группы с ключом, у которой нет указанного префикса или разделителя, будет начинаться с нижнего подчеркивания. Это связано с тем, что префикс по умолчанию — “” и разделитель по умолчанию — “_”. Установите этот параметр в False, чтобы опустить ведущий символ нижнего подчеркивания (или другой разделитель), если префикс не указан. Если имя группы получено из отображения, разделитель все равно используется для конкатенации элементов. Чтобы вообще не использовать разделитель в имени группы, установите разделитель для группы с ключом в пустую строку. Варианты:
|
password string | Пароль для аутентификации. Если auth_protocol — Если auth_protocol — Этот параметр можно задать с помощью значения шаблона Jinja2. Настройка:
|
port integer | Порт LDAP для подключения. Порт 389 используется для LDAP, а порт 686 — для LDAPS. По умолчанию используется порт Этот параметр можно задать с помощью значения шаблона Jinja2. Настройка:
|
search_base string | База поиска LDAP для поиска объектов компьютеров. По умолчанию используется При поиске в более крупной базе данных Active Directory рекомендуется сузить базу поиска для ускорения запросов. |
search_scope string | Область поиска LDAP.
Варианты:
|
server string | Контроллер домена/сервер для подключения. Если не указано, сервер будет определен из текущего файла krb5.conf См. Поиск сервера для получения дополнительной информации. Этот параметр можно задать с помощью значения шаблона Jinja2. Настройка:
|
strict boolean | Если Поскольку в выражениях можно использовать факты, они могут не всегда быть доступны, и по умолчанию мы игнорируем такие ошибки. Варианты:
|
tls_mode string | Используемый метод TLS. Если явным образом задан параметр port со значением
Рекомендуется использовать Этот параметр можно задать с помощью значения шаблона Jinja2. Варианты:
Настройка:
|
use_extra_vars boolean добавлен в ansible-core 2.11 | Объединить дополнительные переменные в доступные переменные для композиции (высший приоритет). Варианты:
Настройка:
|
username string | Имя пользователя для аутентификации. Если auth_protocol равен Если auth_protocol равен Этот параметр можно задать с помощью значения шаблона Jinja2. Настройка:
|
Примечания
Примечание
- См. Инвентаризация LDAP для получения более подробной информации о том, как использовать этот плагин инвентаризации.
- См. LAPS для получения дополнительной информации о том, как этот плагин может извлечь информацию о пароле LAPS.
- Этот плагин находится в стадии технического предварительного просмотра, и параметры модуля могут быть изменены на основе полученной обратной связи.
- Если в описании параметра не указано иное, значение, указанное в файле конфигурации, используется как есть. Только параметры подключения к LDAP позволяют использовать шаблон Jinja2.
- См. Справочная информация по подключениям LDAP для получения дополнительной информации о подключениях LDAP.
Примеры
# Set in the file ending with microsoft.ad.ldap.yml or microsoft.ad.ldap.yaml
plugin: microsoft.ad.ldap
####################################################################
# Connection Options #
# #
# These options control how the plugin connects to the LDAP server #
####################################################################
# Connects to ldap://dc01.domain.com:389
server: dc01.domain.com
port: 389
# Connects to ldaps://dc01.domain.com:636
server: dc01.domain.com
tls_mode: ldaps
# Connects to the global catalog
# ldap://dc01.domain.com:3268
server: dc01.domain.com
port: 3268
# Provides explicit user, will use the current Kerberos ticket if no credential
# is provided.
username: domain-user@DOMAIN.COM
password: Password123!
# Only allow Kerberos authentication.
auth_protocol: kerberos
# Verify LDAPS CA chain with custom CA chain.
tls_mode: ldaps
ca_cert: /home/user/certs/ldap.pem
# The username and password can be retrieved using a template with a lookup.
# Other connection options can also be set this way, the option description
# tells you whether it can be set to a template.
username: '{{ lookup("ansible.builtin.env", "LDAP_USERNAME") }}'
password: '{{ lookup("ansible.builtin.env", "LDAP_PASSWORD") }}'
##############################################
# Search Options #
# #
# These options control the searching rules #
##############################################
# Search for computer accounts in the Workshop OU.
search_base: OU=Workshop A,DC=domain,DC=com
# Filter the computer accounts returned for only ones with the dNSDomainName
# attribute set.
filter: (dNSDomainName=*)
# Filter computer accounts returned for ones starting with PROD and with the
# LAPS password set.
filter: (&(sAMAccountName=PROD*)(ms-Mcs-AdmPwd=*))
# See documentation for more details
attributes:
sAMAccountName:
sam_account_name:
objectSid:
computer_sid:
pwdLastSet:
password_last_set: this | microsoft.ad.as_datetime
comment:
host_comment
memberOf:
# Gets the value (1) of the first RDN (0) of each memberOf instance (this).
# For example 'CN=Domain Admins,CN=Users,DC=domain,DC=test'
# will be returned as just 'Domain Admins'
computer_membership: this | microsoft.ad.parse_dn | map(attribute="0.1")
location:
############################################################################
# LAPS Integration #
# #
# Examples on how to use the new Windows LAPS values as connection options #
############################################################################
attributes:
# msLAPS-Password is used if no encryption has been configured.
# Currently an encrypted LAPS password is not supported.
msLAPS-Password:
ansible_user: (this | from_json).n
ansible_password: (this | from_json).p
# msLAPS-EncryptedPassword is used if encryption has been configured.
# If the Python dpapi-ng library is installed the `this`` value will
# contain the entry `value` which is the decrypted value. The ``info``
# entry will contain the reason why the value could not be decrypted.
msLAPS-EncryptedPassword:
ansible_user: (this.value | from_json).n
ansible_password: (this.value | from_json).p
# ms-Mcs-AdmPwd is used for Legacy LAPS and stores just the password.
# The username needs to be hardcoded as a string value for this template.
ms-Mcs-AdmPwd:
ansible_user: '"Administrator"'
ansible_password: this
#####################################################################
# Constructed Options #
# #
# These options control the constructed values like vars and groups #
#####################################################################
# Build composed host variables. Requires attributes to be set in the
# attributes option to be referenced here.
compose:
host_var: computer_sid
# Conditionals that adds found hosts to the groups specified.
groups:
# Adds all hosts to the windows group
windows: true
# Uses the memberOf fact documented above to place the host in the production
# group if it's a member of that group
production: '"Production Group" in computer_membership'
# Adds the host to a group site_{{ location }} with the default group of
# site_unknown if the location isn't defined
keyed_groups:
- key: location | default(omit)
prefix: site
default_value: unknown
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/microsoft/ad/ldap_inventory.html