LoginSignup
5
6

More than 5 years have passed since last update.

Route53をRoadworkerで管理してみる

Last updated at Posted at 2018-01-04

参考資料


roadworker単体で動かす場合は以下の感じで良さそう。
.routeファイル内に用途をコメントで記載してgithubなどで管理するのが良さそう。


インストール

$ gem install roadworker
$ roadwork --version
roadwork 0.5.8

※以降AWS_PROFILE変数を使うのでaws-cliのインストールとconfigは済ませておく。
 AWS_PROFILEの準備は以下などを参考に・・・。
 参考) https://qiita.com/tomy103rider/items/d25e03adaee3e93a5737

現在のRoute53の設定をエクスポート

例)
export AWS_PROFILE
DEFINE_DIR=~/tomi/github/hoge/roadworker-sre
###roadwork -e --split --with-soa-ns -o ${DEFINE_DIR}
roadwork -e --split -o ${DEFINE_DIR}

※--with-soa-ns オプションでNSとSOAレコードもエクスポートできるがここでは割愛

以下のようにRoadfileと<ドメイン名>.routeファイルができる。

エクスポートしたRoutefileファイル

# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'tomy103-base.test.route'
エクスポートしたtomy103-base.test.routeファイル

# -*- mode: ruby -*-
# vi: set ft=ruby :
hosted_zone "tomy103-base.test." do

(ここにレコードの定義を書いていく)

end

Aレコード設定例

tomy103-base.test.routeファイル

# -*- mode: ruby -*-
# vi: set ft=ruby :
hosted_zone "tomy103-base.test." do

  # test1用
  rrset "test01.tomy103-base.test.", "A" do
    ttl 60
    resource_records(
      "103.0.0.1"
    )
  end

end

設定反映前確認 (dry-run)

例)
export AWS_PROFILE
DEFINE_DIR=~/tomi/github/hoge/roadworker-sre

roadwork -a --dry-run --file ${DEFINE_DIR}/Routefile

---実行結果
Apply `<path>/Routefile` to Route53 (dry-run)
Create ResourceRecordSet: test01.tomy103-base.test A (dry-run)
No change

※dry-runなので「No change」=変更は実行されない
※削除のときは以下のようなメッセージ。

Delete ResourceRecordSet: test02.tomy103-base.test. A (dry-run)

※変更のときは以下のようなメッセージ。

Update ResourceRecordSet: test01.tomy103-base.test. A (dry-run)
  resource_records:
    -[{:value=>"103.0.0.1"}]
    +[{:value=>"103.0.1.1"}] (dry-run)

設定反映 (apply)

例)
export AWS_PROFILE
DEFINE_DIR=~/tomi/github/hoge/roadworker-sre

roadwork -a --file ${DEFINE_DIR}/Routefile

---実行結果
Apply `<path>/Routefile` to Route53
Create ResourceRecordSet: test01.tomy103-base.test A

Route53をコンソールで確認するとAレコードが追加されている。

設定反映後確認 (test)

例)
export AWS_PROFILE
DEFINE_DIR=~/tomi/github/hoge/roadworker-sre

roadwork -t --file ${DEFINE_DIR}/Routefile

---実行結果
問題なければ以下のように「0 failure」
.....
5 examples, 0 failure

問題あれば例えば以下のように「X failure」
....F
cname-test-yahoo.mtomizuka-base.info. CNAME:
  expected=ww.yahoo.co.jp(60)
  actual=www.yahoo.co.jp(15)
5 examples, 1 failure

現在Route53に登録されているレコードとroadworkerで管理されているレコードに差異が無いかをテスト。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6