Часто, работая над непроизводственным проектом локально, я решаю, что хочу использовать его удаленно на инстансе EC2. Может быть, это ежедневная работа cron, скрипты очистки Python или даже бэктесты, выполняемые на модели, которую я хотел бы разместить удаленно. Какой бы ни была цель, мне обычно нужен быстрый способ настроить удаленный репозиторий .git на моем экземпляре EC2, куда я могу отправить данные, и ниже приведены шаги, которые вы можете предпринять, чтобы настроить и запустить его. Он не такой масштабируемый, как контроль версий Heroku или Elastic Beanstalk, но он отлично подходит для небольших проектов, не находящихся в производстве, и его проще настроить.

1. SSH в ваш инстанс EC2

SSH в ваш инстанс EC2, используя стандартную команду терминала ssh с вашим .pem расположением файла, именем пользователя и сервером public_dns_name.

ssh -i /path/my-key-pair.pem my-instance-user-name@my-instance-public-dns-name

2. Создайте каталог для своего проекта и cd в него

Используйте то же имя каталога, что и ваш локальный project_name . Здесь ваш проект будет жить на вашем экземпляре EC2.

mkdir project_name
cd project_name

3. Создайте подкаталог, cd в него и инициализируйте голый репозиторий git

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

mkdir project_name.git
cd project_name.git
git init --bare

4. cd в каталог hooks/ и активируйте файл gitook post-update.sample, переименовав его, обрезав окончание .sample

Вы также увидите много других файлов в пустом репозитории git, но нам нужно только переименовать файл post-update.sample для наших целей.

cd hooks/
mv post-update.sample post-update

5. Изменить содержимое переименованного файла после обновления

Далее мы укажем гитхуку, где сохранять файлы, которые передаются ему из нашего локального репозитория, в переменной с именем GIT_WORK_TREE.

vim post-update

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

#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
GIT_WORK_TREE=/home/ec2-user/project_name/ git checkout -f

Сохраните этот файл и выйдите из своего экземпляра EC2 с помощью ctrl+d .

6. Добавьте репозиторий Git EC2 в качестве удаленного Git в свой локальный проект

Обычно мой проект уже настроен с моим репозиторием Github в качестве удаленного push-pull, поэтому все, что нужно, — это добавить экземпляр EC2 в качестве другого удаленного push-управления. Обычно я использую стандартную ветку origin/master.

cd ~/path_to_your_project
git remote set-url --add origin [email protected]:/home/ec2-user/project_name/project_name.git

Итак, теперь, если вы введете команду терминала git remote -v, она должна вернуть что-то вроде этого:

origin https://github.com/username/project_name (fetch)
origin https://github.com/username/project_name (push)
origin [email protected]:/home/ec2-user/project_name/project_name.git (push)

7. Готово!

Теперь попробуйте отправить свой проект в инстанс EC2 с помощью быстрого git push, чтобы вы могли легко использовать и обновлять свой локальный проект на удаленном сервере. Вы должны иметь возможность снова ssh войти в свой экземпляр, чтобы убедиться, что проект теперь размещен там, чтобы вы могли удаленно запускать его содержимое.

Если вам это понравилось, подписывайтесь на меня в Твиттере @elitwilliams.