четверг, 26 января 2017 г.

AWS CodeDeploy Windows: каталог запуска скриптов и списки в файле

Потратил время на это. Что бы не забыть:
CodeDeploy скачивает бандл, разворачивает, копирует, запускает и так далее.
У меня есть хук BeforeInstall - это скрипты - один batch, второй ps1. Они запускаются до начала отработки секции files!
appspec.yml:
version: 0.0
os: windows
files:
  - source: Websites\
    destination: C:\Websites
hooks:
  BeforeInstall:
    - location: CodeDeploy\beforeinstall.bat
      timeout: 900
    - location: CodeDeploy\beforeinstall.ps1
      timeout: 900
  AfterInstall:
    - location: CodeDeploy\afterinstall.bat
      timeout: 900
    - location: CodeDeploy\afterinstall.ps1
      timeout: 900

Beforeinstall.bat:
------------------------
@@echo off

%systemroot%\system32\inetsrv\APPCMD stop sites "Default Web Site"
iisreset /stop

FOR /F "tokens=1 delims=," %%i  IN (%~dp0\apps_list.txt) DO (
  pushd C:\Websites\%%i
  rmdir /s /q C:\Websites\%%i
)

iisreset /start
%systemroot%\system32\inetsrv\APPCMD start sites "Default Web Site"
-------------------

Красным выделил переменную, которая даст текущее местоположение скрипта (не место, откуда запустили а именно место, где сам скрипт лежит). В файле apps_list.txt перечень сайтов и соответствие пулов IIS для каждого через запятую.
site1,pool number 1 ASP
site2, .NET 4.0 pool



Комментариев нет: