J'adore l'odeur des nouvelles machines le matin.
J'automatise un workflow de création de machine qui implique plusieurs systèmes distincts dans mon infrastructure, dont certains impliquent des scripts perl de 15 ans sur les hôtes Solaris, les systèmes Linux de démarrage PXE et Powershell sur Windows Server 2008.
Je peux créer un script pour chacune des parties individuelles, et l'intégration de l'automatisation Linux et Unix est assez simple, mais je ne sais pas comment lier de manière fiable les scripts Powershell au reste des processus.
Je préférerais que le processus commence sur un hôte Linux, car j'imagine qu'il se terminera comme une application Web vivant sur un serveur Apache, mais s'il doit commencer sur Windows, je suis d'accord avec hésitation.
J'aimerais idéalement que quelque chose du genre psexec pour Linux s'exécute contre Windows, mais la réponse dans ce sens semble être donnée par Cygwin , et autant que j'apprécie tout le travail acharné qu'ils ont fourni, cela n'a jamais semblé juste , si tu vois ce que je veux dire. C'est génial pour un bureau et donne beaucoup de fonctionnalités, mais je pense que les serveurs Windows devraient être traités comme des serveurs Windows et non des machines Unix bâtardes (ce qui, soit dit en passant, est mon argument contre les serveurs OSX, et ils sont en fait Unix) . Quoi qu'il en soit, je ne veux pas aller avec Cygwin sauf si c'est la dernière et la seule option.
Donc je suppose que ce que je demande, c'est s'il existe un moyen d'exécuter des travaux sur les machines Windows à partir de Linux. Sans Cygwin. Je suis ouvert aux idées et suggestions, y compris "Regardez idiot, tout le monde utilise Cygwin, alors aspirez-le et traitez-le". Merci d'avance!
la source
Vous pouvez également acheter un logiciel de planification multiplateforme ou d'automatisation de workflow qui peut lancer des scripts natifs sur de nombreux hôtes en fonction des actions précédentes, ou même de leurs résultats renvoyés. Les grandes entreprises utilisent des logiciels comme Tivoli, UC4, Espresso (CA dSeries, maintenant) qui le font, et je l'ai utilisé dans les grandes entreprises qui avaient besoin de faire ce genre de choses. Pour info, ceux-ci ont souvent un support natif pour des choses comme les travaux Oracle, pour vous donner une idée du prix que vous pourriez consulter.
(Dans mon travail précédent, ils ont également utilisé Cygwin de toute façon , afin de pouvoir utiliser les mêmes scripts Perl sans modification lorsque les charges de travail se déplaçaient entre les plates-formes. Beaucoup de plaisir.)
Vous pouvez également essayer de créer le vôtre, comme le suggère @ sysadmin1138; ce serait un projet amusant, et pourrait même se révéler suffisamment robuste pour être utilisable et ne pas vous faire pager à 2 heures du matin lorsque les exportations financières échouent du premier coup.
la source
J'utiliserais la fonctionnalité Powershell Web Access introduite dans Powershell v3.0. Cela vous permet d'utiliser des scripts Powershell à partir d'un hôte Linux.
la source
Le serveur PowerShell vous permet de vous connecter à un serveur Windows et d'obtenir une console PowerShell. Je ne l'ai pas utilisé au-delà de l'essai gratuit, mais mon utilisation informelle m'a prouvé que c'était un produit assez fiable.
la source
Quelle grosseur voulez-vous ressentir après, car il y a toujours telnet :)
Sérieusement, pourquoi avez-vous besoin du serveur Linux pour appeler le script PowerShell? Pouvez-vous repenser votre flux de travail afin que le serveur Linux fournisse simplement l'image boot.wim correcte via tftp à un hôte démarré PXE? J'ai eu de la chance dans le passé de conserver une image Windows avec différents fichiers de réponses sur un serveur de fichiers Windows et de fournir une image de démarrage WinPE personnalisée à l'aide de tftpd à partir d'un hôte Linux. Ensuite, vous pouvez faire en sorte que le fichier de réponses appelle le bon script PowerShell et vous n'avez pas à vous occuper des plaisanteries multiplateformes comme Cygwin.
la source
Vous pouvez utiliser quelque chose comme nrpe pour exécuter à distance le script PowerShell sur l'hôte Windows. Vous voudrez peut-être modifier vos scripts PowerShell pour retourner les codes de sortie comme prévu par nrpe, mais il n'y a aucune raison pour que vous ne puissiez pas appeler check_nrpe à partir de vos scripts sur votre hôte Linux.
la source
En ce qui concerne les hacks contre-intuitifs , avez-vous envisagé d'abuser du logiciel d'intégration continue comme outil d'orchestration multiplateforme?
Installez le maître CI à l' endroit le plus pratique, installez l'agent sur votre boîte Windows ( ceci ou cela ), configurez un travail pour exécuter votre script powershell (soit en l'invoquant directement à l'aide de la configuration de la commande par lots de Windows, soit en utilisant un plugin si vous le souhaitez) pour écrire / conserver votre script dans l'application CI) sur votre agent Windows et déclencher le travail à distance via curl ou similaire.
la source
Je travaille dans une grande entreprise où ce problème est courant. Pour les processus que nous prenons actuellement en charge, notre approche consiste à demander aux systèmes Unix de passer des appels Web vers un serveur Windows «admin» qui exécute ColdFusion sur IIS. Nous avons des classes et des fonctions qui sont déclenchées à partir de requêtes GET qui utilisent la directive "cfexecute" pour lancer des scripts PowerShell spécifiques. C'est moche mais ça marche. Nous examinons les fonctionnalités du service Web powershell v3 pour éviter que ColdFusion n'agisse en tant qu'intermédiaire.
la source