1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ConoHaAdvent Calendar 2020

Day 12

ConoHaVPSにCircleCIで自動デプロイする話

Last updated at Posted at 2020-12-11

ConoHa Advent Calendar 2020 の12日目を投稿させていただきます。
よろしくお願いします。

はじめに

  • ConoHaにはAWSでいうCodeBuildなどのようなものは無い...?
  • jenkinsのテンプレートを試す時間が無かった
  • 既存のサービスで手軽に自動デプロイしたかった話。

なぜConoHaで?

  • このはちゃんがかわいいからです!

構成

従来のもの

before.png

  • ミスりそう。
  • 統一した環境でのビルド/テストしたい。
  • 毎回sshしたりしないといけない...。

CircleCIを使うもの

after.png

  • 基本自動(構成上、更新内容によっては手動作業必要かも?)
  • 統一した環境でのビルド/テスト

CircleCIのconfig

CircleCIでconfigのymlファイルを書いてビルド設定をします。詳しく書くと長くなってしまうので概略だけ。

version: 2
jobs:
  build:
    docker:
      - image: circleci/golang:1.14.2-node
    working_directory: /home/circleci/go/src/github.com/<ProjectName>
    steps:
      - checkout
      - add_ssh_keys:
          fingerprints:
          - ${FINGER_PRINT}

      - run: go vet ./... # (例)
      - run: go test ./... # (例)
      - run: go build ...... # (例)
      - run: zip -r ./artifacts.zip go_bin1 go_bin2 ......
      - store_artifacts:
          path: ./artifacts.zip
      - run: 
          command: ssh -o StrictHostKeyChecking=no ${USER_NAME}@${HOST_NAME} "<各自のデプロイ用のコマンド>"
          no_output_timeout: 1m

大まかな手順としては

  1. checkoutして成果物をビルド。
  2. 成果物をartifactとして保存。
  3. SSHした先でAPI使ってダウンロード。
    となります。

APIは現状だと

wget -q -O <file_path> https://circleci.com/api/v1.1/project/github/<user_name>/<project_name>/<job_number>/artifacts?circle-token=<api_token>

でダウンロードして展開すれば完了ですね!(その他再起動などは置いといて)

まとめ

純ConoHaで自動ビルド/デプロイできるようにしたいですね!(jenkinsのtemplate)

今後の課題

  • Jenkinsのテンプレートを使って純ConoHa自動デプロイを目指す。

宣伝(?)

お得な割引きっぷが使えるようになったので皆さん是非課金買いましょう!

参考/引用

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?