- 이런 감상평 댓글 너무 좋습니다. 다른 분들은 어떻게 생각하는지 알 수 있어서 마⋯
- 책을 읽긴 했지만 잘 머리 속에 정리 되지 않았던 흐름이 잘 정리되었습니다. 감사⋯
- 아이구 읽어주셔서 고맙습니다. 새해 복 많이 받으세요 😀
- 저도 최근에 이방인 제목만 알고 있다가, 한번 읽어보려고 구매했는데, 너무나 잘 ⋯
- 고맙습니다 :)
- 항상 잘 보고 있습니다 좋은 하루 되세요 :)
- 별 거 아닌 내용인데 이렇게 댓글 남겨주셔서 고맙습니다 :)
- 좋은 글에 대한 감사함을 댓글로 표현합니다. 자세한 설명글 감사합니다.
- OpenCV 버전 4부터는 findContours()가 값을 두 개만 리턴합니다.⋯
- 맨 앞에 im2는 빼야하는 듯 합니다.
- 혹시 im2, contour, hierarchy = cv2.findContour⋯
- 예, 이해하신 흐름이 맞습니다. 다만 '전체적인 분류 성능'을 어떻게 정의하냐에⋯
- 글 감사합니다. 궁금한 부분이, 프로세스가 다음 stump으로 넘어갈때, 샘플링⋯
- 👍
- 표로 정리해주셔서 이해가 한번에 잘 됐어요
귀퉁이 서재
BLOG - 13. 서버 시작프로그램 본문

EC2 git으로 push하기
로컬에서 작업한 결과물을 EC2 git 계정으로 push를 하면 지난번에 만들어준 post-receive가 빌드와 서버 재부팅을 자동으로 해줄 것입니다. 로컬이 결과물을 EC2 git으로 push해봅시다.
EC2 연결 후
sudo -u git bash
cd
cd .ssh
ls -al
현재 authorized_keys가 root, root 소유이므로 이를 git 계정 소유로 바꿔줘야합니다.
sudo chown git authorized_keys
sudo chgrp git authorized_keys
이제 로컬로 다시 돌아가 terrace_hook 디렉토리로 master브랜치를 push해보겠습니다.
exit
logout
cd terrace
git push git@13.125.232.34:~/terrace_hook master
이렇게 하면 정상적으로 push가 됩니다. EC2 git 계정으로 들어가 terrace_deploy 디렉토리를 보면 frontend, Makefile, src, web_root가 잘 들어와 있습니다.
terrace.service 생성
(EC2 루트 계정에서)
cd /etc
cd systmed
cd system
sudo vi terrace.service
terrace.service에 아래 코드를 복사 붙여넣기 합니다.
[Install]
WantedBy=multi-user.target
[Unit]
Description=Terrace
Requires=network.target
After=network.target
[Service]
WorkingDirectory=/home/git/terrace_deploy
Type=forking
ExecStart=/bin/bash -c 'pkill terrace; ./bin/terrace &'
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=terraceService
User=git
Group=git
[Install]
WantedBy=multi-user.target
terrace.service는 시작 프로그램이라고 생각하면 됩니다. 서버가 재부팅될 때 자동으로 서버를 실행해줍니다.
git계정에 go 설치 및 환경변수 설정
서버의 git 계정에서 로컬의 작업물을 go로 빌드를 해줄 것이기 때문에 go를 깔아야 합니다.
(EC2 git 계정에서)
cd
cd terrace_deploy
mkdir temp
cd temp
wget https://dl.google.com/go/go1.11.4.linux-amd64.tar.gz
# 다운이 완료 되면 압축풀기
tar -xzvf go1.11.4.linux-amd64.tar.gz
sudo mv go /usr/local
go 디렉토리를 /usr/local로 옮겼기 때문에 아래와 같이 환경 변수를 추가해줍니다.
cd
vi ~/.bashrc
.bashrc에 아래 코드 추가
export PATH=/usr/local/go/bin:$PATH
source ~/.bashrc
Makefile 업데이트
로컬에서 EC2 git으로 push하는 것도 Makefile을 통해 자동화해주겠습니다.
(로컬에서)
cd terrace
vi Makefile
run ,build 아래 아래 코드 추가 후 저장합니다.
Update:
/usr/local/go/bin/go build –x –o ./bin/terrace ./src
sudo setcap CAP_NET_BIND_SERVICE=+eip ./bin/terrace
deploy:
git push git@13.125.232.34:~/terrace_hook master
여기서 make update는 post-receive가 알아서 해줍니다. (새로운 작업물을 push 받으면 make update, 즉 빌드를 해줌) 사용자는 로컬에서 make deploy만 사용할 것입니다.
이제 Makefile을 활용해서 EC2 git으로 push를 해보겠습니다.
(로컬에서)
cd terrace
git add -A
git commit -m "deploy commit"
make deploy
이렇게 EC2 git으로 push를 할 수 있습니다. 그럼 서버에서 새로운 작업물을 받았다고 인지하고 자동으로 post-receive를 실행합니다. 우리가 만든 post-receive는 작업물을 빌드하고 서버를 재부팅합니다. 따라서 EC2 git으로 push를 하고, 크롬을 통해 해당 IP(서버)로 접속하면 로컬에서 작업한 결과물을 볼 수 있는 것입니다.
systemctl 설정
(ec2 루트계정 /etc/systemd/system 폴더 안에서)
sudo systemctl enable terrace.service
sudo systemctl daemon-reload
sudo systemctl start terrace.service
systemctl status terrace.service
terrace.service가 정상적으로 active(running) 된 상황을 볼 수 있습니다. 처음에만 위와 같이 설정해주고 앞으로는 EC2 git으로 push할 때 마다 post-receive가 아래의 코드를 실행해줍니다.
sudo systemctl restart terrace.service
sudo systemctl status terrace.service
이제 크롬 주소창에 각자의 ip를 치면 로컬에서 만들어준 vue 기본 페이지가 뜹니다.
2019. 2. 24.
'블로그 프로젝트' 카테고리의 다른 글
BLOG - 15. 블로그 세팅 마무리 (0) | 2019.04.06 |
---|---|
BLOG - 14. S3 배포 및 Redirect (0) | 2019.04.06 |
BLOG - 12. EC2 git Hook 설정 (0) | 2019.04.06 |
BLOG - 11. Github 연결 (0) | 2019.04.06 |
BLOG - 10. Shell Script, Makefile을 활용한 자동 배포 (0) | 2019.04.06 |
- Tag
- Githook