Terraform en Cloud Service K5

2017-05-17

Terraform en Cloud Service K5

Machine-translated — the English original is authoritative.

Hasta la fecha, estamos viendo algunos clientes que han elegido Terraform como su herramienta de orquestación híbrida/multi-nube de código abierto preferida. Aunque esta es una aplicación de terceros y no está soportada por Fujitsu ni por el equipo de soporte de K5, dado que tiene un proveedor para OpenStack y K5 se basa en OpenStack, es posible utilizar Terraform para desplegar recursos en K5.

Precaución: Tenga en cuenta que las mejoras únicas de K5 obviamente NO serán posibles utilizando Terraform a menos que usted mismo adapte estas mejoras a Terraform.

Este blog demuestra cómo desplegar un servidor en Fujitsu Cloud Service K5 utilizando Terraform. Un gran agradecimiento para Gavin Williams @fatmcgav, Ingeniero Senior de Automatización en ACT, por compartir los scripts de Terraform necesarios para alcanzar el objetivo de hoy. Gavin también fue fundamental para actualizar los proveedores de Terraform para soportar el punto de conexión Keystone V3 de OpenStack, que es utilizado por K5.

Para esta demostración estoy utilizando un portátil con Ubuntu.

Linux grazzer-dev 4.4.0-75-generic #96-Ubuntu SMP Thu Apr 20 09:56:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Instalación de Terraform

Lo primero que necesitará hacer es obtener una copia de la última versión de Terraform en https://www.terraform.io/downloads.html. Yo utilicé Terraform v0.9.5 para esta demostración; las versiones anteriores podrían no tener las mejoras de Keystone V3. Una vez que haya instalado Terraform —que es solo un binario único— y configurado la ruta, por ejemplo:

export PATH="$PATH:$HOME/some/path/to/terraform"

estará listo para empezar a utilizar Terraform.

Configuración de la Demo

Cree un directorio de demostración donde desee almacenar los scripts de ejemplo de Terraform. Ahora simplemente clone el repositorio ubicado en https://github.com/allthingsclowd/K5_Terraform_Deployment_Example en su directorio de demostración:

git clone https://github.com/allthingsclowd/K5_Terraform_Deployment_Example /my/demo/directory

Configuración de Providers.tf

Este archivo contiene texto Unicode oculto o bidireccional que puede interpretarse o compilarse de manera diferente a lo que aparece a continuación. Para revisarlo, abra el archivo en un editor que revele caracteres Unicode ocultos.
Más información sobre caracteres Unicode bidireccionales

Mostrar caracteres ocultos

# Proveedor Openstack
provider "openstack" {
user_name = "1. Introduzca el Nombre de usuario de K5"
password = "2. Introduzca la Contraseña de K5"
tenant_name = "3. Introduzca el Nombre del Proyecto Objetivo de K5"
domain_name = "4. Introduzca el Nombre del Contrato de K5"
# 5. Cambie la región "uk-1" de abajo para que coincida con su región objetivo
auth_url = "https://identity.uk-1.cloud.global.fujitsu.com/v3"
insecure = true
}

ver raw
terraform_fujitsu_k5_provider.tf
alojado con ❤ por GitHub

Configure el archivo de proveedores anterior reemplazando los elementos 1 al 4, todo lo que está dentro de las comillas dobles “”, con sus variables de entorno específicas. Fujitsu K5 utiliza el nombre del Contrato en lugar del nombre de Dominio predeterminado de OpenStack; en todos los lugares donde necesite introducir un nombre de Dominio, utilice su nombre de Contrato de K5.

Región

Región -> El elemento 5 en el archivo de configuración auth_url se refiere a la región contra la que está intentando autenticarse. Actualmente, esta puede ser cualquiera de las siguientes: uk-1, de-1, fi-1 o es-1 para EMEIA (consulte en línea o pídame si necesita las regiones en ASIA o las Américas). La región se proporciona con los detalles de su contrato de K5.

Mi archivo configurado para la región uk-1 se ve así (el suyo será y debería ser diferente):

Este archivo contiene texto Unicode oculto o bidireccional que puede interpretarse o compilarse de manera diferente a lo que aparece a continuación. Para revisarlo, abra el archivo en un editor que revele caracteres Unicode ocultos.
Más información sobre caracteres Unicode bidireccionales

