Created
February 1, 2016 02:23
-
-
Save asimihsan/d8d8f0f10bdc85fc6f8a to your computer and use it in GitHub Desktop.
Revisions
-
asimihsan created this gist
Feb 1, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,84 @@ #!/usr/bin/env ruby require 'aws-sdk' require 'pry' require 'awesome_print' # ------------------------------------------------------------------------------ # Credentials # ------------------------------------------------------------------------------ # pick up AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY by default from # environment Aws.config.update({ region: 'us-west-2', }) # ------------------------------------------------------------------------------ def setup_dns(domain, txt_challenge) route53 = Aws::Route53::Client.new() hosted_zone = route53.list_hosted_zones_by_name( {dns_name: "#{domain}."}).hosted_zones[0] changes = [] changes << { action: "UPSERT", resource_record_set: { name: "_acme-challenge.#{domain}.", type: "TXT", ttl: 60, resource_records: [ value: "\"#{txt_challenge}\"", ], }, } resp = route53.change_resource_record_sets({ hosted_zone_id: hosted_zone.id, change_batch: { changes: changes, }, }) ap resp sleep 10 end def delete_dns(domain, txt_challenge) route53 = Aws::Route53::Client.new() hosted_zone = route53.list_hosted_zones_by_name( {dns_name: "#{domain}."}).hosted_zones[0] changes = [] changes << { action: "DELETE", resource_record_set: { name: "_acme-challenge.#{domain}.", type: "TXT", ttl: 60, resource_records: [ value: "\"#{txt_challenge}\"", ], }, } resp = route53.change_resource_record_sets({ hosted_zone_id: hosted_zone.id, change_batch: { changes: changes, }, }) ap resp sleep 10 end if __FILE__ == $0 hook_stage = ARGV[0] domain = ARGV[1] txt_challenge = ARGV[3] puts hook_stage puts domain puts txt_challenge if hook_stage == "deploy_challenge" setup_dns(domain, txt_challenge) elsif hook_stage == "clean_challenge" delete_dns(domain, txt_challenge) end end