Bit rot in terraform's digitalocean led to new droplets not being attached for DO projects, thereby not being included in the firewall, so new droplets would never go online until added. This now adds them automatically, although new groups need to be added.

This commit is contained in:
Samuel Clay 2022-04-26 10:57:52 -04:00
parent 06d5ef497a
commit 03c82299eb

View file

@ -23,6 +23,46 @@ resource "digitalocean_ssh_key" "default" {
public_key = file("/srv/secrets-newsblur/keys/docker.key.pub")
}
resource "digitalocean_project" "NewsBlur_Docker" {
name = "NewsBlur Docker"
environment = "Production"
description = "Infrastructure glued together with consul"
}
resource "digitalocean_project_resources" "NewsBlur_Docker" {
project = digitalocean_project.NewsBlur_Docker.id
resources = flatten([
digitalocean_droplet.db-consul.*.urn,
digitalocean_droplet.www.*.urn,
digitalocean_droplet.app-django.*.urn,
digitalocean_droplet.app-counts.*.urn,
digitalocean_droplet.app-push.*.urn,
digitalocean_droplet.app-refresh.*.urn,
digitalocean_droplet.blog.*.urn,
digitalocean_droplet.staging-web.*.urn,
digitalocean_droplet.discovery.*.urn,
digitalocean_droplet.node-text.*.urn,
digitalocean_droplet.node-socket.*.urn,
digitalocean_droplet.node-favicons.*.urn,
digitalocean_droplet.node-images.*.urn,
digitalocean_droplet.node-page.*.urn,
digitalocean_droplet.db-elasticsearch.*.urn,
digitalocean_droplet.db-redis-user.*.urn,
digitalocean_droplet.db-redis-sessions.*.urn,
digitalocean_droplet.db-redis-story.*.urn,
digitalocean_droplet.db-redis-pubsub.*.urn,
digitalocean_droplet.db-postgres.*.urn,
digitalocean_droplet.db-mongo-primary.*.urn,
digitalocean_droplet.db-mongo-secondary.*.urn,
digitalocean_droplet.db-mongo-analytics.*.urn,
digitalocean_droplet.db-metrics.*.urn,
digitalocean_droplet.db-sentry.*.urn,
digitalocean_droplet.task-celery.*.urn,
digitalocean_droplet.task-work.*.urn
])
}
# #################
# # Resources #
# #################
@ -38,10 +78,10 @@ resource "digitalocean_droplet" "db-consul" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -56,10 +96,10 @@ resource "digitalocean_droplet" "www" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -74,10 +114,10 @@ resource "digitalocean_droplet" "app-django" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -92,10 +132,10 @@ resource "digitalocean_droplet" "app-counts" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -110,10 +150,10 @@ resource "digitalocean_droplet" "app-push" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -128,10 +168,10 @@ resource "digitalocean_droplet" "app-refresh" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -145,10 +185,10 @@ resource "digitalocean_droplet" "blog" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -162,10 +202,10 @@ resource "digitalocean_droplet" "staging-web" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -180,10 +220,10 @@ resource "digitalocean_droplet" "discovery" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -197,10 +237,10 @@ resource "digitalocean_droplet" "node-text" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -215,10 +255,10 @@ resource "digitalocean_droplet" "node-socket" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -232,10 +272,10 @@ resource "digitalocean_droplet" "node-favicons" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -249,10 +289,10 @@ resource "digitalocean_droplet" "node-images" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -278,10 +318,10 @@ resource "digitalocean_droplet" "node-page" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -295,10 +335,10 @@ resource "digitalocean_droplet" "db-elasticsearch" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -312,10 +352,10 @@ resource "digitalocean_droplet" "db-redis-user" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -329,10 +369,10 @@ resource "digitalocean_droplet" "db-redis-sessions" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -346,10 +386,10 @@ resource "digitalocean_droplet" "db-redis-story" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -363,10 +403,10 @@ resource "digitalocean_droplet" "db-redis-pubsub" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -380,10 +420,10 @@ resource "digitalocean_droplet" "db-postgres" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -408,10 +448,10 @@ resource "digitalocean_droplet" "db-postgres" {
# command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
# }
# provisioner "local-exec" {
# command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
# command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
# }
# provisioner "local-exec" {
# command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
# command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
# }
# }
@ -433,10 +473,10 @@ resource "digitalocean_droplet" "db-mongo-primary" {
# command = "sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -461,10 +501,10 @@ resource "digitalocean_droplet" "db-mongo-secondary" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -489,10 +529,10 @@ resource "digitalocean_droplet" "db-mongo-analytics" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -517,10 +557,10 @@ resource "digitalocean_droplet" "db-metrics" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -534,10 +574,10 @@ resource "digitalocean_droplet" "db-sentry" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -555,10 +595,10 @@ resource "digitalocean_droplet" "task-celery" {
command = "sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}
@ -573,9 +613,9 @@ resource "digitalocean_droplet" "task-work" {
command = "/srv/newsblur/ansible/utils/generate_inventory.py; sleep 120"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/playbooks/setup_root.yml"
}
provisioner "local-exec" {
command = "cd ..; ansible-playbook -l ${self.name} ansible/setup.yml"
command = "cd ..; ANSIBLE_FORCE_COLOR=1 ansible-playbook -l ${self.name} ansible/setup.yml"
}
}