Mostrar caracteres ocultos

# Proveedor Openstack
provider "openstack" {
user_name = "landg"
password = "EstaEsMiContraseñaSecretaNadieLoSepa"
tenant_name = "Project_B"
domain_name = "YssmW1yI"
auth_url = "https://identity.uk-1.cloud.global.fujitsu.com/v3"
insecure = true
}

ver raw
K5_Terraform_Provider.tf
alojado con ❤ por GitHub

La región predeterminada está configurada en uk-1 en todos los archivos de ejemplo de Terraform. Asegúrese de realizar una búsqueda y reemplazo de ‘uk-‘ por ‘de-‘ o por la región en la que necesite trabajar.

Actualización: Configuración de Puerta de Enlace Externa (configurada por Zona de Disponibilidad)

En el archivo K5-1A.TF, la external_gateway también debe configurarse para que coincida con el ID de red externa objetivo de la zona de disponibilidad que se está apuntando. Por ejemplo, en la zona de disponibilidad uk-1a, uno de los IDs de redes externas es “df8d3f21-75f2-412a-8fd9-29de9b4a4fa8”, lo que nos da la siguiente configuración para el enrutador:

external_gateway = “df8d3f21-75f2-412a-8fd9-29de9b4a4fa8”

Por favor, configure también este valor para que coincida con su zona de disponibilidad objetivo.

He incluido un par de claves ssh en la carpeta files para su uso en la demostración. Reemplácelas con las suyas propias si esto no es un despliegue simple de prueba y error; es mejor no almacenar la clave privada allí tampoco, ¡seguridad primero! 😉

Cuando todo esto esté completo, ahora puede desplegar su primer servidor scripteado con Terraform en K5 de la siguiente manera: asegúrese de estar en el mismo directorio que los archivos tf descargados que acaba de configurar.

Primero verificaremos qué se desplegaría durante una ejecución real ejecutando el comando ‘terraform plan’ de la siguiente manera:

grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ ls
files  k5-1a.tf  k5-security-groups.tf  providers.tf  variables.tf
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

The Terraform execution plan has been generated and is shown below.
Resources are shown in alphabetical order for quick scanning. Green resources
will be created (or destroyed and then created if an existing resource
exists), yellow resources are being changed in-place, and red resources
will be destroyed. Cyan entries are data sources to be read.

Note: You didn't specify an "-out" parameter to save this plan, so when
"apply" is called, Terraform can't guarantee this is what will execute.

+ openstack_compute_instance_v2.tf_nc_test_1a_instance_1
    access_ip_v4:                         ""
    access_ip_v6:                         ""
    all_metadata.%:                       ""
    availability_zone:                    "uk-1a"
    block_device.#:                       "1"
    block_device.0.boot_index:            "0"
    block_device.0.delete_on_termination: "true"
    block_device.0.destination_type:      "volume"
    block_device.0.source_type:           "image"
    block_device.0.uuid:                  "58fd966f-b055-4cd0-9012-cf6af7a4c32b"
    block_device.0.volume_size:           "30"
    flavor_id:                            ""
    flavor_name:                          "T-1"
    force_delete:                         "false"
    image_id:                             ""
    image_name:                           ""
    key_pair:                             "tf-test-keypair-1a"
    metadata.%:                           "1"
    metadata.demo:                        "metadata"
    name:                                 "tf_nc_test_1a_instance_1"
    network.#:                            "1"
    network.0.access_network:             "false"
    network.0.fixed_ip_v4:                ""
    network.0.fixed_ip_v6:                ""
    network.0.floating_ip:                ""
    network.0.mac:                        ""
    network.0.name:                       ""
    network.0.port:                       ""
    network.0.uuid:                       "${openstack_networking_network_v2.tf_nc_test_1a.id}"
    region:                               "uk-1"
    security_groups.#:                    "1"
    security_groups.213421011:            "tf_nc_test_sec_1"
    stop_before_destroy:                  "false"

