Назад | Перейти на главную страницу

Powershell в экземпляр EC2 - установка исполняемых файлов в экземпляр EC2

Я новичок в серверах Amazon. Недавно я создал экземпляр EC2 Windows2008 R2 и попытался подключиться к экземпляру из моей системы, используя ТОЛЬКО PowerShell.

Я не хочу использовать Amazon API для подключения, передачи файла из локального в EC2 или установки файлов в экземпляре EC2.

Я хочу добиться всего этого с помощью POWERSHELL.

Я могу подключать и передавать файлы с локального компьютера на EC2. Может ли кто-нибудь предложить / помочь установить исполняемые файлы на этот экземпляр EC2.

Любая помощь в этом вопросе приветствуется! спасибо заранее

Если вы можете установить исполняемый файл из командной строки («тихая установка»), то удаленное взаимодействие с PowerShell - лучший выбор. Он включен по умолчанию в образах Amazon Windows, поэтому вам не нужно ничего делать, кроме запуска машины и получения пароля.

Здесь есть инструкции по настройке удаленного доступа: https://stackoverflow.com/a/13284313/1335661

Суть в том, что вы можете использовать следующий сценарий для выполнения удаленной команды (взятой из: https://github.com/CloudifySource/cloudify/blob/master/esc/src/main/resources/clouds/ec2-win/upload/bootstrap-client.ps1):

param ([string]$target, [string]$username, [string]$password, [string]$command)

$ErrorActionPreference="Stop"

# Set up the password
$securePassword = ConvertTo-SecureString -AsPlainText -Force $password
$cred = New-Object System.Management.Automation.PSCredential $username, $securePassword

Write-Host "Connecting to management service of $target"
Connect-WSMan -Credential $cred $target 

set-item WSMan:\$target\Client\TrustedHosts -Value * -Force
set-item WSMan:\$target\Shell\MaxMemoryPerShellMB -Value 0 -Force

Write-Host Invoking command on Remote host $target
Invoke-Command -ComputerName $target -Credential $cred  -ScriptBlock {  
    Invoke-Expression $args[0]
} -ArgumentList $command
Write-Host "Command finished"

Вы можете запустить эту команду из собственного скрипта с помощью следующей команды:

powershell.exe -inputformat none -File PATH_TO_SCRIPT -target TARGET_IP -password PASSWORD -username USERNAME -command COMMAND_TO_EXECUTE

Если вы не разбираетесь в Удаленное взаимодействие PowerShell, Я рекомендую просто открыть RDP (TCP 3389) и удаленный рабочий стол (установить флажок клиента для подключения локальных дисков) и загружать файлы таким образом. Позже вы можете поэкспериментировать с командой PowerShell Enable-PSRemoting на сервере, открыв брандмауэр для 5986 (SSL) и попытавшись подключиться удаленно.

Не уверен, что вы можете "туннелировать" передачу файлов через удаленную оболочку PowerShell изначально, хотя, похоже, есть сторонняя модуль для этого.

Я предполагаю, что вы говорите об установке программного обеспечения на сервере без входа в систему.

Один из вариантов - установить https://github.com/bwight/CloudInit.NET на своем сервере и сохраните AMI. Затем вы можете написать сценарий PowerShell, который будет запускаться на сервере локально и устанавливать / загружать все, что вам нужно, на сервер.

Когда вы создаете новый сервер с помощью этого AMI, просто поместите содержимое файла как файл данных пользователя или файл данных пользователя. Когда сервер загружается, служба CloudInit.NET загрузит и выполнит ваш скрипт без необходимости входа на сервер.