Как импортировать модуль в Windows 2008 R2, используя Puppet Facter? - PullRequest
0 голосов
/ 01 мая 2020

Я создаю пользовательский факт с использованием сценария ruby для вывода некоторых деталей, связанных с AD. Я узнал, что ServerManager является обязательным модулем, так как он еще не добавляется автоматически в сборку Windows 2008 R2. Я вручную запустил команды powershell на одном из моих серверов 2008 R2, и это сработало. Тем не менее, я получаю следующую ошибку каждый раз, когда запускаю ее как марионеточный фактор.

Благодарим вас за помощь в этом. Спасибо!

Успешно вручную запустить сервер Windows 2008 R2 через Powershell

Import-Module ServerManager

Скрипт

if ( $operatingsystemrelease == '2008 R2' )
     Facter::Core::Execution.execute(%q[powershell Import-Module ServerManager])
end

Ошибка

error while resolving custom fact "mycustomfact": execution of command "powershell Import-Module ServerManager" failed: command not found.
Source: Facter

Спасибо.

Ответы [ 3 ]

0 голосов
/ 01 мая 2020

Убедитесь, что модуль Powershell существует на целевом сервере - по-моему, он не был доступен по умолчанию до 2008 R2.

Он должен находиться в папке с таким же именем:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules

Вам также может понадобиться использовать 32-битный Powershell вместо 64-битного.

0 голосов
/ 06 мая 2020

Хорошо. Поэтому я решил вместо этого использовать внешние факты. И все работает нормально.

Вы можете посмотреть на внешние факты Puppet page.

0 голосов
/ 01 мая 2020

Метод, который вы предоставили, работал отлично для меня (я протестировал его с Ruby 2.5.8, 2.6.6 и 2.7.1), поэтому должно быть более глубокое обоснование того, что он не работает. Тем не менее, у меня есть решение. В своем личном опыте с Ruby и PowerShell я всегда использовал оператор `, который также выполняет команду и возвращает результат. Например, вы могли бы сделать:

if ( $operatingsystemrelease == '2008 R2' )
    `powershell.exe Import-Module ServerManager`
end

Если это все еще не работает, я бы обратился к вашей установке Windows Server, в частности, убедившись, что ваши переменные среды не испорчены. Какими бы невероятными и дикими ни казались вещи, всегда есть такие моменты, которые можно объяснить только словами «потому что windows»;)

...