+ openstack_compute_keypair_v2.tf-test-keypair-1a
    name:                          "tf-test-keypair-1a"
    public_key:                    "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK1XM3ZpYZuKuBsjUo0qy1VI01ROJakrx86Tk28XmQbDQrkS528yPU5MnjIz3OGk+mbRVr29oWX4iS+sYkYrqo01Z9/3Ui4STdALhfzwe/OOcevQ/45WOB/VcE991J5d9+yvvcohHUAP6XUUrpa3w9f032C98qeNzO/6IkICnkYl3JmlXoXdcNkbT+zWsVtS3yVOYOeX1jXQBzvIUYY0mEuCqJV6nK+39bwWlnzvfbE9UTGtE/gqX4f6oA7W1KG93AIIBYSUXOASe3GAnVE4D0UZ633bXpzdAyzddBPx1rKirBiNSPN7np3QOos8AiAQcjRCmlFOa53EyD/vK37tAX grazzer@grazzer-dev\n"
    region:                        "uk-1"
    value_specs.%:                 "1"
    value_specs.availability_zone: "uk-1a"

+ openstack_networking_network_v2.tf_nc_test_1a
    admin_state_up:                "true"
    name:                          "tf_nc_test_1a"
    region:                        "uk-1"
    shared:                        ""
    tenant_id:                     ""
    value_specs.%:                 "1"
    value_specs.availability_zone: "uk-1a"

+ openstack_networking_port_v2.tf_nc_test_rtr_1a_subnet_int
    admin_state_up:                "true"
    all_fixed_ips.#:               ""
    allowed_address_pairs.#:       ""
    device_id:                     ""
    device_owner:                  ""
    fixed_ip.#:                    "1"
    fixed_ip.0.ip_address:         "192.168.70.1"
    fixed_ip.0.subnet_id:          "${openstack_networking_subnet_v2.tf_nc_test_1a_subnet.id}"
    mac_address:                   ""
    name:                          "tf_nc_test_rtr_1a_subnet_int"
    network_id:                    "${openstack_networking_network_v2.tf_nc_test_1a.id}"
    region:                        "uk-1"
    security_group_ids.#:          ""
    tenant_id:                     ""
    value_specs.%:                 "1"
    value_specs.availability_zone: "uk-1a"

+ openstack_networking_router_interface_v2.tf_nc_test_rtr_1a_if_1
    port_id:   "${openstack_networking_port_v2.tf_nc_test_rtr_1a_subnet_int.id}"
    region:    "uk-1"
    router_id: "${openstack_networking_router_v2.tf_nc_test_rtr_1a.id}"

+ openstack_networking_router_v2.tf_nc_test_rtr_1a
    admin_state_up:                "true"
    distributed:                   ""
    external_gateway:              "df8d3f21-75f2-412a-8fd9-29de9b4a4fa8"
    name:                          "tf_nc_test_rtr_1a"
    region:                        "uk-1"
    tenant_id:                     ""
    value_specs.%:                 "1"
    value_specs.availability_zone: "uk-1a"

+ openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_icmp_in
    direction:         "ingress"
    ethertype:         "IPv4"
    port_range_max:    ""
    port_range_min:    ""
    protocol:          "icmp"
    region:            "uk-1"
    remote_group_id:   ""
    remote_ip_prefix:  "0.0.0.0/0"
    security_group_id: "${openstack_networking_secgroup_v2.tf_nc_test_sec_1.id}"
    tenant_id:         ""

+ openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_ssh_in
    direction:         "ingress"
    ethertype:         "IPv4"
    port_range_max:    "22"
    port_range_min:    "22"
    protocol:          "tcp"
    region:            "uk-1"
    remote_group_id:   ""
    remote_ip_prefix:  "0.0.0.0/0"
    security_group_id: "${openstack_networking_secgroup_v2.tf_nc_test_sec_1.id}"
    tenant_id:         ""

+ openstack_networking_secgroup_rule_v2.tf_nc_test_sec_rule_egress_metadata
    direction:         "egress"
    ethertype:         "IPv4"
    port_range_max:    "80"
    port_range_min:    "80"
    protocol:          "tcp"
    region:            "uk-1"
    remote_group_id:   ""
    remote_ip_prefix:  "169.254.169.254/32"
    security_group_id: "${openstack_networking_secgroup_v2.tf_nc_test_sec_1.id}"
    tenant_id:         ""

