Запуск сценария Windows Powershell при запуске экземпляра с Elasti c Beanstalk - PullRequest
1 голос
/ 21 апреля 2020

У меня есть простой Windows скрипт Powershell, который я хотел бы запустить на экземпляре EC2, когда он запускается в среде Elasti c Beanstalk. Он просто устанавливает самозаверяющий сертификат SSL и привязывает его к веб-сайту по умолчанию в IIS.

Я знаю, что это можно сделать с экземпляром EC2 индивидуально с помощью UserData (как показано ниже) ... но Как мне сделать это с любым экземпляром, развернутым в среде EB?

<powershell>
Import-Module WebAdministration
Set-Location IIS:\SslBindings
New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
$c = New-SelfSignedCertificate -DnsName "domain.com" -CertStoreLocation cert:\LocalMachine\My
$c | New-Item 0.0.0.0!443
</powershell>

1 Ответ

1 голос
/ 21 апреля 2020

Я не эксперт Powershell, но рассматривали ли вы что-то вроде:

  • Создайте папку с именем .ebextensions внутри вашего исходного пакета
  • Создайте файл с любым именем, кроме него должно иметь расширение .config (например, мой script.config) и развернуть его.
  • Содержимое файла myscript.confi должно иметь два ключа, то есть Файлы и Команды. Будьте осторожны с форматированием Yaml, которое может быть отключено и может привести к сбою развертывания
  files:  
        "c:/targetdirectory/my_script.ps1":
           content: |
       <powershell>
       Import-Module WebAdministration
       Set-Location IIS:\SslBindings
       New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
       $c = New-SelfSignedCertificate -DnsName "domain.com" -CertStoreLocation cert:\LocalMachine\My
       $c | New-Item 0.0.0.0!443
       </powershell> 
           encoding: (encoding format either plain or base64)
  commands:
        run_my_script: 
              command: ./my_script.ps1
              cwd: "c:/targetdirectory/"

Таким образом, вы просто создаете файл, содержащий скрипт и затем запустить его. Больше информации здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...