Я работаю над настройкой процесса сборки для использования развертывания AWS-кода с группой автомасштабирования. Мне удалось получить код, построенный и зашифрованный с помощью файлов appspec.yml и BeforeInstall.bat, которые были правильно перемещены до S3. При правильном развертывании кода файл zip распаковывается, распаковывает его и вызывает PreInstall.bat. Пакетный файл 3 шагиРазвертывание кода AWS при вызове Msdeploy
- Остановка приложения бассейн
- Остановить сайт
- Вызов website.deploy.cmd
Он правильно получает через шаги 1 и 2, но потом, когда его попадает к шагу 3, она вызывает MSDeploy и возвращает эту ошибку:
Error: There was an error reading IIS configuration schema from 'C:\Windows\system32\inetsrv\config\schema\'
Th что это, скорее всего, проблема с разрешением, я зашел на один из серверов и вручную запускал скрипт cmd. Он отлично развертывается, что неудивительно, учитывая, что я вошел в систему как администратор. Затем я открыл сценарий powershell как пользователя LocalSystem
(что и запускает CodeDeploy Host Agent Service
) и запускает скрипт cmd. Он успешно завершен. Я запустил весь пакетный файл как пользователь LocalSystem
. Он прошел успешно.
Затем я вернулся и добавил echo %username%
в пакетный скрипт, совершил, построил и запустил новое развертывание. Я вижу этого пользователя в блоке развертывания кода WIN-49GNL2FRHJ4$
. Развертывание все еще не выполняется. Когда я запускаю пакетный скрипт в окне из окна powershell, как Administrator
, я, конечно, вижу, что вышло Administrator
. Сценарий преуспевает. Когда я запускаю командный скрипт из окна powershell в качестве LocalSystem
, я вижу WIN-49GNL2FRHJ4$
, так же, как когда он запускается из CodeDeploy через консоль AWS, но он успешно запускается.
Что отличаетс от того, как консоль AWS вызывает этот пакетный файл как пользователь LocalSystem
и как я называю его этим пользователем через окно powershell?