Часто, работая над непроизводственным проектом локально, я решаю, что хочу использовать его удаленно на инстансе 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.