本記事のテーマ
【完全初心者向け】ConoHa WINGに自動デプロイする方法【コピペでOK】
読者さんへの前置きメッセージ
今回ご紹介させていただくやり方は、Gitで管理しているWordPressのテーマをデプロイする方法になります。
僕自身もこの方法でConoHa WINGに自動デプロイしています!
1度デプロイする仕組みを作ってしまえばGitHub Actionが自動的にデプロイ作業を行なってくれる為、効率的で管理しやすくなると思います。
それでは、さっそく見ていきましょう。
デプロイの流れ
SSHアカウントの作成
今回はSSHを介してファイルを転送を行なうので、ConoHa WING側でSSHアカウントを作成します。
ConoHa WINGの管理画面にログインします。
サイドメニューの[サーバー管理]→[SSH]を開きます。
右上の「+ SSH Key」をクリックし、SSHキーを新規作成します。
登録方法は「自動生成」を選択しましょう。
ネームタグは好きな名前を付けてもらっても構いません。問題なければそのままでも大丈夫です。
「保存」ボタンをクリックします。
プライベートキーをダウンロードします。
以上でSSHアカウントの作成が完了しました!
Git secretsにSSHアカウントを登録
GitHubのリポジトリ内から[Settings]→[Actions]を開きます。
[New repository secret]ボタンをクリックしSSHアカウント情報を登録していきます。
僕の場合はWordPressのテーマだけ管理したかったので、下記のようにテーマまでのパスを登録しています。
「~/public_html/サイト名/wp-content/themes/テーマフォルダ名」
SSHアカウントを作成した際にダウンロードしたプライベートキーを登録します。
ターミナルでプライベートキーを出力します。
下記をターミナルで実行し、出力結果を登録します。
$cat プライベートキー名
—–BEGIN RSA PRIVATE KEY—–
—–END RSA PRIVATE KEY—–
上記の文字もプライベートキーですので忘れずに登録しましょう!
GitAction用のymlファイルを作成
今回はrsyncを使ってデプロイしていきます。
まず.github/workflows/というフォルダを作成しましょう。
そのフォルダの中にdeploy.ymlを作成します。
※ファイル名は.ymlが付けばなんでもいいです!
deploy.ymlに下記のコードを貼り付けてください。
name: deploy to ConoHa WING
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: ssh key generate
run: echo "$SSH_PRIVATE_KEY" > key && chmod 600 key
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
- name: rsync deployments
uses: burnett01/rsync-deployments@5.1
with:
switches: -avz --delete
path: ./theme/
remote_path: ${{ secrets.REMOTE_PATH }}
remote_host: ${{ secrets.REMOTE_HOST }}
remote_user: ${{ secrets.REMOTE_USER }}
remote_port: ${{ secrets.REMOTE_PORT }}
remote_key: ${{ secrets.SSH_PRIVATE_KEY }}
ワークフローの名前を指定しています。 自分が分かりやすい名前を付けましょう。
name: deploy to ConoHa WING
トリガーを定義しています。ここではmainブランチにプッシュされた時に実行されるようになっています。
on:
push:
branches:
- main
runs-onパラメーターは、このジョブが実行される仮想環境を指定します。僕の場合ubuntu-latestという名前の仮想環境を使用してジョブを実行しています。
jobs:
deploy:
runs-on: ubuntu-latest
stepsセクションで、ジョブの実行手順を定義しています。
最初のステップは、actions/checkout@v2アクションを使用して、現在のリポジトリの最新のコードをチェックアウトしています。
2番目のステップは、ssh key generateという名前のジョブを実行しています。このジョブは、SSH鍵を生成するためのステップです。
3番目のステップは、rsync deploymentsアクションを使用して、指定されたリモートホストにファイルをデプロイするためのステップを定義しています。
steps:
- uses: actions/checkout@v2
- name: ssh key generate
run: echo "$SSH_PRIVATE_KEY" > key && chmod 600 key
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
- name: rsync deployments
uses: burnett01/rsync-deployments@5.1
with:
switches: -avz --delete
path: ./theme/
remote_path: ${{ secrets.REMOTE_PATH }}
remote_host: ${{ secrets.REMOTE_HOST }}
remote_user: ${{ secrets.REMOTE_USER }}
remote_port: ${{ secrets.REMOTE_PORT }}
remote_key: ${{ secrets.SSH_PRIVATE_KEY }}
デプロイ!
あとはメインブランチにpushするだけでデプロイできます!
GitActionはFreeプランだと月に2000分使用することができます。
2000分もあれば不自由なく使えると思います。
この記事が少しでも皆様の参考になれば嬉しいです!