├── .gitignore ├── .terraform.lock.hcl ├── README.md ├── locals.tf ├── main.tf └── records.tf /.gitignore: -------------------------------------------------------------------------------- 1 | .envrc 2 | .DS_Store 3 | 4 | # Local .terraform directories 5 | **/.terraform/* 6 | 7 | # .tfstate files 8 | *.tfstate 9 | *.tfstate.* 10 | 11 | # Crash log files 12 | crash.log 13 | 14 | # Ignore any .tfvars files that are generated automatically for each Terraform run. Most 15 | # .tfvars files are managed as part of configuration and so should be included in 16 | # version control. 17 | # 18 | # example.tfvars 19 | 20 | # Ignore override files as they are usually used to override resources locally and so 21 | # are not checked in 22 | override.tf 23 | override.tf.json 24 | *_override.tf 25 | *_override.tf.json 26 | 27 | # Include override files you do wish to add to version control using negated pattern 28 | # 29 | # !example_override.tf 30 | 31 | # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan 32 | # example: *tfplan* 33 | -------------------------------------------------------------------------------- /.terraform.lock.hcl: -------------------------------------------------------------------------------- 1 | # This file is maintained automatically by "terraform init". 2 | # Manual edits may be lost in future updates. 3 | 4 | provider "registry.terraform.io/hashicorp/aws" { 5 | version = "5.44.0" 6 | constraints = "~> 5.0" 7 | hashes = [ 8 | "h1:K3sX+P4wofRNcVsnYW4PIhxHijd3w/ZD5AO7yWFPT6A=", 9 | "zh:1224a42bb04574785549b89815d98bda11f6e9992352fc6c36c5622f3aea91c0", 10 | "zh:2a8d1095a2f1ab097f516d9e7e0d289337849eebb3fcc34f075070c65063f4fa", 11 | "zh:46cce11150eb4934196d9bff693b72d0494c85917ceb3c2914d5ff4a785af861", 12 | "zh:4a7c15d585ee747d17f4b3904851cd95cfbb920fa197aed3df78e8d7ef9609b6", 13 | "zh:508f1a85a0b0f93bf26341207d809bd55b60c8fdeede40097d91f30111fc6f5d", 14 | "zh:52f968ffc21240213110378d0ffb298cbd23e9157a6d01dfac5a4360492d69c2", 15 | "zh:5e9846b48ef03eb59541049e81b15cae8bc7696a3779ae4a5412fdce60bb24e0", 16 | "zh:850398aecaf7dc0231fc320fdd6dffe41836e07a54c8c7b40eb28e7525d3c0a9", 17 | "zh:8f87eeb05bdd1b873b6cfb3898dfad6402ac180dfa3c8f9754df8f85dcf92ca6", 18 | "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", 19 | "zh:c726b87cd6ed111536f875dccedecff21abc802a4087264515ffab113cac36dc", 20 | "zh:d57ea706d2f98b93c7b05b0c6bc3420de8e8cf2d0b6703085dc15ed239b2cc49", 21 | "zh:d5d1a21246e68c2a7a04c5619eb0ad5a81644f644c432cb690537b816a156de2", 22 | "zh:e869904cac41114b7e4ee66bcd2ce4585ed15ca842040a60cb47119f69472c91", 23 | "zh:f1a09f2f3ea72cbe795b865cf31ad9b1866a536a8050cf0bb93d3fa51069582e", 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DNS ruby.com.br 🇧🇷 2 | 3 | Repositório de registros DNS do domínio `ruby.com.br` gerenciados via Terraform. Aberto a qualquer finalidade da comunidade brasileira. 4 | 5 | Para incluir um novo registro ou modificar um existente, crie um pull request modificando o arquivo [locals.tf](https://github.com/wagner/dns-ruby-com-br/blob/main/locals.tf). Consulte a [documentação](https://registry.terraform.io/providers/hashicorp/aws/5.44.0/docs/resources/route53_record) do Terraform para mais informações. 6 | 7 | O DNS está hospedado no Route53 da AWS em uma conta gerenciada e paga por [@wagner](https://github.com/wagner). 8 | -------------------------------------------------------------------------------- /locals.tf: -------------------------------------------------------------------------------- 1 | locals { 2 | records = { 3 | # ruby.com.br -> https://github.com/rubysummitbrasil/rubysummitbrasil.github.io 4 | # TODO: Mover para summit2021.ruby.com.br e usar o apex para outra coisa 5 | apex_a = { 6 | type = "A" 7 | name = "ruby.com.br" 8 | value = [ 9 | "185.199.108.153", 10 | "185.199.109.153", 11 | "185.199.110.153", 12 | "185.199.111.153" 13 | ] 14 | } 15 | 16 | apex_txt = { 17 | type = "TXT" 18 | name = "ruby.com.br" 19 | value = "v=spf1 -all" 20 | } 21 | 22 | # Diretório de comunidades Ruby 23 | # community.ruby.com.br -> https://github.com/guru-br/guru-br.github.io 24 | community = { 25 | type = "CNAME" 26 | name = "community.ruby.com.br" 27 | value = "guru-br.github.io" 28 | } 29 | 30 | # Diretório de empresas Ruby criado pela Le Wagon e Tropical.rb 31 | # empresas.ruby.com.br -> vast-guineafowl-iu7hx8tx58o0h63miig7mtb0.herokudns.com 32 | empresas = { 33 | type = "A" 34 | name = "empresas.ruby.com.br" 35 | value = [ 36 | "66.241.125.4" 37 | ] 38 | } 39 | 40 | # Redirecionamento tropical.ruby.com.br 41 | # tropical.ruby.com.br -> www.tropicalrb.com (via https://github.com/wagner/tropical-ruby-com-br) 42 | tropical = { 43 | type = "CNAME" 44 | name = "tropical.ruby.com.br" 45 | value = "wagner.github.io" # Repositório com redirecionamento manual 46 | } 47 | 48 | # Arquitetura e Design de Aplicações Ruby (ada.ruby.com.br) 49 | # ada.ruby.com.br -> https://adarb.org 50 | ada = { 51 | type = "CNAME" 52 | name = "ada.ruby.com.br" 53 | value = "adarb.org" 54 | } 55 | 56 | # Frevo on Rails (frevo.ruby.com.br) 57 | # frevo.ruby.com.br -> https://github.com/frevo-on-rails/frevo-on-rails.github.com 58 | frevo = { 59 | type = "TXT" 60 | name = "_github-pages-challenge-embs.frevo.ruby.com.br" 61 | value = "a5e75b0c0b048f320add8945e88165" 62 | } 63 | 64 | # Frevo on Rails (pe.ruby.com.br) 65 | # pe.ruby.com.br -> https://github.com/frevo-on-rails/frevo-on-rails.github.com 66 | pe = { 67 | type = "CNAME" 68 | name = "pe.ruby.com.br" 69 | value = "frevo-on-rails.github.io" 70 | } 71 | 72 | # Grupo de Usuários de Ruby de Goiás (go.ruby.com.br) 73 | # go.ruby.com.br -> hashnode.network 74 | go = { 75 | type = "CNAME" 76 | name = "go.ruby.com.br" 77 | value = "hashnode.network" 78 | } 79 | 80 | # Grupo de Usuários de Ruby de Goiás (goias.ruby.com.br) 81 | # goias.ruby.com.br -> https://github.com/rubygoias/goias-ruby-com-br 82 | goias = { 83 | type = "CNAME" 84 | name = "goias.ruby.com.br" 85 | value = "rubygoias.github.io" 86 | } 87 | 88 | # Grupo de Usuários de Ruby do Distrito Federal (df.ruby.com.br) 89 | # df.ruby.com.br -> https://github.com/Ruby-df 90 | df = { 91 | type = "CNAME" 92 | name = "df.ruby.com.br" 93 | value = "rubydf.com" 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /main.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | cloud { 3 | organization = "ruby-com-br" 4 | 5 | workspaces { 6 | name = "dns-ruby-com-br" 7 | } 8 | } 9 | 10 | required_providers { 11 | aws = { 12 | source = "hashicorp/aws" 13 | version = "~> 5.0" 14 | } 15 | } 16 | } 17 | 18 | provider "aws" { 19 | region = "us-east-1" 20 | profile = "pessoal" 21 | } 22 | -------------------------------------------------------------------------------- /records.tf: -------------------------------------------------------------------------------- 1 | resource "aws_route53_zone" "ruby-com-br" { 2 | force_destroy = false 3 | name = "ruby.com.br" 4 | } 5 | 6 | resource "aws_route53_record" "record" { 7 | for_each = local.records 8 | zone_id = aws_route53_zone.ruby-com-br.id 9 | name = each.value.name 10 | type = each.value.type 11 | ttl = 300 12 | records = each.value.value[*] 13 | } 14 | --------------------------------------------------------------------------------