Как автоматически обновить AMI в конфигурации запуска автоматического масштабирования Amazon EC2

Как я могу обновить AMI в конфигурации Auto Scaling после обновления кода в экземпляре EC2? Мне не нужно использовать AWS CodeDeploy.

У меня есть простой сценарий, но он по-прежнему требует, чтобы я вручную вводил идентификатор изображения: Он развернут в IIS и доступен по URL-адресу myserver / git. Далее я хочу включить автоматическое развертывание. В чистом репозитории Git Server ...

У меня есть git-сервер Bonobo, установленный на Windows Server 2016. Он развернут в IIS и доступен по URL-адресу myserver / git. Далее я хочу включить автоматическое развертывание. В папке открытого репозитория Git Server я нахожу папку с крючками и добавляю сценарий пост-получения:

#!/bin/sh
cd E:/public/root/myFirstRepo
git pull

Это отлично работает, когда я запускаю его как мой личный пользователь. Но когда он используется IIS после фиксации, он дает:

git: 'pull' не является командой git. См. 'Git --help'.

Правильный ли я использую git?

#!/bin/sh
git --exec-path

Личный пользователь: C: \ Program Files \ Git \ mingw64 / libexec / git-core

Пользователь IIS: / libexec / git- core

Итак, давайте изменим сценарий, чтобы использовать абсолютный путь к git:

#!/bin/sh
cd E:/public/root/myFirstRepo
"C:/Program Files/Git/mingw64/libexec/git-core/git" pull

фатальный: не репозиторий git: '.'

Это может быть потому, что я уже в репозитории git, а именно репозитории голого сервера и может сбить с толку мерзавец? Итак, давайте попробуем игнорировать любую существующую среду.

#!/bin/sh
cd E:/public/root/myFirstRepo
env -i "C:/Program Files/Git/mingw64/libexec/git-core/git" pull

Однако это, похоже, нарушает работу git bash для окон:

ошибка: не удается создать sh: нет такого файла или каталога

Хорошо, давайте попробуем использовать git -C флаг: ясное указание, с какой папкой работать.

#!/bin/sh
"C:/Program Files/Git/mingw64/libexec/git-core/git" -C "E:/public/root/myFirstRepo" pull

Тем не менее:

фатальный: Не репозиторий git: '.'

На данный момент у меня нет идей. Мой вопрос в основном таков: как правильно настроить сценарий пост-получения сервера git в среде Windows?

0
задан 26 June 2017 в 12:47
1 ответ

Я пытался сделать то же самое на экземпляре Windows 2012. Поработав над этим некоторое время, я смог получить обработчик post-receive для обновления локального репозитория. Предполагая, что у вас установлен сервер Bonobo Git и Git, выполните следующие действия. Я использовал пути из исходного сообщения.

  1. Создайте локальное репо с помощью git clone http (s): // username: password # myserver / Bonobo.Git.Server / .git

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

  1. Добавьте учетную запись IIS_IUSRS во вновь созданный репозиторий git. Щелкните каталог правой кнопкой мыши и добавьте учетную запись пользователя. Дайте ему разрешение на запись. Я фактически предоставил полный контроль.

  2. Создайте файл после получения (без расширения) в каталоге перехватчиков для репозитория. Используйте правильный путь к исполняемому файлу Git, а не Bonobo Git.

! / Git / sh

cd E: \ public \ root \ myFirstRepo \

"c: \ Program Files / Git / mingw64 / libexec / git-core / git "--git-dir = E: \ public \ root \ myFirstRepo \ .git stash

" c: \ Program Files / Git / mingw64 / libexec / git-core / git "--git- dir = E: \ public \ root \ myFirstRepo \ .git pull

Сначала будет несколько предупреждений, но как только вы отправите файлы на удаленный сервер, скрипт перехвата должен их соответствующим образом обновить.

0
ответ дан 5 December 2019 в 07:58

Теги

Похожие вопросы