drone.io でsshしてあれやこれやする
この記事は drone.io Advent Calendar 2017 - Adventar の9日目の記事です。
drone.io は Goで作られたオープンソースのCD (Continuous Delivery)環境です。
droneはテストを走らせるのが主な機能ですが、簡易的ではありますがデプロイを行うこともできます。
drone-ssh plugin
まずはデプロイ用の鍵を作成します。パスフレーズ入れられないので、パスフレーズなしで作成してください。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
公開鍵はデプロイ先に仕込んでください。秘密鍵はdroneに設定します。
リポジトリの画面から「Secrets」を開いてSecret Name
に ssh_key、 Secret Value
に秘密鍵をコピペして保存してください。
さて SSH | Plugins | Drone の設定を.drone.yml
に追加しましょう。
pipeline deploy: image: appleboy/drone-ssh host: example.com username: 'root' port: 22 secrets: [ ssh_key ] script: - echo hello when: branch: master
secrets: [ ssh_key ]
で秘密鍵を指定します。
scriptには実行したいコマンドを書きますが、複数行書けるのであとはなんでもできます。
whenでmasterブランチへの変更時にのみに設定すればプルリクエストをマージしたときに自動でデプロイをする設定も実現できます。