Programmgesteuertes Ausführen eines Programms in der EC2-Windows-Instanz
Ich würde gerne zum starten einer EC2 Windows Instanz, hochladen EXEecutable & führen Sie es aus (alles in automatisiert, das ist wichtig)
Bisher war ich in der Lage, programmgesteuert starten von EC2 Windows Instanz & Holen Sie sich Ihre Parameter (Passwort /IP), nun möchte ich einen Weg finden, laden Sie diese Ausführbare Datei (von meinem Windows-Rechner oder von meinen anderen EC2 linux Instanz) & führen Sie es.
Dachte ich über das starten einer RDP-connection & mit einem makro-software hochladen & führen Sie die Datei, aber basierend auf früheren Erfahrungen, das ist ein schlechter/fragile Ansatz, um das Mindeste zu sagen.
Dachte ich auch über den Upload von dieser EXE-Datei an einen server, dann tun Sie etwas wie dieses auf Windows:
wget http://www.domain.com/my-file.exe
Außer dass Windows nicht haben wget!
Also meine Frage ist: gibt es eine Möglichkeit, programmgesteuert hochladen & ausführen einer Ausführbaren Datei, die in EC2 Windows Instanz?
InformationsquelleAutor der Frage style-sheets | 2012-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Befehl
ec2-run-instances
hat zwei zusätzliche Argumente, die verwendet werden können, wenn Sie den Befehl ausführen. Dieuser-data
Befehl unduser-data-file
beide erfüllen dieselbe Aufgabe, die nur Sie Lesen aus den verschiedenen input. Wenn Sie dieses argument verwenden, den Inhalt der Benutzer-Daten hochgeladen werden, um eine amazon gehostet URIhttp://169.254.169.254/1.0/user-data
nur für die Instanz, die gestartet wurde.Den normalen Weg, dies zu tun in der linux-Umgebung wäre die upload ein shell-Skript, um die Instanz zu laden Sie die exe-Datei, werden Ihre Benutzer-Daten-Datei könnte wie folgt Aussehen...
In Windows gibt es keinen default-Dienst installiert ist, führen Sie die Benutzer-Daten-Datei, wenn die Instanz gestartet wird, aber es ist ein open-source-Projekt CloudInit.NET simuliert den gleichen Prozess, aber mit einem powershell-Skript. Die einzigen Anforderungen sind .NET 4.0 und CloudInit.NET. Sobald es installiert wird, führen Sie die Benutzer-Daten-Datei, wenn die Instanz gestartet wird. Es ist sehr einfach, eine Datei herunterzuladen und führen Sie es mit einem powershell-Skript.
InformationsquelleAutor der Antwort bwight
Ein alternativer Ansatz ist die Verwendung von Windows powershell-und WinRM - es ermöglicht eine remote-Ausführung, ein bisschen wie ssh unter Linux.
Hier ist ein Beispiel eines powershell-Skripts, die Sie ausführen können, auf dem client remote ein Skript auszuführen (entnommen aus: https://github.com/CloudifySource/cloudify/blob/master/esc/src/main/resources/clouds/ec2-win/upload/bootstrap-client.ps1):
Können Sie diesen Befehl ausführen, von Ihrem eigenen Skript mit dem folgenden Befehl:
Sollten Sie wahrscheinlich Ihr Angebot Streicher, insbesondere das Passwort und Befehl, denn diese haben in der Regel spezielle Zeichen, die powershell interpretiert werden kann als etwas anderes.
Den WinRM-Dienst ist standardmäßig auf dem Amazon EC2 Windows AMIs. Alles, was Sie tun müssen, ist, öffnen Sie port 5985 (der WinRM-port) auf dem security-Gruppe.
Schließlich, wenn Sie noch nie verwendet powershell-remoting auf Ihrem client-Computer vor, es gibt ein paar Kommandos, die man ausführen sollte, um es einzurichten (Sie müssen diese Einstellung nur einmal):
Stellen Sie sicher, dass führen Sie diese als Administrator.
InformationsquelleAutor der Antwort Barak
Können Sie behandeln diese 2 Möglichkeiten,
Mit winscp in Windows-SFTP-Programm.
Zugriff auf Ihre Amazon-server mit SFTP unter Windows, laden Sie die Windows-SFTP-Anwendung. Mit WinSCP errichtest du eine SFTP-Sitzung mit Ihrem server. WinSCP bietet einige nette features, die es einfach machen, um mit Ihrer EC2-server. Zum Beispiel, ein Befehl in der Symbolleiste öffnet sich ein PuTTY-SSH-terminal-session mit den gleichen Anmeldeinformationen, die Sie für Ihre SFTP-Sitzung. (Sie können auch starten Sie eine PuTTY-Sitzung, indem Sie auf STRG+P.).
Bekommen ein S3-bucket und montieren Sie auf alle Ihre windows-und linux-EC2-Instanzen. Sie sollten in der Lage sein, den upload und download der Dateien zu S3-bucket von Ihrer workstation aus, die zugänglich sind, Ihre Instanzen.
InformationsquelleAutor der Antwort Chakri
Das klingt wie eine perfekte Nutzung bei CloudFormation. Ich habe eine Vorlage erstellt, die veranschaulicht. Zu verwenden, setzen Sie die ausführbare Datei in einem S3-bucket und erstellen Sie eine neue CloudFormation-Stapel mit der folgenden Vorlage. Es wird herunterladen der ausführbaren Datei von S3 und führen Sie es. Hinweis: die Vorlage macht den Einsatz von speziellen AMIs mit CloudFormationScripts gebaut.
InformationsquelleAutor der Antwort Edwin
Hatte ich nicht eine ähnliche Automatisierung für die AWS für enterprise-Implementierung zurück in 2011. Amazon cloud formation und opsworks, wo immer noch unter Konstruktion ist, dann.Allerdings hatten wir erfolgreich getan deployment-Automatisierung mit dotnet für linux-und windows-Plattform.Die powershell und ftp
Modell, bei dem ausgeschlossen, denn er war einer enterprise-Umgebung und es war port Beschränkung.
Unten sind die Ansätze, die ich verwendet habe.
Hinweis:Dies war asp.net web-Anwendung
Für linux deployment.
Haben wir eine open-source-Projekt namens sharpshell(sharpSSH).Das ist c# - Anwendung, die simpulates shell die Kommunikation zwischen windows und linux.Müssen nur geben Sie den Ziel-aws-Adresse und Sicherheitsschlüssel zu verbinden. Angepasst wir die app um unsere Anforderung
Für windows
Gesagt haben, dass die Wolkenbildung API, wo es noch nicht die und weniger der verfügbaren Unterlagen durch die AWS. Wir verwendeten einen workaround, webservice-Ansatz. Crearted ein webservice, welcher im Grunde eine Datei hochlädt, die sich auf server und bereitstellen. Mit diesem webserver gehostet auf amazaon windows server.Erstellt ein Basis-image aus diesem und Zertifikat. Endlich eine neue Instanzen geschaffen aus diesem Bild hätte webservices gehostet, die genannt werden könnten, die zum hochladen deployment-Paket und die Installation auf das system.
Obwohl die obigen startergies wo nicht Narr Beweis und hatte weniger Kontrolle. wir erreichten die Funktionalität von cross-Plattform-direkte Bereitstellung von windows auf linux ohne Verwendung von S3-buckets oder powershell.
Bitte lassen Sie mich wissen, wenn Sie irgendwelche Klärung.
Prost!
Charles
InformationsquelleAutor der Antwort charles anil dsouza