前提条件
・GitHubアカウント作成、リポジトリ作成を終えていること
・SSH設定が可能なサーバを借りており、その設定を終えていること
本題
秘密鍵、公開鍵の作成
SSH用に、レンタルサーバ内で秘密鍵と公開鍵を作成します。
*1.既にRSAで作成している場合、念のため別ディレクトリにて保存することをおすすめします。
*2.passphraseは、設定不要です。ここで設定してしまうと、接続する度に面倒事が増えます。
*3.passphraseを設定していない場合、何も入力せずにEnterで問題ありません。
ssh-keygen -t rsa -b 8192
# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/../.ssh/id_rsa): *1
# Enter passphrase (empty for no passphrase): *2
# Enter same passphrase again:*3
GitHubに秘密鍵、公開鍵の登録
以下、デフォルトで生成されるファイル名で説明します。
1.生成されたid_rsa.pubを開き、末尾の改行を含んで全選択し、コピーします。
2.GitHub Actionsを実行しようとしているリポジトリを開き、Settings > Deploy keysに移動します。
3.Add deploy keyより記入欄内に、貼り付けます。
登録を終えると、以下の画像のようになります。
サーバにアクセスするために必要な情報を登録します。
4.Settings > Secrets and variablesに移動し、変数名と以下の内容を保存します。
- SSH_HOST:レンタルサーバにアクセスするためのIPアドレス
- SSH_USERNAME:レンタルサーバにアクセスするためのユーザーネーム
- PORT:PORT 番号(SSHのデフォルトは 22)
- SSH_PRIVATE_KEY:生成されたid_rsaを開き、末尾の改行を含んで全選択し、コピー&貼り付け
- DEPLOY_DIR:ログインした後に移動するディレクトリ先(フルパス)
登録を終えると、以下の画像のようになります。
ymlの作成
Actionsに移動し、「set up a workflow yourself」のリンク(以下の画像内青い所)をクリック。
以下のコードやファイル名を以下の画像のように、入力してください。
name: deploy_test
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: git checkout
uses: actions/checkout@v4
- name: multiple command
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.PORT }}
script: |
whoami
pwd
今回は、SSH Remote Commandsを利用しました。
リンク先: https://github.com/marketplace/actions/ssh-remote-commands
mainブランチにpushすると、実行されるように設定しています。
script以下が、サーバ内で実行するコマンドです。
入力後、右上のCommit changesをクリックし、コミットしてください。
実行結果
実行結果が成功なら緑チェックマーク、失敗なら赤バツマークです。
以上です。