+ openstack_networking_secgroup_v2.tf_nc_test_sec_1
    description: "Security Group Via Terraform"
    name:        "tf_nc_test_sec_1"
    region:      "uk-1"
    tenant_id:   ""

+ openstack_networking_subnet_v2.tf_nc_test_1a_subnet
    allocation_pools.#:             "1"
    allocation_pools.0.end:         "192.168.70.250"
    allocation_pools.0.start:       "192.168.70.2"
    cidr:                           "192.168.70.0/24"
    dns_nameservers.#:              "1"
    dns_nameservers.3817307869:     "8.8.8.8"
    enable_dhcp:                    "true"
    gateway_ip:                     "192.168.70.1"
    host_routes.#:                  "1"
    host_routes.0.destination_cidr: "192.168.71.0/24"
    host_routes.0.next_hop:         "192.168.70.253"
    ip_version:                     "4"
    name:                           "tf_nc_test_1a_subnet"
    network_id:                     "${openstack_networking_network_v2.tf_nc_test_1a.id}"
    region:                         "uk-1"
    tenant_id:                      ""
    value_specs.%:                  "1"
    value_specs.availability_zone:  "uk-1a"

Plan: 11 to add, 0 to change, 0 to destroy.
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$

Una vez que esté satisfecho con el resultado, es momento de desplegar realmente el servidor. Emita el comando ‘terraform apply’ de la siguiente manera:

grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ date
Wed 17 May 20:04:09 BST 2017
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ terraform apply
openstack_networking_secgroup_v2.tf_nc_test_sec_1: Creating...
  description: "" => "Security Group Via Terraform"
  name:        "" => "tf_nc_test_sec_1"
  region:      "" => "uk-1"
  tenant_id:   "" => "<computed>"
openstack_networking_router_v2.tf_nc_test_rtr_1a: Creating...
  admin_state_up:                "" => "true"
  distributed:                   "" => "<computed>"
  external_gateway:              "" => "df8d3f21-75f2-412a-8fd9-29de9b4a4fa8"
  name:                          "" => "tf_nc_test_rtr_1a"
  region:                        "" => "uk-1"
  tenant_id:                     "" => "<computed>"
  value_specs.%:                 "" => "1"
  value_specs.availability_zone: "" => "uk-1a"
openstack_compute_keypair_v2.tf-test-keypair-1a: Creating...
  name:                          "" => "tf-test-keypair-1a"
  public_key:                    "" => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK1XM3ZpYZuKuBsjUo0qy1VI01ROJakrx86Tk28XmQbDQrkS528yPU5MnjIz3OGk+mbRVr29oWX4iS+sYkYrqo01Z9/3Ui4STdALhfzwe/OOcevQ/45WOB/VcE991J5d9+yvvcohHUAP6XUUrpa3w9f032C98qeNzO/6IkICnkYl3JmlXoXdcNkbT+zWsVtS3yVOYOeX1jXQBzvIUYY0mEuCqJV6nK+39bwWlnzvfbE9UTGtE/gqX4f6oA7W1KG93AIIBYSUXOASe3GAnVE4D0UZ633bXpzdAyzddBPx1rKirBiNSPN7np3QOos8AiAQcjRCmlFOa53EyD/vK37tAX grazzer@grazzer-dev\n"
  region:                        "" => "uk-1"
  value_specs.%:                 "" => "1"
  value_specs.availability_zone: "" => "uk-1a"
openstack_networking_network_v2.tf_nc_test_1a: Creating...
  admin_state_up:                "" => "true"
  name:                          "" => "tf_nc_test_1a"
  region:                        "" => "uk-1"
  shared:                        "" => "<computed>"
  tenant_id:                     "" => "<computed>"
  value_specs.%:                 "" => "1"
  value_specs.availability_zone: "" => "uk-1a"
