Метод для интеграции сценариев Powershell с рабочим процессом не-Windows?

Используя sudo для достижения этого требует что пользовательский префикс все их команды с sudo -g groupb. Пользователь не БУДЕТ в groupb группа, у пользователя просто будет разрешение переключиться на ту группу и команды выполнения. visudo команда должна отредактировать sudoers файл, который управляет, кому разрешают использовать sudo для какой.

Выполнение этого требует по крайней мере 1.7.0 и открывает использование безопасности в версиях до 1.7.4p3

%groupa ALL = (:groupb) ALL

Вероятно, лучше просто, вручную добавляют пользователя к обеим группам. Мастер PAM смог автоматизировать тот процесс, но он будет только работать на оболочки входа в систему или приложения, которые используют PAM для идентификации пользователя вместо того, чтобы читать/etc/group и/etc/passwd непосредственно

16
задан 15 October 2012 в 16:19
8 ответов

Я часами ломал голову над этой самой проблемой, и в конце концов она свелась к двум жизнеспособным вариантам (есть много нежизнеспособных вариантов):

  1. Создайте Windows-сервер со службой IIS, на которой размещен WebAPI, который является доменом и настроен таким образом, чтобы сеансы WinRM из него работали.
  2. Cygwin

При втором варианте вы застряли на своем пути. через уровень абстракции GNU / Posix, чтобы получить фактические биты Windows. Это ограничивает то, что вы можете с ним делать.

Первый вариант в значительной степени строит веб-уровень абстракции, который вы сами пишете поверх своей полной установки Windows с собственным стеком. Если вы готовы поработать, главному серверу Linux нужно всего лишь выполнить несколько вызовов curl, чтобы сделать то, что нужно.

5
ответ дан 2 December 2019 в 20:42

Вы также можете купить кроссплатформенное программное обеспечение для планирования или автоматизации рабочих процессов, которое может запускать собственные сценарии на многих хостах в зависимости от предыдущих действий или даже их результатов. Крупные предприятия используют программное обеспечение, такое как Tivoli, UC4, Espresso (сейчас CA dSeries), которое делает это, и я использовал его на крупных предприятиях, которым требовалось делать такие вещи. К вашему сведению, они часто имеют встроенную поддержку таких вещей, как рабочие места Oracle, чтобы дать вам представление о ценовом теге, на который вы, возможно, смотрите.

(В моей прошлой работе они также использовали Cygwin в любом случае , так что они могут использовать одни и те же сценарии Perl без изменений при перемещении рабочих нагрузок между платформами. Очень весело.)

Вы также можете попробовать создать свой собственный, как предлагает @ sysadmin1138; это был бы забавный проект,

3
ответ дан 2 December 2019 в 20:42

Я бы использовал функцию Powershell Web Access, представленную в Powershell v3.0. Это позволяет вам использовать сценарии Powershell с хоста Linux.

3
ответ дан 2 December 2019 в 20:42

Сервер PowerShell позволяет вам подключаться по SSH к Windows server и получите консоль PowerShell. Я не использовал его за пределами бесплатной пробной версии, но мое неформальное использование доказало мне, что это был довольно надежный продукт.

2
ответ дан 2 December 2019 в 20:42

Насколько отвратительно вы хотите себя чувствовать после этого, потому что всегда есть telnet :)

А если серьезно, зачем вам сервер Linux для вызова сценария PowerShell? Можете ли вы изменить свой рабочий процесс так, чтобы сервер Linux просто доставлял правильный образ boot.wim через tftp на хост, загружаемый с помощью PXE? В прошлом мне повезло с хранением образа Windows с различными файлами ответов на файловом сервере Windows и доставкой пользовательского загрузочного образа WinPE с помощью tftpd с хоста Linux. Затем вы можете заставить файл ответов вызывать правильный сценарий PowerShell, и вам не придется иметь дело с кроссплатформенной мерзостью, такой как Cygwin.

2
ответ дан 2 December 2019 в 20:42

You could use something like nrpe to remotely execute the powershell script on the windows host. You might want to modify your powershell scripts to return exit codes as expected by nrpe, but there's no reason you couldn't call check_nrpe from your scripts on your linux host.

2
ответ дан 2 December 2019 в 20:42

Что касается нелогичных хаков , рассматривали ли вы возможность злоупотребления ПО непрерывной интеграции в качестве инструмента межплатформенной оркестровки?

Установите мастер CI там, где это наиболее удобно, установите агент на свой компьютер с Windows (либо this , либо this ), настройте задание для выполнения вашего сценария powershell (либо напрямую вызывая его с помощью конфигурации Windows Batch Command или с помощью плагина , если вы хотите написать / сохранить свой скрипт внутри приложения CI) на вашем агенте Windows и запустить задание удаленно через curl или подобное.

2
ответ дан 2 December 2019 в 20:42

Я работаю на крупном предприятии, где эта проблема встречается часто. Для процессов, которые мы в настоящее время поддерживаем, наш подход заключается в том, чтобы системы Unix выполняли веб-вызовы «административного» сервера Windows, на котором работает ColdFusion на IIS. У нас есть классы и функции, которые запускаются из запросов GET, которые используют директиву cfexecute для запуска определенных сценариев PowerShell. Это некрасиво, но работает. Мы рассматриваем возможности веб-службы PowerShell v3, которые позволят отказаться от использования ColdFusion в качестве посредника.

0
ответ дан 2 December 2019 в 20:42

Теги

Похожие вопросы