約束の地

キャロ組

ただファイルを配置するだけの Capistrano を書く 

1. まずはインストール

gem install でも bundle install でもよいのでまずはインストールします。

$ gem install capistrano

2. まずは初期化

初期化しましょう。

$ cap install
mkdir -p config/deploy
create config/deploy.rb
create config/deploy/staging.rb
create config/deploy/production.rb
mkdir -p lib/capistrano/tasks
create Capfile
Capified

3. config/deploy.rb を編集する(ソースの Git リポジトリ指定)

ソースを持ってくるリポジトリを指定するため、config/deploy.rb を以下のように編集します。

(前略)
set :repo_url, "git@github.com:FOOBAR/HOGEHOGE.git"
(後略)

4. config/deploy/production.rb を編集する

環境ごとの設定ファイルを編集します。ここでは config/deploy/production.rb を以下のように編集することとします*1

set :stage, :production
set :branch, :master
set :deploy_to, '/KOKONI/DEPLOY/SHIMASU'
server 'example.com', user: 'DEPLOY_SURU_HITO'

5. デプロイする

デプロイを実行します。example.comDEPLOY_SURU_HITO というユーザでログインしてデプロイします*2

$ cap production deploy

補足

表題の通り、リポジトリからファイルを持ってきてそれを配置するだけの場合です*3。ここからいろいろ肉付けをしていく必要があるでしょう。

*1:新規にファイルを作ったりしてももちろんよいです

*2:SSH の鍵設定は終えていることが望ましいです

*3:ほぼ rsync と同等です

Monit で exec の引数を指定する際はダブルクォートでなければいけない(シングルクォートだとダメ)

結論

標題のとおりです。

ダメな例

check host "FOOBAR" with address 123.123.123.123
  if failed url http://123.123.123.123/path/to/hogehoge.html timeout 10 seconds for 3 cycles
    then
      exec 'touch /tmp/failed.txt'
  else if succeeded
    then
      exec 'touch /tmp/succeeded.txt'

OKな例

check host "FOOBAR" with address 123.123.123.123
  if failed url http://123.123.123.123/path/to/hogehoge.html timeout 10 seconds for 3 cycles
    then
      exec "touch /tmp/failed.txt"
  else if succeeded
    then
      exec "touch /tmp/succeeded.txt"

補足

スクリプトが発動しないで数時間ハマりました……。

ngrok をバックグラウンドで動かす

ngrok

ローカル開発環境のサーバ(ポート)宛に、グローバル環境からトンネルしてくれるサービスです。HTTPS で受けてくれるため、Webhooks の開発などに便利です。

バックグラウンドで動かす

バックグラウンドで動かすためには、まず最初は $ ngrok HOGEHOGE & とやってみると思うんですが、これでは動作しません。nohup してやるといいです。

続きを読む

Ruby/Rails で Google Cloud Vision API を使う

Cloud Vision

こちらです。

やれること(主なこと)

  • 画像を投げると OCR でテキストに変換してくれる
  • 画像を投げると「成人向けか否か」「暴力的か否か」などを判断してくれる
  • 画像を投げると「自由の女神」「黒澤明」などその画像の内容にまつわる固有名詞を返してくれる
  • 他にもたくさんあります*1

Cloud Vison を Ruby/Rails で使う

Cloud Vision を Ruby/Rails で使うのは簡単です。以下、順を追って見ていきます。

*1:サイト参照

続きを読む
Powered by はてなブログ