openstack_networking_secgroup_v2.tf_nc_test_sec_1: Creation complete (ID: a66fc94f-ba15-4e83-87f1-1089aeaca466)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_ssh_in: Creating...
  direction:         "" => "ingress"
  ethertype:         "" => "IPv4"
  port_range_max:    "" => "22"
  port_range_min:    "" => "22"
  protocol:          "" => "tcp"
  region:            "" => "uk-1"
  remote_group_id:   "" => "<computed>"
  remote_ip_prefix:  "" => "0.0.0.0/0"
  security_group_id: "" => "a66fc94f-ba15-4e83-87f1-1089aeaca466"
  tenant_id:         "" => "<computed>"
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_rule_egress_metadata: Creating...
  direction:         "" => "egress"
  ethertype:         "" => "IPv4"
  port_range_max:    "" => "80"
  port_range_min:    "" => "80"
  protocol:          "" => "tcp"
  region:            "" => "uk-1"
  remote_group_id:   "" => "<computed>"
  remote_ip_prefix:  "" => "169.254.169.254/32"
  security_group_id: "" => "a66fc94f-ba15-4e83-87f1-1089aeaca466"
  tenant_id:         "" => "<computed>"
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_icmp_in: Creating...
  direction:         "" => "ingress"
  ethertype:         "" => "IPv4"
  port_range_max:    "" => "<computed>"
  port_range_min:    "" => "<computed>"
  protocol:          "" => "icmp"
  region:            "" => "uk-1"
  remote_group_id:   "" => "<computed>"
  remote_ip_prefix:  "" => "0.0.0.0/0"
  security_group_id: "" => "a66fc94f-ba15-4e83-87f1-1089aeaca466"
  tenant_id:         "" => "<computed>"
openstack_compute_keypair_v2.tf-test-keypair-1a: Creation complete (ID: tf-test-keypair-1a)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_ssh_in: Creation complete (ID: 22217e4b-e018-41aa-a20a-5dbecd1390fe)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_rule_egress_metadata: Creation complete (ID: e6ca4ce8-9728-4f8a-a08b-b6c187f1abdd)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_icmp_in: Creation complete (ID: 38806129-3116-4451-95f5-ae376423fd3e)
openstack_networking_router_v2.tf_nc_test_rtr_1a: Creation complete (ID: d7b109a6-bb6f-4d06-9702-cd532f863741)
openstack_networking_network_v2.tf_nc_test_1a: Creation complete (ID: d32211be-4a8d-4a1d-8b48-0b2ac9d7e76b)
openstack_networking_subnet_v2.tf_nc_test_1a_subnet: Creating...
  allocation_pools.#:             "" => "1"
  allocation_pools.0.end:         "" => "192.168.70.250"
  allocation_pools.0.start:       "" => "192.168.70.2"
  cidr:                           "" => "192.168.70.0/24"
  dns_nameservers.#:              "" => "1"
  dns_nameservers.3817307869:     "" => "8.8.8.8"
  enable_dhcp:                    "" => "true"
  gateway_ip:                     "" => "192.168.70.1"
  host_routes.#:                  "" => "1"
  host_routes.0.destination_cidr: "" => "192.168.71.0/24"
  host_routes.0.next_hop:         "" => "192.168.70.253"
  ip_version:                     "" => "4"
  name:                           "" => "tf_nc_test_1a_subnet"
  network_id:                     "" => "d32211be-4a8d-4a1d-8b48-0b2ac9d7e76b"
  region:                         "" => "uk-1"
  tenant_id:                      "" => "<computed>"
  value_specs.%:                  "" => "1"
  value_specs.availability_zone:  "" => "uk-1a"
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Creating...
  access_ip_v4:                         "" => "<computed>"
  access_ip_v6:                         "" => "<computed>"
  all_metadata.%:                       "" => "<computed>"
  availability_zone:                    "" => "uk-1a"
  block_device.#:                       "" => "1"
  block_device.0.boot_index:            "" => "0"
  block_device.0.delete_on_termination: "" => "true"
  block_device.0.destination_type:      "" => "volume"
  block_device.0.source_type:           "" => "image"
  block_device.0.uuid:                  "" => "58fd966f-b055-4cd0-9012-cf6af7a4c32b"
  block_device.0.volume_size:           "" => "30"
  flavor_id:                            "" => "<computed>"
  flavor_name:                          "" => "T-1"
  force_delete:                         "" => "false"
  image_id:                             "" => "<computed>"
  image_name:                           "" => "<computed>"
  key_pair:                             "" => "tf-test-keypair-1a"
  metadata.%:                           "" => "1"
  metadata.demo:                        "" => "metadata"
  name:                                 "" => "tf_nc_test_1a_instance_1"
  network.#:                            "" => "1"
  network.0.access_network:             "" => "false"
  network.0.fixed_ip_v4:                "" => "<computed>"
  network.0.fixed_ip_v6:                "" => "<computed>"
  network.0.floating_ip:                "" => "<computed>"
  network.0.mac:                        "" => "<computed>"
  network.0.name:                       "" => "<computed>"
  network.0.port:                       "" => "<computed>"
  network.0.uuid:                       "" => "d32211be-4a8d-4a1d-8b48-0b2ac9d7e76b"
  region:                               "" => "uk-1"
  security_groups.#:                    "" => "1"
  security_groups.213421011:            "" => "tf_nc_test_sec_1"
  stop_before_destroy:                  "" => "false"
