LoginSignup
0
0

EC2インスタンス内ソースコードをgithub push時に自動更新するために試したこと

Last updated at Posted at 2023-07-31

github actionsでec2内ソースコードを更新出来るようにしました。

git pullだと同じ認証でも失敗するのでgit cloneで今は更新しています。

(プライベートリポジトリだからいいけどPATを直書きしないとssh後のshellの処理で失敗するのがタマにキズ)

事前準備

githubで動作させたいリポジトリのsetting→actions→secretの画面まで移ってから

SSH_PRIVATE_KEY=接続対象のec2インスタンスのssh秘密鍵情報を入力
SERVER_HOST=接続対象のec2インスタンスのホストipを入力
SERVER_USER=接続対象のec2インスタンスのユーザを入力
SERVER_DIRECTORY=ソース展開ディレクトリを入力(/var/www)

name: Deploy to EC2

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Set up SSH
      run: |
        mkdir -p ~/.ssh/
        echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
        chmod 600 ~/.ssh/id_rsa
        ssh-keyscan -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts

    - name: Deploy
      env:
        GIT_SSH_COMMAND: ssh -o StrictHostKeyChecking=no
      run: |
        ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} "rm -rf ${{ secrets.SERVER_DIRECTORY }}/html && git clone -b main --depth 1 https://<PATを直接入力> ${{ secrets.SERVER_DIRECTORY }}/html"

参考:AWS(EC2)への自動デプロイをDeployerからGitHub Actionsに移行する
https://qiita.com/nakaji0210/items/5b609cb952e2dd5a88d1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0