手元で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にベタ書きせずにそちらから設定したほうがいい。