openstack_networking_subnet_v2.tf_nc_test_1a_subnet: Creation complete (ID: fa2335e1-228b-4967-943c-d68a51b5fd1f)
openstack_networking_port_v2.tf_nc_test_rtr_1a_subnet_int: Creating...
  admin_state_up:                "" => "true"
  all_fixed_ips.#:               "" => "<computed>"
  allowed_address_pairs.#:       "" => "<computed>"
  device_id:                     "" => "<computed>"
  device_owner:                  "" => "<computed>"
  fixed_ip.#:                    "" => "1"
  fixed_ip.0.ip_address:         "" => "192.168.70.1"
  fixed_ip.0.subnet_id:          "" => "fa2335e1-228b-4967-943c-d68a51b5fd1f"
  mac_address:                   "" => "<computed>"
  name:                          "" => "tf_nc_test_rtr_1a_subnet_int"
  network_id:                    "" => "d32211be-4a8d-4a1d-8b48-0b2ac9d7e76b"
  region:                        "" => "uk-1"
  security_group_ids.#:          "" => "<computed>"
  tenant_id:                     "" => "<computed>"
  value_specs.%:                 "" => "1"
  value_specs.availability_zone: "" => "uk-1a"
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Still creating... (10s elapsed)
openstack_networking_port_v2.tf_nc_test_rtr_1a_subnet_int: Creation complete (ID: e8aa8f6c-602c-483f-a215-d4f1ef5c4152)
openstack_networking_router_interface_v2.tf_nc_test_rtr_1a_if_1: Creating...
  port_id:   "" => "e8aa8f6c-602c-483f-a215-d4f1ef5c4152"
  region:    "" => "uk-1"
  router_id: "" => "d7b109a6-bb6f-4d06-9702-cd532f863741"
openstack_networking_router_interface_v2.tf_nc_test_rtr_1a_if_1: Creation complete (ID: e8aa8f6c-602c-483f-a215-d4f1ef5c4152)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Still creating... (20s elapsed)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Still creating... (30s elapsed)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Still creating... (40s elapsed)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Still creating... (50s elapsed)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Still creating... (1m0s elapsed)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Creation complete (ID: bd516e9d-8cbd-44c1-a061-861b029e37ee)

Apply complete! Resources: 11 added, 0 changed, 0 destroyed.

The state of your infrastructure has been saved to the path
below. This state is required to modify and destroy your
infrastructure, so keep it safe. To inspect the complete state
use the `terraform show` command.

State path: 
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ date
Wed 17 May 20:05:37 BST 2017
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ ls
files     k5-security-groups.tf  terraform.tfstate
k5-1a.tf  providers.tf           variables.tf
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$

Y finalmente, para limpiar todo una vez finalizadas las pruebas, emita el comando ‘terraform destroy’:

grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ date
Wed 17 May 20:08:24 BST 2017
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ terraform destroy
Do you really want to destroy?
  Terraform will delete all your managed infrastructure.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: yes

