У меня есть резидент лаборатории на сервере vCenter, лаборатория включает в себя 5 серверов Windows и 3 Windows 10
Каждый раз, когда я запускаю плейбук (любой плейбук) против этой лаборатории, в TASK [Сбор фактов] появляются 2 ошибки:
[ПРЕДУПРЕЖДЕНИЕ]: ошибка при сборе фактов о winrm: вы не можете вызвать метод для выражения с нулевым значением. В строке:15 символ:17 + ...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.Not ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + Информация о категории:
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull в <ScriptBlock>, <Нет файла>: строка 15 в <ScriptBlock>, <Нет файла>: строка
13
[ПРЕДУПРЕЖДЕНИЕ]: Ошибка при сборе фактов фактов: Test-Path: Доступ запрещен В строке: 10 char: 17 + Test-Path -LiteralPath $facterPath +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (\Domain.com\Sys... rtup\factor.exe:String) [Test-Path], UnauthorizedAccessException
+ FullyQualifiedErrorId: ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.TestPathCommand в <ScriptBlock>, <Нет файла>: строка 10 в <ScriptBlock>, <Нет
файл>: строка 3
Полный журнал:
ЗАДАНИЕ [Сбор фактов] *************************************************** ******************************************************* ******************************************************* ***путь к задаче: /ansible/playbooks/copy_r10_files.yml:2
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
<vm1.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: Домен\hiddai на ПОРТУ 5985 К vm1.domain.com
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
<vm2.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: ДОМЕН\hiddai ПО ПОРТУ 5985 К vm1.domain.com
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
EXEC (через конвейерную оболочку)
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
<vm3.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: ДОМЕН\hiddai на ПОРТУ 5985 К srraalabjhqdb.r10.local
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
EXEC (через конвейерную оболочку)
<vm4.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: ДОМЕН\hiddai ПО ПОРТУ 5985 К vm4.domain.com
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
EXEC (через конвейерную оболочку)
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
<vm5.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: ДОМЕН\hiddai ПО ПОРТУ 5985 К vm5.domain.com
EXEC (через конвейерную оболочку)
EXEC (через конвейерную оболочку)
[ПРЕДУПРЕЖДЕНИЕ]: ошибка при сборе фактов о winrm: вы не можете вызвать метод для выражения с нулевым значением. В строке:15 символ:17 + ...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.Not ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + Информация о категории:
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull в <ScriptBlock>, <Нет файла>: строка 15 в <ScriptBlock>, <Нет файла>: строка
13
хорошо: [vm3.domain.com]
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
<vm7.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: ДОМЕН\hiddai ПО ПОРТУ 5985 К vm7.domain.com
хорошо: [vm4.domain.com]
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
<vm6.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: ДОМЕН\hiddai ПО ПОРТУ 5985 К vm6.domain.com
EXEC (через конвейерную оболочку)
хорошо: [vm1.domain.com]
хорошо: [vm2.domain.com]
перенаправление (тип: модули) ansible.builtin.setup на ansible.windows.setup
Использование файла модуля /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Конвейеризация включена.
<vm8.domain.com> УСТАНОВИТЕ СОЕДИНЕНИЕ WINRM ДЛЯ ПОЛЬЗОВАТЕЛЯ: ДОМЕН\hiddai ПО ПОРТУ 5985 К vm8.domain.com
EXEC (через конвейерную оболочку)
EXEC (через конвейерную оболочку)
хорошо: [vm5.domain.com]
хорошо: [vm7.domain.com]
[ПРЕДУПРЕЖДЕНИЕ]: Ошибка при сборе фактов фактов: Test-Path: Доступ запрещен В строке: 10 char: 17 + Test-Path -LiteralPath $facterPath +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (\R10.local\Sys... rtup\factor.exe:String) [Test-Path], UnauthorizedAccessException
+ FullyQualifiedErrorId: ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.TestPathCommand в <ScriptBlock>, <Нет файла>: строка 10 в <ScriptBlock>, <Нет
файл>: строка 3
хорошо: [vm8.domain.com]
хорошо: [vm6.domain.com]
МЕТА: запуск обработчиков
Мой докерфайл
ОТ СЕНТОС:8
ПОЛЬЗОВАТЕЛЬ root
ЗАПУСК yum check-update -y; \
ням обновить -y; \
yum установить -y epel-релиз; \
ням установить -y gcc; \
yum install -y libffi-devel; \
ням установить -y wget; \
ням установить -y git; \
ням установить -y python3; \
dnf install -y python3-setuptools; \
pip3 install --upgrade setuptools; \
yum установить -y python3-pip; \
pip3 установить --обновить пип; \
pip3 установить pywinrm; \
pip3 установить PyVmomi; \
# Ansible 2.11.x
pip3 установить можно; \
# Лазурь
wget -q https://raw.githubusercontent.com/ansible-collections/azure/dev/requirements-azure.txt; \
pip3 install -r требования-azure.txt; \
требования rm-azure.txt; \
установка коллекции ansible-galaxy azure.azcollection; \
# Коллекция включает модули и плагины VMware, поддерживаемые
# Сообщество Ansible VMware для помощи в управлении инфраструктурой VMware
pip3 install -r ~/.ansible/collections/ansible_collections/community/vmware/requirements.txt; \
Установка коллекции ansible-galaxy community.vmware; \
# Загружает файл с HTTP, HTTPS или FTP на узел
Установка коллекции ansible-galaxy ansible.windows;
# chmod -R o-w /ansible;
CMD [ "/usr/sbin/init" ]
Мой файл all.yml содержит сведения о winrm
---
# Сведения о протоколе WinRM
ansible_user: ДОМЕН\hiddai
доступный_пароль: F01o3O4
ansible_connection: winrm
доступный_порт: 5985
ansible_winrm_scheme: http
ansible_winrm_server_cert_validation: игнорировать
ansible_winrm_transport: ntlm
ansible_winrm_read_timeout_sec: 60
ansible_winrm_operation_timeout_sec: 58
Что касается ОШИБКИ 1: проверка winrm на одной из машин в домене показывает:
C:\Users\qa>winrm получить winrm/config
Конфигурация
MaxEnvelopeSizekb = 500
Максимальное время ожидания = 60000
Максбатчитемс = 32000
Макспровидеррекуестс = 4294967295
Клиент
NetworkDelayms = 5000
Префикс URL=wsman
AllowUnencrypted = true [Source="GPO"]
Авторизация
Базовый = истина [Source="GPO"]
Дайджест = правда
Керберос = правда
Переговоры = правда
Сертификат = правда
CredSSP = истина [Source="GPO"]
Порты по умолчанию
HTTP = 5985
HTTPS = 5986
TrustedHosts [Источник = "GPO"]
Оказание услуг
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW; ;;ВД)
Максконкуррентоператионс = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
Максимальное количество подключений = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = истина [Source="GPO"]
Авторизация
Базовый = истина [Source="GPO"]
Керберос = правда
Переговоры = правда
Сертификат = ложь
CredSSP = истина [Source="GPO"]
CbtHardeningLevel = расслабленный
Порты по умолчанию
HTTP = 5985
HTTPS = 5986
IPv4Filter = * [Источник = "GPO"]
IPv6Filter = * [Источник = "GPO"]
EnableCompatibilityHttpListener = true [Source="GPO"]
EnableCompatibilityHttpsListener = true [Source="GPO"]
Отпечаток сертификата
AllowRemoteAccess = истина [Source="GPO"]
Победители
Алловремотешеллакцесс = истина
Время простоя = 7200000
МаксКонкуррентусерс = 2147483647
Максшеллрантиме = 2147483647
Макспроцессеспершелл = 2147483647
Максмеморипершеллмб = 2147483647
Максшеллсперусер = 2147483647
Моя доступная версия контейнера:
[root@ansible ansible]# ansible --version
[ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕНИИ]: Ansible потребует Python 3.8 или новее на контроллере, начиная с Ansible 2.12. Текущая версия: 3.6.8 (по умолчанию, 19 марта 2021 г., 05:13:41) [GCC
8.4.1 20200928 (Red Hat 8.4.1-1)]. Эта функция будет удалена из ansible-core в версии 2.12. Предупреждения об устаревании можно отключить, установив
deprecation_warnings=False в файле ansible.cfg.
доступный [ядро 2.11.3]
конфигурационный файл = /ansible/ansible.cfg
настроенный путь поиска модуля = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
расположение модуля ansible python = /usr/local/lib/python3.6/site-packages/ansible
расположение коллекции ansible = /root/.ansible/collections:/usr/share/ansible/collections
местоположение исполняемого файла = /usr/local/bin/ansible
версия python = 3.6.8 (по умолчанию, 19 марта 2021 г., 05:13:41) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
версия джиндзя = 3.0.1
libyaml = Истина
Как я могу устранить эти ошибки?