Terraform su Cloud Service K5

2017-05-17

Terraform su Cloud Service K5

Machine-translated — the English original is authoritative.

Fino ad oggi stiamo vedendo alcuni clienti che hanno scelto Terraform come loro strumento di orchestrazione ibrida/multi-cloud open source preferito. Sebbene si tratti di un'applicazione di terze parti e non sia supportata da Fujitsu o dal team di supporto K5, poiché dispone di un provider per OpenStack e K5 è basato su OpenStack, è possibile utilizzare Terraform per distribuire risorse su K5.

Attenzione: Si prega di notare che i miglioramenti unici di K5 ovviamente NON saranno possibili utilizzando Terraform a meno che non si portino questi miglioramenti su Terraform stessi.

Questo blog dimostra come distribuire un server su Fujitsu Cloud Service K5 utilizzando Terraform. Un grande ringraziamento va a Gavin Williams @fatmcgav, Senior Automation Engineer presso ACT, per aver condiviso gli script Terraform necessari per raggiungere l'obiettivo di oggi. Gavin è stato anche fondamentale per aggiornare i provider di Terraform per supportare l'endpoint Keystone V3 di OpenStack, utilizzato da K5.

Per questa dimostrazione sto utilizzando un laptop 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

Installazione di Terraform

La prima cosa da fare è scaricare l'ultima versione di Terraform da https://www.terraform.io/downloads.html. Per questa demo ho utilizzato Terraform v0.9.5 – le versioni precedenti potrebbero non avere i miglioramenti per Keystone V3. Una volta installato Terraform – è un singolo file binario – e configurato il percorso, ad esempio:

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

siete pronti per iniziare a utilizzare Terraform.

Configurazione della Demo

Create una directory di demo dove desiderate memorizzare gli script di esempio di Terraform. Ora semplicemente clonate il repository situato su https://github.com/allthingsclowd/K5_Terraform_Deployment_Example nella vostra directory di demo –

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

Configurazione di Providers.tf

Questo file contiene testo Unicode nascosto o bidirezionale che potrebbe essere interpretato o compilato in modo diverso da quanto appare di seguito. Per rivederlo, aprire il file in un editor che riveli i caratteri Unicode nascosti.
Maggiori informazioni sui caratteri Unicode bidirezionali

Mostra caratteri nascosti

# Openstack Provider
provider "openstack" {
user_name = "1. Inserisci Username K5"
password = "2. Inserisci Password K5"
tenant_name = "3. Inserisci Nome Progetto Target K5"
domain_name = "4. Inserisci Nome Contratto K5"
# 5. Modifica la regione "uk-1" qui sotto per corrispondere alla tua regione target
auth_url = "https://identity.uk-1.cloud.global.fujitsu.com/v3"
insecure = true
}

visualizza raw
terraform_fujitsu_k5_provider.tf
ospitato con ❤ da GitHub

Configurate il file provider sopra sostituendo gli elementi da 1 a 4, tutto ciò che si trova tra le virgolette doppie “”, con le vostre variabili di ambiente specifiche. Fujitsu K5 utilizza il nome del Contratto al posto del nome predefinito del Dominio OpenStack – ovunque sia necessario inserire un nome di Dominio, utilizzate il nome del Contratto K5.

Regione

Regione -> L'elemento 5 nel file di configurazione auth_url si riferisce alla regione contro la quale si sta tentando di autenticarsi. Attualmente questa può essere una delle seguenti: uk-1, de-1, fi-1 o es-1 per EMEIA (controllate online o contattatemi se avete bisogno delle regioni per ASIA o le Americhe). La regione viene fornita con i dettagli del contratto K5.

Il mio file configurato per la regione uk-1 appare così (il vostro sarà e dovrebbe essere diverso) –

Questo file contiene testo Unicode nascosto o bidirezionale che potrebbe essere interpretato o compilato in modo diverso da quanto appare di seguito. Per rivederlo, aprire il file in un editor che riveli i caratteri Unicode nascosti.
Maggiori informazioni sui caratteri Unicode bidirezionali

Mostra caratteri nascosti

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

visualizza raw
K5_Terraform_Provider.tf
ospitato con ❤ da GitHub

La regione predefinita è impostata su uk-1 in tutti i file di esempio di Terraform. Assicuratevi di eseguire una ricerca e sostituzione di ‘uk-‘ con ‘de-‘ o con la regione in cui è necessario lavorare.

Aggiornamento: Configurazione Gateway Esterno (impostata per Zona di Disponibilità)

Nel file K5-1A.TF, anche il external_gateway deve essere configurato per corrispondere all'ID della rete esterna target della zona di disponibilità presa di mira. Ad esempio, nella zona di disponibilità uk-1a uno degli ID delle reti esterne è “df8d3f21-75f2-412a-8fd9-29de9b4a4fa8”, il che ci dà la seguente impostazione per la configurazione del router:

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

Impostate anche questo valore per corrispondere alla vostra zona di disponibilità target.

Ho incluso una coppia di chiavi SSH nella cartella files da utilizzare nella demo. Sostituitele con le vostre se questa non è una semplice distribuzione di test – è meglio non memorizzare anche la chiave privata lì, la sicurezza prima di tutto! 😉

Quando tutto questo è completo, ora potete distribuire il vostro primo server scriptato con Terraform su K5 come segue – assicuratevi di trovarvi nella stessa directory dei file tf scaricati che avete appena configurato.

Prima controlleremo cosa verrebbe distribuito durante un'esecuzione effettiva eseguendo il comando ‘terraform plan’ come segue –

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 volta che siete soddisfatti del risultato, è il momento di distribuire effettivamente il server. Emettete il comando ‘terraform apply’ come segue –

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$

E infine, per fare pulizia una volta terminati i test, emettete il 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$

Happy Stacking!

withk5youcan

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

← All posts