crontab

Welcome to Seoyun Dev Log·2022년 12월 13일
1

Crontab 자동 배포, 로그 파일


mac

1. ssh shell 접속



2. 관리자 권한 접속

sudo su - 


docker ps > dps.log
cat dps.log

2>&1 

→ 에러가 나면 에러도 docker-prune.log에 저장하는 옵션


3. crontab 작성

crontab -e

: 첫 실행이라면 사용할 툴 지정해야한다. (vim 2번 선택)

  • 매분 /home/ubuntu/deploy.sh를 실행하고 그 결과를 /home/ubuntu/deploy.log 에 저장합니다.
* * * * * sh /home/ubuntu/deploy.sh >> /home/ubuntu/deploy.log
//꺽쇠 > 한개이면 덮어쓰기 >> 두개면 누적 


4. /home/ubuntu 위치로

cd /home/ubuntu

5. vim deploy.sh

⭐️/home/ubuntu위치에서 만들어주세요!!!

  • ubuntu에서 확인했을 때 deploy.sh 파일 권한이 root로 되어있어야 합니다
ll로 확인

vim deploy.sh
#!/bin/bash
set -ex

docker pull registry.gitlab.com/syjang0501/mutsasns | grep "Image is up to date" && pull_status="already_pulled" || pull_status="newly_pulled"

echo $pull_status

if [ "$pull_status" = "newly_pulled" ]; then
docker stop codelion_mutsasns
docker rm -f codelion_mutsasns
docker run -d -p 8080:8080 --name codelion_mutsasns -e SPRING_DATASOURCE_URL=jdbc:mysql://ec2-3-39-233-233.ap-northeast-2.compute.amazonaws.com:3306/ec2-mutsasns -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=seoyun2323 -e JWT_TOKEN_SECRET=hello registry.gitlab.com/syjang0501/mutsasns
docker image prune -f
fi

  • 리눅스 종료 상태코드

  • 만약 root가 아닌 다른 권한으로 생성되었다면 파일 삭제 후 /home/ubuntu 위치에서 다시 만들어 주세요

rm <파일명>


명령어

  • 현재시간 확인
date

  • 텍스트 파일(File)의 내용을 화면에 출력하는 방법
    : cat 명령 뒤에 어떠한 옵션도 사용하지 않고 파일 이름만 입력하면, 파일의 내용을 그대로 화면에 출력
cat <file>

  • 현재 위치
pwd

  • root 로그아웃
exit

  • ubuntu 유저에서 deploy.sh 복사하기
cp deploy.sh /home/ubuntu/

copy


깃랩 yml / gitlab-ci.yml

stages:
  - dockerbuild-push

package:
  image: docker:latest
  stage: dockerbuild-push
  services:
    - docker:dind
  before_script:
    - docker login registry.gitlab.com -u $GITLAB_USER -p $GITLAB_PASSWORD
  script:
    - docker build -t registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME .
    - docker push registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME
  after_script:
    - docker logout
  1. yml(형식) 이란?
    key value list

변화 : html -> xml -> json -> yml
ex)

json
{
name:kyeongrok,
	age:37,
	skills:[java, python, docker]
}
jwt:
 token:
   secret: hello.world.ee.ff

java → python
json → yml

.gitlab-ci.yml —> 명령어들을 묶어놓은 yml형식의 배포 스크립트

profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글