Rundeck / WINRM — Rundeck удается подключиться, переместить файл, не удается выполнить встроенный сценарий powershell

#python #powershell #rundeck #winrm

#python #powershell #rundeck #winrm

Вопрос:

В настоящее время я сталкиваюсь с очень запутанной проблемой.

  1. Я выполняю задание с (Rundeck) на (удаленный компьютер Windows), используя winrm в качестве исполнителя и копировального устройства файлов, которые выполняют встроенный сценарий powershell.

  2. Пробовал и отлично работал в одной из 3 сред.

  3. На Preprod и Prod Rundeck.. То же задание (экспортированное / импортированное) завершается с ошибкой, хотя те же настройки в среде 3, тот же сценарий, те же аргументы, даже та же версия Windows.

  4. Я добавил шаг проверки подключения WINRM, и он прошел успешно.

Шаг проверки WINRM

  1. Rundeck удается запустить скрипт на компьютере (однако с неправильным именем), что означает, что аутентификация проходит успешно. Однако он завершается ошибкой с этой абстрактной ошибкой.

[ОШИБКА ] Выполнение завершено со следующей ошибкой (winrm-exec.py:304)[root] [ОШИБКА ] Параметр неверен. (расширенные данные об ошибке: {u’fault_subcode’: ‘w: InvalidParameter’, u’fault_code’: ‘s:Sender’, u’wsmanfault_code’: ’87’, ‘transport_message’: u’Bad HTTP-ответ, возвращенный с сервера. Code 500′, ‘http_status_code’: 500}) (winrm-exec.py:305)[root] [WinRMPython]: код результата: 1, успех: false Сбой: NonZeroResultCode: [WinRMPython] Код результата: 1

Сбой

  1. Когда я пытаюсь выполнить брошенный сценарий Powershell локально с компьютера, он работает хорошо.

Версия плагина WinRM: 2.0.9

Python: 2.7.17

Комментарии:

1. Это происходит с каждым сценарием Powershell? Вы тестировали отправку отдельных команд (или одного сценария PowerShell) на сервер Windows и работали нормально? Какую версию Windows вы используете? Какова ваша конфигурация winrm на стороне Windows? (проверьте это: github.com/rundeck-plugins/rundeck-winrm-plugin/wiki /… ) Не могли бы вы поделиться примером сценария для тестирования? (пожалуйста, измените любую потенциально конфиденциальную информацию).

2. @MegaDrive68k Это происходит с каждым сценарием Powershell? — Да.. Он завершается сбоем даже при выполнении отдельных команд, с той же самой ошибкой, о которой упоминалось. Версии Windows? — Серверы Windows [2008/2012/2016] — WINRM conf — хорошо устанавливается из шагов, упомянутых в URL плагина. — Скрипт ? Как я уже упоминал, это не проблема, связанная со сценарием, даже отдельные шаги команд завершились неудачно.

Ответ №1:

Переключение на python3 в WINRM решило проблему. Однако это вызвало проблему для Windows server 2008 и более старых версий.

Итак, если у вас обе версии ОС Windows [до и после 2008], вам нужно будет разделить проекты RUNDECK и иметь winrm, доступный как на python2, так и на python3.

Ответ №2:

Для будущих ссылок решение здесь. Переключение на интерпретатор Python 3 (вместо Python 2) на исполнителе узлов по умолчанию и копире файлов по умолчанию (Настройки проекта> Редактирование конфигурации> вкладки «Исполнитель узлов по умолчанию» и «Копир файлов по умолчанию») решает проблему.