Nous voulons déployer une application sur un Serveur Windows 2012 avec Ansible 1.8.2.
J'ai cherché et trouvé une liste de modules pour Windows. Est-il un module pour exécuter une .exe?
Quelqu'un s'est déjà lancer une .exe sur Windows avec Ansible?
OriginalL'auteur Nico | 2015-01-09
La documentation dit 'Remarque il y a quelques autres Ansible modules qui ne commencent pas par “gagner” qui a également la fonction, y compris “slurp”, “brut”, et “setup” (qui est la façon dont la collecte des œuvres).' (http://docs.ansible.com/intro_windows.html), donc je suppose que le 'raw' module (http://docs.ansible.com/raw_module.html) devrait fonctionner (je n'ai pas de machine virtuelle Windows actuellement disponible pour jouer):
De sorte s'il vous plaît essayer une playbook avec:
ou un Ansible ad hoc de la commande:
Il fonctionne sur Windows 10. Je vous remercie.
OriginalL'auteur vivo
La
raw
module peut fonctionner, comme d'autres l'ont suggéré. Un défi est de ne pas "savoir" si l'exécutable a déjà été exécuté avant. En combinaison avec lawin_stat
du module et de lawhen
conditionnelle, vous pouvez créer un script qui détecte si quelque chose a été installé et fonctionne si il n'est pas installé. Par exemple, j'ai voulu installer le MSBuild outils de développement:Noter que j'ai trouvé les arguments de ligne de commande pour BuildTools_Full.exe en exécutant manuellement
OriginalL'auteur sfuqua
Theres une autre façon (et les modules) qui n'est pas si évident, en premier lieu: la win_service module combiné avec le win_nssm module.
Comme sfuqua déjà mentionné, la plupart du temps, vous voulez savoir "l'état" de votre application - par exemple, si elle était déjà installée, est actuellement en cours d'exécution, arrêté et ainsi de suite. Par conséquent, le concept de Service Windows est une très bonne solution. Et il est très facile d'obtenir un tel service par le biais de l'utilisation de la Non-Sucer le Gestionnaire de Service (nssm).
Avec l'Ansible win_nssm module c'est une partie de plaisir:
Maintenant, nous avons un réel service Windows et permet de manipuler l'état avec l'aide de la win_service module, tout comme nous qui sont utilisés à partir d'applications exécutées sur Linux:
Cette approche nous libère de la nécessité d'utiliser le module raw (qui a quelques inconvénients, comme la désactivation de changer de gestionnaire de soutien) et les difficultés à écrire et maintenir des scripts pour cette simple tâche.
OriginalL'auteur jonashackt
Comme mentionné ici, vous pouvez utiliser
win_command
. Mais si vous avez besoin d'exécuter une interactive .exe, vous devrez peut-être exécuter par le biais de PsExec. Un exemple Playbook peut alors ressembler à ceci:OriginalL'auteur rlat
J'ai résolu le problème avec psexec
Dans le Playbook
Et startProcess.ps1
Vous devez installer le psexec dans le PC à distance. Commutateurs pour le psexec
OriginalL'auteur Anuradha Fernando