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公開鍵を設定する
-
リモートサーバーにログインする:
1ssh root@SSH_IP -p SSH_PORT -
新しいユーザーを作成する:
1sudo adduser deployuser -
新しいユーザーのSSHログインを設定する:
1 2 3 4 5sudo 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ファイルに追加します:1cat ~/.ssh/github-blog-deploy.pub | ssh root@SSH_IP -p SSH_PORT 'cat >> /home/deployuser/.ssh/authorized_keys'または手動で公開鍵の内容をコピーして
authorized_keysファイルに貼り付けます:1sudo nano /home/deployuser/.ssh/authorized_keysgithub-blog-deploy.pubファイルの内容を貼り付けて保存します。 -
新しいユーザーのディレクトリ権限を設定する: ウェブサイトのデプロイディレクトリを作成し、権限を設定します:
1sudo 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設定ファイルを更新する:
ファイル内容を以下のように追加します:
|
|
支付宝
贝宝
微信