From 4659ad300ddf50c373cee7f4a0c954364ca675f1 Mon Sep 17 00:00:00 2001 From: Pablo Fredrikson Date: Tue, 5 Mar 2019 06:57:48 -0800 Subject: [PATCH] Agregando terraform 1 --- README.md | 3 + terraform/.gitignore | 1 + terraform/1/01_ssh_key.tf | 8 ++ terraform/1/02_droplet.tf | 11 +++ terraform/1/03_dns.tf | 15 ++++ terraform/1/_provider.tf | 7 ++ terraform/1/id_rsa.pub | 1 + terraform/1/terraform.tfstate | 16 ++++ terraform/1/terraform.tfstate.backup | 120 +++++++++++++++++++++++++++ terraform/1/userdata.yaml | 10 +++ 10 files changed, 192 insertions(+) create mode 100644 terraform/.gitignore create mode 100644 terraform/1/01_ssh_key.tf create mode 100644 terraform/1/02_droplet.tf create mode 100644 terraform/1/03_dns.tf create mode 100644 terraform/1/_provider.tf create mode 100644 terraform/1/id_rsa.pub create mode 100644 terraform/1/terraform.tfstate create mode 100644 terraform/1/terraform.tfstate.backup create mode 100644 terraform/1/userdata.yaml diff --git a/README.md b/README.md index 99768832..795ccd7f 100644 --- a/README.md +++ b/README.md @@ -43,3 +43,6 @@ Si el nombre del capítulo no tiene link, es porque no necesité postear ningún 5. Viernes 2 Minutos 1. [Docker-compose override](./v2m/1) / [video](https://youtu.be/TPmbwAgN4ZA) + +6. Terraform + 1. [Terraform 1](./terraform/1) / [video](https://www.youtube.com/watch?v=1itPqkU8XZw) diff --git a/terraform/.gitignore b/terraform/.gitignore new file mode 100644 index 00000000..3fa8c86b --- /dev/null +++ b/terraform/.gitignore @@ -0,0 +1 @@ +.terraform diff --git a/terraform/1/01_ssh_key.tf b/terraform/1/01_ssh_key.tf new file mode 100644 index 00000000..73db49aa --- /dev/null +++ b/terraform/1/01_ssh_key.tf @@ -0,0 +1,8 @@ +# +# Exportamos nuestra key SSH + +resource "digitalocean_ssh_key" "pelado" { + name = "pelado" + public_key = "${file("id_rsa.pub")}" +} + diff --git a/terraform/1/02_droplet.tf b/terraform/1/02_droplet.tf new file mode 100644 index 00000000..6115a3df --- /dev/null +++ b/terraform/1/02_droplet.tf @@ -0,0 +1,11 @@ +# +# Creamos el droplet + +resource "digitalocean_droplet" "web" { + image = "ubuntu-18-04-x64" + name = "web-1" + region = "nyc1" + size = "s-1vcpu-1gb" + user_data = "${file("userdata.yaml")}" + ssh_keys = ["${digitalocean_ssh_key.pelado.fingerprint}"] +} diff --git a/terraform/1/03_dns.tf b/terraform/1/03_dns.tf new file mode 100644 index 00000000..956afd08 --- /dev/null +++ b/terraform/1/03_dns.tf @@ -0,0 +1,15 @@ +# Creamos un dominio nuevo + +resource "digitalocean_domain" "pablokbs" { + name = "pablokbs.com" +} + +# Add a record to the domain +resource "digitalocean_record" "www" { + domain = "${digitalocean_domain.pablokbs.name}" + type = "A" + name = "pelado" + ttl = "10" + value = "${digitalocean_droplet.web.ipv4_address}" +} + diff --git a/terraform/1/_provider.tf b/terraform/1/_provider.tf new file mode 100644 index 00000000..e230ed48 --- /dev/null +++ b/terraform/1/_provider.tf @@ -0,0 +1,7 @@ +variable "digitalocean_token" {} + +# Configure the DigitalOcean Provider +provider "digitalocean" { + token = "${var.digitalocean_token}" +} + diff --git a/terraform/1/id_rsa.pub b/terraform/1/id_rsa.pub new file mode 100644 index 00000000..7af4b0f5 --- /dev/null +++ b/terraform/1/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeBNiMcymqStf/htH+Hwb1HkTM3lrQ+guCt9pC6SZm66nMys3Pun6SqlPoBDyObRNRzYKe57pxga3W2O0UE+puiGoICDK/XhJ2kSchJQLCpl1Cb+57tAez6vO46sLVrG4pdyKpOmYJrsCwt0zw0z4rIKr7Gm43Mr+GBLrDBdFz6UXArsSzazPihb1ySI3OdH01zCgenJC8lIO2V+4kvYzvzXZIng24SlO1Eoz0W/p/AF+HtzseKGoPXMYaxq9Mbu6jtlpFOuzmYsl3xQUP1nbFUqEKsozfMnjLA/1uGTV7AFKS9o6aIQ4Zz4Hg8gBWhTBmwV6W3hzW8k/MPlsIeGhZ kbs@Pablo-Fredrikson diff --git a/terraform/1/terraform.tfstate b/terraform/1/terraform.tfstate new file mode 100644 index 00000000..e64713e8 --- /dev/null +++ b/terraform/1/terraform.tfstate @@ -0,0 +1,16 @@ +{ + "version": 3, + "terraform_version": "0.11.11", + "serial": 6, + "lineage": "0610b8b6-9b75-9900-7f3c-b20e2c57db84", + "modules": [ + { + "path": [ + "root" + ], + "outputs": {}, + "resources": {}, + "depends_on": [] + } + ] +} diff --git a/terraform/1/terraform.tfstate.backup b/terraform/1/terraform.tfstate.backup new file mode 100644 index 00000000..4cd456a2 --- /dev/null +++ b/terraform/1/terraform.tfstate.backup @@ -0,0 +1,120 @@ +{ + "version": 3, + "terraform_version": "0.11.11", + "serial": 6, + "lineage": "0610b8b6-9b75-9900-7f3c-b20e2c57db84", + "modules": [ + { + "path": [ + "root" + ], + "outputs": {}, + "resources": { + "digitalocean_domain.pablokbs": { + "type": "digitalocean_domain", + "depends_on": [], + "primary": { + "id": "pablokbs.com", + "attributes": { + "id": "pablokbs.com", + "name": "pablokbs.com" + }, + "meta": {}, + "tainted": false + }, + "deposed": [], + "provider": "provider.digitalocean" + }, + "digitalocean_droplet.web": { + "type": "digitalocean_droplet", + "depends_on": [ + "digitalocean_ssh_key.pelado" + ], + "primary": { + "id": "133993070", + "attributes": { + "backups": "false", + "disk": "25", + "id": "133993070", + "image": "ubuntu-18-04-x64", + "ipv4_address": "167.99.237.45", + "ipv4_address_private": "", + "ipv6": "false", + "ipv6_address": "", + "ipv6_address_private": "", + "locked": "false", + "memory": "1024", + "monitoring": "false", + "name": "web-1", + "price_hourly": "0.00744", + "price_monthly": "5", + "private_networking": "false", + "region": "nyc1", + "resize_disk": "true", + "size": "s-1vcpu-1gb", + "ssh_keys.#": "1", + "ssh_keys.682625310": "43:7e:e4:d9:8e:96:a0:cb:af:4a:ef:fb:68:26:a7:af", + "status": "active", + "tags.#": "0", + "user_data": "4cce4e6a366e58cb95dc5f1079d554a9c147a9b6", + "vcpus": "1", + "volume_ids.#": "0" + }, + "meta": { + "schema_version": "1" + }, + "tainted": false + }, + "deposed": [], + "provider": "provider.digitalocean" + }, + "digitalocean_record.www": { + "type": "digitalocean_record", + "depends_on": [ + "digitalocean_domain.pablokbs", + "digitalocean_droplet.web" + ], + "primary": { + "id": "65969208", + "attributes": { + "domain": "pablokbs.com", + "flags": "0", + "fqdn": "pelado.pablokbs.com", + "id": "65969208", + "name": "pelado", + "port": "0", + "priority": "0", + "tag": "", + "ttl": "10", + "type": "A", + "value": "167.99.237.45", + "weight": "0" + }, + "meta": {}, + "tainted": false + }, + "deposed": [], + "provider": "provider.digitalocean" + }, + "digitalocean_ssh_key.pelado": { + "type": "digitalocean_ssh_key", + "depends_on": [], + "primary": { + "id": "24088717", + "attributes": { + "fingerprint": "43:7e:e4:d9:8e:96:a0:cb:af:4a:ef:fb:68:26:a7:af", + "id": "24088717", + "name": "pelado", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeBNiMcymqStf/htH+Hwb1HkTM3lrQ+guCt9pC6SZm66nMys3Pun6SqlPoBDyObRNRzYKe57pxga3W2O0UE+puiGoICDK/XhJ2kSchJQLCpl1Cb+57tAez6vO46sLVrG4pdyKpOmYJrsCwt0zw0z4rIKr7Gm43Mr+GBLrDBdFz6UXArsSzazPihb1ySI3OdH01zCgenJC8lIO2V+4kvYzvzXZIng24SlO1Eoz0W/p/AF+HtzseKGoPXMYaxq9Mbu6jtlpFOuzmYsl3xQUP1nbFUqEKsozfMnjLA/1uGTV7AFKS9o6aIQ4Zz4Hg8gBWhTBmwV6W3hzW8k/MPlsIeGhZ kbs@Pablo-Fredrikson" + }, + "meta": {}, + "tainted": false + }, + "deposed": [], + "provider": "provider.digitalocean" + } + }, + "depends_on": [] + } + ] +} diff --git a/terraform/1/userdata.yaml b/terraform/1/userdata.yaml new file mode 100644 index 00000000..91227f81 --- /dev/null +++ b/terraform/1/userdata.yaml @@ -0,0 +1,10 @@ +#cloud-config +package_update: true +packages: + - docker.io +write_files: + - path: /root/index.html + content: | + Sos un capo de terraform +runcmd: + - docker run -d -v /root/index.html:/usr/share/nginx/html/index.html -p 80:80 nginx