GitHub ActionsでAmazon Lightsailに自動でデプロイする方法
GitHub ActionsでAmazon Lightsailに自動でデプロイする方法 本記事ではGitHub上のリポジトリのmainブランチに変更(コミットやマージなど)があった際に、サーバー側からgit pullを実 […]
Filter by Category
GitHub ActionsでAmazon Lightsailに自動でデプロイする方法 本記事ではGitHub上のリポジトリのmainブランチに変更(コミットやマージなど)があった際に、サーバー側からgit pullを実 […]
Dockerで起動したDjangoプロジェクトをPycharmのデバッグモードで起動 Dockerで起動したDjangoプロジェクトをPycharmのデバッグモードで起動して、ブレークポイントを設定して任意の行でプログラ […]
2021年の夏季休業のお知らせ 誠に勝手ながら、弊社では下記日程を夏季休業とさせていただきます。 夏季休業期間 2021年8月13日(金)~2021年8月16日(月) 期間中にいただきましたお問い合わせにつきましては、夏 […]
Docker環境にGitHubリポジトリをクローンして開発する Djangoを含んで起動させるDockerプロジェクトの例はいくつか見つかりましたが、Docker環境に別で開発しているリポジトリをクローンして開発を進める […]
pipenv shellをしてもactivateできない pipenvで作った仮想環境に出たり入ったりを繰り返していると、pipenv shellをしても以下のようにShell for UNKNOWN_VIRTUAL_E […]
WARNING: `pyenv init -` no longer sets PATH. pyenvが入っているzsh環境(Mac)でターミナルの起動時に以下のエラーが出るようになりました。今回はDjangoのプロジェク […]
40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築 VPSへのログイン(新規タブ) OSの初期設定(アップデート、アップグレード) 新規ユーザーを追加 新しく追加したユーザー […]
生産効率を上げる方法について筆者が利用している環境を紹介する。前提として、生産効率を高める最も単純な方法はマウスを使わないことだ。したがって、マウスを使わない環境を整備することがまず求められる。次に導入する4つそれぞれの […]
OpenCVで複数の動画を連結する 複数の動画素材を結合したり、GoProで長時間撮影した時に約4GB毎に分割される動画ファイルを結合して一つの動画を書き出す方法です。 コードはGitHubリポジトリにあげています。 開 […]
MEDぐんま 2021に出展しました 2021年5月9日(日)にMEDぐんま 2021に出展しました。 開催概要 ◆MEDぐんま 2021会期: 2021年5月9日(日)会場: 群馬会館
2021年ゴールデンウィーク休業のお知らせ 平素は格別のお引立てを賜り、厚く御礼申し上げます。 誠に勝手ながら、弊社では下記日程をゴールデンウィーク休業とさせて頂きます。 2021年4月29日(木)~ 2021年5月 […]
SDGsぐんまビジネスプラクティスに選定されました 介護現場での「人とテクノロジーの協業」が業務時間の節約や精神的なゆとりの創出につながり、さらには利用者やスタッフ間の豊かなコミュニケーションを生み出し、全ての利用者が本 […]
2021年 長期インターン募集のお知らせ 概要2021年度の長期インターン採用の募集を開始しました。 募集職種・インフラエンジニア・ウェブアプリケーションエンジニア・UI/UXデザイナー・グラフィックデザイナー 想定給与 […]
Pythonでファイルをアップロードする 画像をPOSTして結果を返すプログラムやファイルをアップロードして機械学習の推論を試す時に、ブラウザからFormを使ってアップロードすることもできますが、Pythonでファイルの […]
django-import-exportで管理画面からCSVをインポート 情報を登録する際に一件づつ入力せずにCSVからまとめてインポートして登録が行えるので初期情報を登録する時などに便利な方法です。 コードはGitHu […]
OSError: No translation files found for default language このエラーはDjangoで設定言語が間違ってる時に発生するエラーです。 settings.py setti […]
前回の内容が古くなってしまったので2021年版に更新します。 Dockerを使ってシンプルなDjangoとPostgreSQLの開発環境を構築する方法の2021年版です。以下の点が前回より変わった点です。・Volumeを […]
Pythonのrandomモジュールでランダムな小数・整数を生成 Pythonで乱数(ランダムな小数や整数)が生成できる、randomモジュールの使い方を説明します。 開発環境 float型の乱数を生成(1) float […]
NameError: name ‘os’ is not definedが表示される Djangoの開発を始める時に最初のstartappする前に以下のエラーが出る時があります。これは初期段階でse […]
Pythonのdatetimeで日付、時間の計算(2) 前回からの続きです。 今回は、曜日を取得したり、特定の曜日の日付を取得します。後半は文字列とdatetimeの変換について説明します。 開発環境 本日の曜日を取得 […]
本記事ではGitHub上のリポジトリのmainブランチに変更(コミットやマージなど)があった際に、サーバー側からgit pullを実行してmain変更を反映する方法です。この方法を用いることで自動でデプロイできる環境を構築します。
デプロイするコードはGitHubリポジトリにあげています。
https:/USERNAME:PASSWORD@github.com/nobnov/deplytest.git
のようにユーザー名とパスワードを指定してリポジトリをcloneします。
sudo git clone https:/XXXXX:XXXXX@github.com/nobnov/deplytest.git
git remote -v
sudo git pull origin main
GitHubリポジトリのDeploy keysに公開鍵を登録します。サーバーにログインして以下のコマンドで公開鍵の中身を表示します。
cat .ssh/authorized_keys
鍵のタイトル(任意)と上記でコピーした内容をペーストしてAdd kyeで登録します。
以下のコマンドでLightsailからダウンロードしたSSHキーの中身をターミナルの画面上に表示します。
cat .ssh/XXXXX
※コピーする時は-----BEGIN RSA PRIVATE KEY-----
と-----END RSA PRIVATE KEY-----
も含んでください。内側の文字列だけをコピーをするとWorkflow実行中に以下のエラーが発生します。
ssh.ParsePrivateKey: ssh: no key found
ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain
登録する機密情報の一覧は以下の通りです。
DEPLOY_DIR | /var/www/deploytes/deploytes(プロジェクトのディレクトリ) |
DEPLOY_HOST | IPアドレス |
DEPLOY_KEY | 秘密鍵の中身 |
DEPLOY_PORT | 22(実際に使用しているPort) |
DEPLOY_USER | ubuntu(実際に使用しているユーザー名) |
全ての設定(5つ)が完了すると画像のように表示されます。
set up a workflow yourselfをクリックしてWorkflowをymlファイルに以下のように変更します。ローカル環境でも編集可能ですが、今回はGitHub上で行います。
name: CI
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USER }}
port: ${{ secrets.DEPLOY_PORT }}
key: ${{ secrets.DEPLOY_KEY }}
script: |
cd ${{ secrets.DEPLOY_DIR }}
sudo git pull origin main
mainブランチへcommitするかプルリクエストをトリガーにWorkflowが実行して自動デプロイされます。
{{ secrets.DEPLOY_HOST }}のDEPLOY_HOSTの部分はActions secretsで登録したtitleで、secrets.XXXXXとすることで登録した機密情報を取得できます。
上手くいくと以下のようにログが表示されます。
======CMD======
cd ***
sudo git pull origin main
======END======
err: From https://github.com/nobnov/deplytest
err: * branch main -> FETCH_HEAD
out: Already up to date.
==============================================
✅ Successfully executed commands to all host.
==============================================
Alembic API argparse Beautiful Soup black Channels charset CodeCommit datetime Django REST framework Docker enumerate f-string git GitHub glob Google Colaboratory i18n Internship Jupyter Lambda Matplotlib Nginx OpenCV pandas PIL Pillow PostgreSQL PyCharm PyCon pyenv PyTorch Redis Rembg ReportLab requests S3 Selenium Sentry slack tqdm uWSGI venv Vue.js youtube
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません
Comments