GitHub Actionsを使用してHugoブログをリモートサーバーに自動デプロイする
Hugoブログのすべてのコンテンツが準備できたら、ブログをリモートサーバーにデプロイできます。この記事では、GitHub Actionsを使用してHugoブログをリモートサーバーに自動デプロイする方法を紹介します。
セキュリティのため、パスワードでリモートサーバーにログインすることはお勧めしません。代わりに、SSHキーを使用してログインします。リモートサーバーに新しいユーザーを作成し、そのユーザーのためにSSHキーを生成し、GitHub Actionsがそのキーを使用してリモートサーバーにログインし、Hugoブログをデプロイするように設定します。
ローカルでSSHキーを生成する
ローカルで生成されたSSHキーは、新しいユーザーがリモートサーバーにログインするために使用されます。ローカルでSSHキーを生成するには:
|
|
プロンプトに従って、ファイルの保存パス(~/.ssh/github-blog-deploy
に設定)とパスフレーズ(空でも可)を設定します。
生成されるファイルは以下の通りです:
- 公開鍵ファイル:
github-blog-deploy.pub
- 秘密鍵ファイル:
github-blog-deploy
リモートサーバーで新しいユーザーのSSH公開鍵を設定する
-
リモートサーバーにログインする:
1
ssh root@SSH_IP -p SSH_PORT
-
新しいユーザーを作成する:
1
sudo adduser deployuser
-
新しいユーザーのSSHログインを設定する:
1 2 3 4 5
sudo mkdir /home/deployuser/.ssh sudo chmod 700 /home/deployuser/.ssh sudo touch /home/deployuser/.ssh/authorized_keys sudo chmod 600 /home/deployuser/.ssh/authorized_keys sudo chown -R deployuser:deployuser /home/deployuser/.ssh
-
ローカルで生成した公開鍵をリモートサーバーにコピーする:
github-blog-deploy.pub
ファイルの内容を/home/deployuser/.ssh/authorized_keys
ファイルに追加します:1
cat ~/.ssh/github-blog-deploy.pub | ssh root@SSH_IP -p SSH_PORT 'cat >> /home/deployuser/.ssh/authorized_keys'
または手動で公開鍵の内容をコピーして
authorized_keys
ファイルに貼り付けます:1
sudo nano /home/deployuser/.ssh/authorized_keys
github-blog-deploy.pub
ファイルの内容を貼り付けて保存します。 -
新しいユーザーのディレクトリ権限を設定する: ウェブサイトのデプロイディレクトリを作成し、権限を設定します:
1
sudo chown -R deployuser:deployuser /var/www/public
GitHub Actions設定ファイルを更新する
-
秘密鍵をGitHub Secretsに追加する:
- GitHubにログインし、Hugoブログのリポジトリに移動します。
Settings
->Secrets and variables
->Actions
->New repository secret
を順にクリックします。- 新しいSecretを追加し、
SSH_PRIVATE_KEY
として、github-blog-deploy
ファイルの内容(秘密鍵)を値として設定します。実際の状況に応じてSSH_PRIVATE_KEY
、SSH_IP
、SSH_PORT
の3つのSecretsを追加します。
-
GitHub Actions設定ファイルを更新する:
ファイル内容を以下のように追加します:
|
|