There's an echo in my head

日々のメモ。

Route53のレコードをRoadworkerとCircleCIを使ってPull Requestベースで管理する

手元でRoute53のレコードを管理したいんだけど、Roadworkerを使ってRoutefileがPull Requestでマージされたときに自動で行われるようになれば、コメント付きの履歴がとれつつ実際の状態とリポジトリ上のファイルとの一貫性がとれていいのかなと思ってやってみた。

必要なもの

  • CircleCIのアカウント
    • Travis CIでも同様のことはできると思う。ただ今回プライベートリポジトリを扱いたかったので、無料で1枠使えるCircleCIで試してみた。
  • Route53のfull access権限のあるIAMユーザのAWS_ACCESS_KEY_IDAWS_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_IDAWS_SECRET_ACCESS_KEYcircle.ymlにベタ書きせずにそちらから設定したほうがいい。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。