手元でRoute53のレコードを管理したいんだけど、Roadworkerを使ってRoutefile
がPull Requestでマージされたときに自動で行われるようになれば、コメント付きの履歴がとれつつ実際の状態とリポジトリ上のファイルとの一貫性がとれていいのかなと思ってやってみた。
必要なもの
- CircleCIのアカウント
- Route53のfull access権限のあるIAMユーザの
AWS_ACCESS_KEY_ID
とAWS_SECRET_ACCESS_KEY
- RoadworkerのRoutefile
- 現在の状態を
roadworker -e -o Routefile
コマンドでRoutefile
に書きだす 前述のRoute53の鍵を~/.aws/credentials
等に設定しておくこと
- 現在の状態を
CircleCIの設定
circle.yml
はこんな感じ:
machine: environment: AWS_ACCESS_KEY_ID: xxxxxxxxx AWS_SECRET_ACCESS_KEY: xxxxxxxxxx # Pull Requestされたらdry runする test: override: - bundle exec roadwork -a --dry-run # masterにマージされたら実際に適用する deployment: production: branch: master commands: - bundle exec roadwork -a
具体的な手順
サンプルを上げておいたので、そんな雰囲気で(眠い)。
追記 2015-05-21
CircleCIにはプロジェクトごとの管理画面から環境変数を設定できるので、AWS_ACCESS_KEY_ID
やAWS_SECRET_ACCESS_KEY
はcircle.yml
にベタ書きせずにそちらから設定したほうがいい。