Bash 스크립트를 사용한 간단한 배포

2478 단어 devopsbash
배포에 사용되는 일반 명령 자동화는 배포 프로세스를 단순화하는 데 매우 유용합니다. 내 프로젝트 중 하나에는 배포에 사용되는 다음 명령 세트가 있습니다.

#!/usr/bin/env bash

echo "Navigate to project directory..."
cd /var/www/project
echo "Pulling codes..."

git fetch --tags
tag=$(git describe --tags `git rev-list --tags --max-count=1`)
echo "Checkout latest tag"
git checkout $tag

echo "Install dependencies..."
y | composer install

echo "Clear config caches..."
php artisan config:clear
echo "Clear view caches..."
php artisan view:clear

echo "Change project ownerhship to www-data..."
chown www-data:www-data /var/www/project -R

clear


Git의 자격 증명 요청을 건너뛰기 위해 SSH 키를 프로젝트 저장소에 추가할 수 있습니다.

개선을 위한 아이디어

release 이벤트에서 배포를 자동화하고 싶을 수 있습니다.

릴리스되면 Github는 위의 스크립트를 실행하기 위해 Webhook을 내 Webhook 핸들러로 보냅니다. 하지만 웹후크를 처리하고 위에서 만든 배포 스크립트를 실행하기 위해 내부적으로 각 노드에 연결하는 서버가 필요할 수 있습니다.
  • Github Webhook을 처리하기 위한 추가 서버
  • Webhook 핸들러 서버는 각 앱 서버에 SSH로 연결하여 로그인하고 배포 스크립트를 실행할 수 있어야 합니다.
  • Github 저장소에 추가하려면 각 앱 서버에 SSH 키가 필요합니다.

  • 기본적으로 다음과 같은 흐름입니다.

    Github 웹후크 > 웹후크 핸들러 > 앱 서버

    이 프로젝트는 고객의 전제에 있기 때문에 들어오는 Github Webhooks를 처리하기 위해 추가 서버를 요청해야 합니다.

    사진 제공: Annie Spratt on Unsplash

    좋은 웹페이지 즐겨찾기