#
ドキュメント

Document

自分のための備忘録です。

GitHub Actionsを使ってAWS EC2 18.04にデプロイ

AWS EC2 Ubuntu18.04を前提として記載。

  1. EC2でSSH鍵をパスフレーズなしで作成 $ ssh-keygen -m PEM -t rsa -C "info@example.com"
  2. 公開鍵をログインユーザー(ubuntu)の~/.ssh/authorized_keys に追加 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. 公開先ディレクトリを作成 $ mkdir -p /var/www/html
  4. GitHubからクローンするために公開鍵をGitHubアカウントのSSHに登録
  5. リポジトリをクローン $ git clone git@github.com:xxxxx/example.git
  6. GitHubからAWS EC2にアクセスするためにGitHubのリポジトリsettingssecretに変数としてSSH接続情報を登録(変数名は任意)
    後述するGitHub Actionの設定ファイル(例:.github/workflows/deploy.yml)で使用
    • EC2_SECRET_KEY:秘密鍵を登録
    • EC2_HOST:EC2のIP
    • EC2_USER:ubuntu(AWSのEC2インスタンスがUbuntuの場合)
  7. プロジェクトルートの直下にGitHub Action設定ファイル.github/workflows/deploy.ymltを作成

SSHの鍵作成はCircleCIの以下のドキュメントを参照
ref. https://circleci.com/docs/ja/2.0/add-ssh-key/

手順 ターミナルから、ssh-keygen -m PEM -t rsa -C "your_email@example.com" コマンドを入力して鍵を生成します。 詳細については、Secure Shell (SSH) のドキュメントを参照してください。
メモ: CircleCI が SSH 鍵を復号化できるよう、鍵には常に空のパスフレーズを設定してください。 また、CircleCI は OpenSSH のデフォルトのファイル形式をサポートしていません。OpenSSH を使用して鍵を生成する場合は、ssh-keygen -m pem コマンドを使用します。

メモ: 最近 ssh-keygen は、デフォルトで PEM 形式の鍵を生成しないように更新されました。 非公開鍵が -----BEGIN RSA PRIVATE KEY----- で始まらない場合、ssh-keygen -m PEM -t rsa -C "your_email@example.com" コマンドで鍵を生成すると、強制的に PEM 形式で生成できます。