はじめに
この記事では、Ubuntu 22.04.3 LTS環境でGitHubリポジトリへのSSH接続の設定と、GitHub Actionsを使用したEC2サーバー上のプロジェクトの自動デプロイについて解説します。このプロセスは、開発者が継続的インテグレーション(CI)や継続的デプロイメント(CD)を実現するのに役立ちます。
こちらの記事もおすすめ
Ubuntu環境の確認
まず、使用しているUbuntuのバージョンを確認します。以下のコマンドを実行してください:
cat /etc/os-release
---
ubuntu@ip-172-31-45-101:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
このコマンドは、Ubuntuのバージョンやその他のシステム情報を表示します。
Gitのインストールと確認
次に、Gitがインストールされていることを確認します。以下のコマンドでGitのバージョンを確認できます:
git --version
もしGitがインストールされていない場合は、以下のコマンドでインストールします:
sudo apt update
sudo apt install git
SSHキーの生成
GitHubにSSHで接続するためには、SSHキーを生成する必要があります。以下の手順でキーを生成します:
ssh-keygen -t rsa
---
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): github_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
キーの名前とパスフレーズを求められたら、適切なものを入力します。ここでは、例としてgithub_key
という名前を使用します。
SSH設定の追加
生成したSSHキーを使ってGitHubへの接続を設定します。.ssh/config
ファイルを編集し、以下の内容を追加します:
Host github
HostName github.com
IdentityFile ~/.ssh/github_key
User git
GitHubへのSSHキーの追加
生成した公開キー(github_key.pub
)をGitHubアカウントに追加します。これはGitHubのユーザー設定ページで行えます。
SSH接続のテスト
GitHubへのSSH接続が正しく設定されたかを確認します:
ssh -T github
成功すれば、GitHubからの認証成功メッセージが表示されます。
GitHub Actionsの設定
GitHubリポジトリにGitHub Actionsのワークフローを設定します。以下のワークフロー定義を.github/workflows/deploy.yml
としてリポジトリに追加します:
name: ClimbCraft_EC2 auto deploy
on:
push:
branches: [ "main" ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Deploy
run: |
echo "${{ secrets.PRIVATE_KEY }}" > private_key
chmod 600 private_key
ssh -oStrictHostKeyChecking=no ${{ secrets.USER_NAME }}@${{ secrets.HOST_NAME }} -i private_key "cd ~/prj/ClimbCraft && git fetch github:Sunwood-ai-labs/ClimbCraft.git && git pull github:Sunwood-ai-labs/ClimbCraft.git"
このワークフローは、main
ブランチへのプッシュ時、または手動でワークフローを実行したときに、指定されたEC2サーバーにSSHで接続し、リポジトリの最新の変更をプルします。
GitHub Secretsの設定
GitHubリポジトリのSettingsタブからSecretsを設定します。PRIVATE_KEY
、USER_NAME
、HOST_NAME
に適切な値を設定します。
これで、Ubuntu 22.04.3 LTS環境でのGitHubリポジトリへのSSH接続の設定とGitHub Actionsを使用したEC2サーバー上の自動デプロイの設定が完了しました。これにより、開発プロセスがより効率的かつ安全になります。
Github action 連携完了
これでローカル👉Github👉AWSのフローが完成 pic.twitter.com/w3Jcd0uqF1— Maki@Sunwood AI Labs. (@hAru_mAki_ch) December 6, 2023
コメント