community.windows.laps_password – Извлечение пароля LAPS для сервера.
Примечание
Этот плагин входит в коллекцию community.windows (версия 1.2.0).
Для его установки используйте: ansible-galaxy collection install community.windows.
Чтобы использовать его в плейбуке, укажите: community.windows.laps_password.
Описание
- Этот поиск возвращает пароль LAPS, установленный для сервера из базы данных Active Directory.
- Дополнительную информацию об установке предварительных требований и тестировании см. на странице https://github.com/jborean93/ansible-lookup-laps_password.
Требования
Ниже перечислены требования, необходимые на локальном узле-контроллере, который выполняет этот поиск.
- python-ldap
Параметры
| Параметр | Варианты/Значения по умолчанию | Конфигурация | Комментарии |
|---|---|---|---|
| _terms строка / обязательно | Имя хоста для извлечения пароля LAPS. Это Common Name (CN) хоста. | ||
| allow_plaintext булево |
| При установке в yes, разрешит передачу данных без шифрования.Сильно рекомендуется этого не трогать, чтобы избежать раскрытия учетных данных по сети. Используйте scheme=ldaps, auth=gssapi, или start_tls=yes, чтобы обеспечить шифрование трафика. | |
| auth строка |
| Тип аутентификации для подключения к серверу Active Directory. При использовании simple, необходимо установить параметры username и password. Если не использовать scheme=ldaps или start_tls=True, эти учетные данные будут переданы по сети в открытом виде.Рекомендуется использовать gssapi, так как это автоматически зашифрует трафик.При использовании gssapi, выполните kinit перед запуском Ansible, чтобы получить действительный билет Kerberos.Нельзя использовать gssapi, если установлено либо scheme=ldaps, либо start_tls=True. | |
| ca_cert строка | Путь к файлу сертификата CA в формате PEM для проверки сертификатов. Проверка сертификатов используется при scheme=ldaps или start_tls=yes. Это может привести к сбоям на узлах со старой установкой OpenLDAP, например, на MacOS. Необходимо обновить OpenLDAP перед повторной установкой python-ldap, чтобы исправить работу. псевдонимы: cacert_file | ||
| domain строка / обязательно | Домен для поиска пароля LAPS. Это может быть имя домена Windows, видимое контроллеру Ansible из DNS, или конкретный FQDN контроллера домена. Поддерживает имя домена/хоста или явную LDAP-URI с уже заполненным домен/хост. Если URI установлен, port и scheme игнорируются. | ||
| password строка | Пароль для username.Необходимо при установке username. | ||
| port целое число | Порт LDAP для связи. Если kdc уже является LDAP-URI, то этот параметр игнорируется. | ||
| scheme строка |
| Схема LDAP для использования. При использовании ldap, рекомендуется установить auth=gssapi, или start_tls=yes, иначе трафик будет передаваться в открытом виде.Хост Active Directory должен быть настроен на ldaps с сертификатом, прежде чем его можно будет использовать.Если kdc уже является LDAP-URI, то этот параметр игнорируется. | |
| search_base строка | Изменяет базу поиска при поиске хоста в Active Directory. Будет по умолчанию искать в defaultNamingContext сервера Active Directory.Если найдено несколько совпадений, требуется более явная база поиска search_base, чтобы найти только 1 хост. При поиске в базе данных Active Directory большего размера, рекомендуется сузить базу поиска search_base для повышения производительности. | ||
| start_tls булево |
| Когда scheme=ldap, будет использоваться расширение StartTLS для шифрования трафика, отправляемого по сети.Это требует, чтобы Active Directory был настроен с сертификатом, поддерживающим StartTLS. Это игнорируется, когда scheme=ldaps - трафик уже зашифрован. | |
| username строка | Требуется при использовании auth=simple.Имя пользователя для аутентификации. Рекомендуется использовать имя пользователя в формате UPN, например, username@DOMAIN.COM.Требуется при auth=simple и не поддерживается при auth=gssapi. Вызовите kinit вне Ansible, если требуется auth=gssapi. | ||
| validate_certs строка |
| При использовании scheme=ldaps или start_tls=yes, это управляет поведением проверки сертификатов.demand завершится с ошибкой, если сертификат не предоставлен или недействителен.try завершится с ошибкой для недействительных сертификатов, но продолжит работу, если сертификат не предоставлен.allow запросит и проверит сертификат, но продолжит работу, даже если он недействителен.never не будет запрашивать сертификат от сервера, поэтому проверка не выполняется. |
Примечания
Примечание
- Если хост был найден, но у него не было атрибута пароля LAPS
ms-Mcs-AdmPwd, поиск завершится с ошибкой. - Из-за конфиденциального характера данных, передаваемых по сети, настоятельно рекомендуется использовать
auth=gssapi,scheme=ldaps, илиstart_tls=yes. - Отказ от использования одного из вышеперечисленных параметров приведет к передаче учетных данных пользователя и пароля LAPS в открытом виде.
- В некоторых сценариях может не работать на хосте со старой установкой OpenLDAP, например, на MacOS. Рекомендуется установить последнюю версию OpenLDAP и скомпилировать python-ldap с этой версией. Дополнительную информацию см. на странице https://keathmilligan.net/python-ldap-and-macos.
Примеры
# This isn't mandatory but it is a way to call kinit from within Ansible before calling the lookup
- name: call kinit to retrieve Kerberos token
expect:
command: kinit username@ANSIBLE.COM
responses:
(?i)password: SecretPass1
no_log: True
- name: Get the LAPS password using Kerberos auth, relies on kinit already being called
set_fact:
ansible_password: "{{ lookup('community.windows.laps_password', 'SERVER', domain='dc01.ansible.com') }}"
- name: Specific the domain host using an explicit LDAP URI
set_fact:
ansible_password: "{{ lookup('community.windows.laps_password', 'SERVER', domain='ldap://ansible.com:389') }}"
- name: Use Simple auth over LDAPS
set_fact:
ansible_password: "{{ lookup('community.windows.laps_password', 'server',
domain='dc01.ansible.com',
auth='simple',
scheme='ldaps',
username='username@ANSIBLE.COM',
password='SuperSecret123') }}"
- name: Use Simple auth with LDAP and StartTLS
set_fact:
ansible_password: "{{ lookup('community.windows.laps_password', 'app01',
domain='dc01.ansible.com',
auth='simple',
start_tls=True,
username='username@ANSIBLE.COM',
password='SuperSecret123') }}"
- name: Narrow down the search base to a an OU
set_fact:
ansible_password: "{{ lookup('community.windows.laps_password', 'sql10',
domain='dc01.ansible.com',
search_base='OU=Databases,DC=ansible,DC=com') }}"
- name: Set certificate file to use when validating the TLS certificate
set_fact:
ansible_password: "{{ lookup('community.windows.laps_password', 'windows-pc',
domain='dc01.ansible.com',
start_tls=True,
ca_cert='/usr/local/share/certs/ad.pem') }}"
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого поиска:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| _raw строка | успешно | Пароль(и) LAPS для запрошенного хоста(ов). |
Авторы
- Jordan Borean (@jborean93)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/windows/laps_password_lookup.html