win_laps
Ansible Роль win_laps
Устанавливает и настраивает приложение Local Administrator Password Solution на хосте Windows.
Это может использоваться для;
- Установки серверной части и добавления необходимых объектов схемы Active Directory и прав
- Создания GPO для автоматической отправки конфигурации LAPS клиентам
- Установки клиентской части
Эта роль в основном является демонстрацией концепции и предназначена для упрощения настройки тестового домена с интегрированным LAPS. Нет причин, по которым вы не можете запустить это в реальной среде, но из-за комплексных изменений, требуемых LAPS в AD, пожалуйста, протестируйте это перед работой в производственной среде.
Требования
- Windows Server 2012 R2+
Примечание: Эта роль была протестирована на Windows Server 2016, другие версии должны работать, но это не гарантируется.
Требования для серверной части
При использовании этой роли для установки серверной части вам необходимо;
- Подключиться как пользователь, который является частью группы домена
Schema Admin
- Или, указать пользователя, который является частью группы домена
Schema Admin
через переменныеopt_laps_domain_username
илиopt_laps_domain_password
- Убедиться, что вы подключены к контроллеру домена как администратор
Требования для настройки GPO
При использовании этой роли для настройки GPO вам необходимо убедиться, что вы подключены как пользователь, который имеет права на создание новых GPO и связывание их с целевыми организационными единицами.
Требования для клиентской части
Единственное требование для установки клиентских компонентов - быть администратором на хосте.
Переменные
Обязательные переменные
Когда opt_laps_install_server
или opt_laps_configure_gpo
равно True
, следующие переменные обязательны;
man_laps_ou_containers
: Список организационных единиц для настройки с установкой LAPS. Это применит соответствующие права в AD, а также свяжет вновь созданный GPO LAPS, если это необходимо.
Значения для man_laps_ou_containers
должны быть полным определенным именем OU, например, OU=Workstations,DC=domain,DC=local
.
Необязательные переменные
Следующие переменные являются необязательными;
opt_laps_admin_account
: Меняет имя учетной записи администратора для управления с помощью LAPS, по умолчанию - учетная записьBUILTIN\Administrator
.opt_laps_configure_gpo
: Когда установлено вTrue
иopt_laps_install_server
равноTrue
, создаст GPO для применения конфигурации LAPS и свяжет его сman_laps_out_containers
(по умолчанию:False
).opt_laps_install_client
: Когда установлено вTrue
, установит компоненты клиентской части (по умолчанию:False
).opt_laps_install_powershell
: Когда установлено вTrue
, установит модуль PowerShell LAPSAdmPwd.PS
(по умолчанию:False
).opt_laps_install_server
: Когда установлено вTrue
, установит и настроит серверные компоненты, а также конфигурации Active Directory (по умолчанию:False
).opt_laps_install_ui
: Когда установлено вTrue
, установит приложение LAPS UI (по умолчанию:False
).opt_laps_install_source
: Путь или URL для установки LAPS msi, по умолчанию используется URL загрузки Microsoft.opt_laps_product_id
: Укажите уникальный идентификатор продукта установщика LAPS, который используется для проверок идемпотентности; по умолчанию установщик будет пропущен, если%ProgramFiles%\LAPS
уже существует.opt_laps_skip_reboot
: Когда установлено вTrue
, не будет перезагружать хост, если установка LAPS требует перезагрузки, установитout_laps_reboot_required
, если это было пропущено (по умолчанию:False
).
Следующие необязательные переменные могут быть установлены для управления конфигурацией сервера;
opt_laps_domain_server
: Укажите целевой контроллер домена для добавления конфигурации LAPS, по умолчаниюlocalhost
.opt_laps_domain_username
: Переопределите пользователя подключения, используемого для настройки AD, эта учетная запись должна быть членом группыSchema Admins
.opt_laps_domain_password
: Пароль дляopt_laps_domain_username
.
Следующие необязательные переменные могут быть установлены для управления конфигурацией GPO;
opt_laps_enforce_password_expiry
: Соответствует политикеНе разрешать срок действия пароля более чем требуется по политике
.opt_laps_gpo_name
: Название объекта групповой политики, который содержит конфигурацию LAPS.opt_laps_password_policy_age
: Максимальный срок действия пароля в днях (по умолчанию:30
).opt_laps_password_policy_complexity
: Политика сложности пароля, может быть одной из следующих;uppercase
uppercase,lowercase
uppercase,lowercase,digits
uppercase,lowercase,digits,symbols
по умолчанию
opt_laps_password_policy_length
: Длина генерируемого пароля (по умолчанию:14
).
Переменные вывода
out_laps_reboot_required
: Это установлено вTrue
, когдаopt_laps_skip_reboot
равноTrue
, и требуется перезагрузка для завершения установки.
Зависимости роли
Нет
Примеры плейбуков
- name: установить клиент LAPS с UI
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
opt_laps_install_client: True
opt_laps_install_ui: True
- name: установить сервер LAPS и настроить его для 1 OU
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
- OU=Accounting,DC=domain,DC=local
opt_laps_install_server: True
- name: установить сервер LAPS и создать GPO
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
opt_laps_install_server: True
opt_laps_configure_gpo: True
После того как роль будет выполнена, модуль win_ad_dacl
и другие будут доступны в пути Ansible. Этот модуль может использоваться для применения прав на чтение/запись к атрибутам пароля и срока действия другим учетным записям. По умолчанию только администраторы домена или сама учетная запись компьютера могут изменять эти значения. Чтобы добавить нового пользователя или группу в DACL, вы можете выполнить задачу, такую как;
- name: добавить пользователям доступ на чтение к атрибуту пароля
win_ad_dacl:
# лучше использовать полное определенное имя для OU
path: OU=Workstations,DC=ansible,DC=laps
state: present
# ACEs содержат список прав, которые нужно применить
aces:
# Добавляет доступ на чтение к атрибуту пароля
- rights: ReadProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwd
access: allow
account: ANSIBLE\PasswordUsers
# Добавляет доступ на чтение и запись к атрибуту срока действия пароля
- rights: ReadProperty, WriteProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwdExpirationTime
access: allow
account: ANSIBLE\ExpiryUsers
Смотрите library/win_ad_dacl.py
для получения дополнительных сведений.
Модули в library
не гарантировано останутся теми же в каждом выпуске роли. Убедитесь, что вы прочитали журнал изменений перед обновлением версии роли.
Тестирование
Эта роль зависит от настроенного домена и работы на двух различных хостах. Это трудно установить в CI-среде, поэтому единственное тестирование будет проводиться локально через Vagrant. Чтобы протестировать эту роль, выполните следующее;
pip install pypsrp
cd tests
vagrant up
ansible-playbook -i inventory.ini main.yml -vvv
Эти шаги могут занять некоторое время в зависимости от того, были ли уже загружены Vagrant-боксы. Текущий набор тестов просто устанавливает серверные компоненты на контроллер домена и клиент CSE на другом сервере и проверяет, можем ли мы получить пароль.
Заметки
- Добавить необязательный параметр для управления SACL (аудитом) каждого атрибута AD. Нет - запросы на новые функции приветствуются.
ansible-galaxy install jborean93/ansible-role-win_laps