はじめに
とあるプロジェクトでOpsWorksにツンデレされたwときの対処法を書いておきます。
同じ現象に当たったときの助けになればと。
(もろもろの用語の説明は省いてます。あしからず。。)
状況
- AWS の DevOps サービスである OpsWorks を利用。
- 設定は nginx + unicorn
- アプリは Rails で作成
- ELB を挟み
- DB は RDS
- Stack の設定で custom cook book を有効にしている。
- custom cook book はgithub のリポジトリから取得している。
現象
nginx のサイト設定であるsites-available が無いと言われる。
custom cook book を無効にすると発生しない。
最初に対策
↓ のcookbookを、custom cookbook に指定して、setup時にnginx::defaultレシピを実行するよう設定。
これで現象を回避できます。
もろもろ
実はこの現象が発生したときには、以下のフォルダ/ファイルができていないこともわかっています。
上のレシピはこれらを補完してます。
/etc/nginx/sites-enabled フォルダがない
/etc/nginx/sites-available フォルダがない
/usr/sbin/nxensite スクリプトが無い(普通はデフォルトレシピのnginx::defaultで入る)
/usr/sbin/nxdissite スクリプトが無い(普通はデフォルトレシピのnginx::defaultで入る)
最後に
愛してきたOpsWorksに少しツンデレされて、仲良くなるのに3日ほど費やしました。
治ってよかった。同じようにツンデレされてもこれですぐ仲良くなれますねw