openstack_networking_secgroup_v2.tf_nc_test_sec_1: Refreshing state... (ID: a66fc94f-ba15-4e83-87f1-1089aeaca466)
openstack_networking_router_v2.tf_nc_test_rtr_1a: Refreshing state... (ID: d7b109a6-bb6f-4d06-9702-cd532f863741)
openstack_compute_keypair_v2.tf-test-keypair-1a: Refreshing state... (ID: tf-test-keypair-1a)
openstack_networking_network_v2.tf_nc_test_1a: Refreshing state... (ID: d32211be-4a8d-4a1d-8b48-0b2ac9d7e76b)
openstack_networking_subnet_v2.tf_nc_test_1a_subnet: Refreshing state... (ID: fa2335e1-228b-4967-943c-d68a51b5fd1f)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_rule_egress_metadata: Refreshing state... (ID: e6ca4ce8-9728-4f8a-a08b-b6c187f1abdd)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_ssh_in: Refreshing state... (ID: 22217e4b-e018-41aa-a20a-5dbecd1390fe)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_icmp_in: Refreshing state... (ID: 38806129-3116-4451-95f5-ae376423fd3e)
openstack_networking_port_v2.tf_nc_test_rtr_1a_subnet_int: Refreshing state... (ID: e8aa8f6c-602c-483f-a215-d4f1ef5c4152)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Refreshing state... (ID: bd516e9d-8cbd-44c1-a061-861b029e37ee)
openstack_networking_router_interface_v2.tf_nc_test_rtr_1a_if_1: Refreshing state... (ID: e8aa8f6c-602c-483f-a215-d4f1ef5c4152)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_ssh_in: Destroying... (ID: 22217e4b-e018-41aa-a20a-5dbecd1390fe)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Destroying... (ID: bd516e9d-8cbd-44c1-a061-861b029e37ee)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_icmp_in: Destroying... (ID: 38806129-3116-4451-95f5-ae376423fd3e)
openstack_networking_router_interface_v2.tf_nc_test_rtr_1a_if_1: Destroying... (ID: e8aa8f6c-602c-483f-a215-d4f1ef5c4152)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_rule_egress_metadata: Destroying... (ID: e6ca4ce8-9728-4f8a-a08b-b6c187f1abdd)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_ssh_in: Destruction complete
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_rule_egress_metadata: Destruction complete
openstack_networking_router_interface_v2.tf_nc_test_rtr_1a_if_1: Destruction complete
openstack_networking_port_v2.tf_nc_test_rtr_1a_subnet_int: Destroying... (ID: e8aa8f6c-602c-483f-a215-d4f1ef5c4152)
openstack_networking_router_v2.tf_nc_test_rtr_1a: Destroying... (ID: d7b109a6-bb6f-4d06-9702-cd532f863741)
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_icmp_in: Still destroying... (ID: 38806129-3116-4451-95f5-ae376423fd3e, 10s elapsed)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Still destroying... (ID: bd516e9d-8cbd-44c1-a061-861b029e37ee, 10s elapsed)
openstack_compute_instance_v2.tf_nc_test_1a_instance_1: Destruction complete
openstack_compute_keypair_v2.tf-test-keypair-1a: Destroying... (ID: tf-test-keypair-1a)
openstack_compute_keypair_v2.tf-test-keypair-1a: Destruction complete
openstack_networking_secgroup_rule_v2.tf_nc_test_sec_1_rule_icmp_in: Destruction complete
openstack_networking_secgroup_v2.tf_nc_test_sec_1: Destroying... (ID: a66fc94f-ba15-4e83-87f1-1089aeaca466)
openstack_networking_port_v2.tf_nc_test_rtr_1a_subnet_int: Destruction complete
openstack_networking_subnet_v2.tf_nc_test_1a_subnet: Destroying... (ID: fa2335e1-228b-4967-943c-d68a51b5fd1f)
openstack_networking_router_v2.tf_nc_test_rtr_1a: Destruction complete
openstack_networking_secgroup_v2.tf_nc_test_sec_1: Destruction complete
openstack_networking_subnet_v2.tf_nc_test_1a_subnet: Destruction complete
openstack_networking_network_v2.tf_nc_test_1a: Destroying... (ID: d32211be-4a8d-4a1d-8b48-0b2ac9d7e76b)
openstack_networking_network_v2.tf_nc_test_1a: Destruction complete

Destroy complete! Resources: 11 destroyed.
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ date
Wed 17 May 20:09:22 BST 2017
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$ ls
files     k5-security-groups.tf  terraform.tfstate         variables.tf
k5-1a.tf  providers.tf           terraform.tfstate.backup
grazzer@grazzer-dev:~/Dev/terraform/Working Demo$

¡Feliz apilamiento!

withk5youcan

Originally published on allthingscloud.eu (2017-05-17).

← All posts