参考資料
- 公式(github)
- クラスメソッドさん
- qiita
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で管理されているレコードに差異が無いかをテスト。