Terraform sur le Service Cloud K5

2017-05-17

Terraform sur le Service Cloud K5

Machine-translated — the English original is authoritative.

Jusqu’à présent, nous constatons que certains clients ont choisi Terraform comme outil d’orchestration hybride/multi-cloud open source de prédilection. Bien qu’il s’agisse d’une application tierce non prise en charge par Fujitsu ni par l’équipe de support K5, la présence d’un fournisseur (provider) pour OpenStack, et le fait que K5 soit basé sur OpenStack, rendent possible l’utilisation de Terraform pour déployer des ressources sur K5.

Attention : Veuillez noter que les fonctionnalités spécifiques à K5 ne seront évidemment PAS possibles via Terraform, à moins que vous ne portiez vous-même ces fonctionnalités vers Terraform.

Cet article de blog montre comment déployer un serveur sur le Service Cloud K5 de Fujitsu en utilisant Terraform. Un grand merci à Gavin Williams @fatmcgav, Ingénieur Senior en Automatisation chez ACT, pour avoir partagé les scripts Terraform nécessaires à la réalisation de l’objectif d’aujourd’hui. Gavin a également joué un rôle clé dans la mise à jour des fournisseurs de Terraform pour prendre en charge le point de terminaison Keystone V3 d’OpenStack, utilisé par K5.

Pour cette démonstration, j’utilise un ordinateur portable sous 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

Installation de Terraform

La première chose à faire est de télécharger la dernière version de Terraform sur https://www.terraform.io/downloads.html. J’ai utilisé Terraform v0.9.5 pour cette démo – les versions antérieures pourraient ne pas inclure les améliorations liées à Keystone V3. Une fois Terraform installé – il ne s’agit que d’un seul binaire – et que le chemin a été configuré, par exemple :

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

vous êtes prêt à commencer à utiliser Terraform.

Configuration de la démo

Créez un répertoire de démonstration où vous souhaitez stocker les scripts Terraform d’exemple. Clonez simplement le dépôt situé à https://github.com/allthingsclowd/K5_Terraform_Deployment_Example dans votre répertoire de démo –

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

Configuration de Providers.tf

Ce fichier contient du texte Unicode caché ou bidirectionnel qui peut être interprété ou compilé différemment de ce qui est affiché ci-dessous. Pour examiner ce contenu, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode cachés.
En savoir plus sur les caractères Unicode bidirectionnels

Afficher les caractères cachés

# Fournisseur Openstack
provider "openstack" {
user_name = "1. Entrez le nom d'utilisateur K5"
password = "2. Entrez le mot de passe K5"
tenant_name = "3. Entrez le nom du projet cible K5"
domain_name = "4. Entrez le nom du contrat K5"
# 5. Modifiez la région "uk-1" ci-dessous pour correspondre à votre région cible
auth_url = "https://identity.uk-1.cloud.global.fujitsu.com/v3"
insecure = true
}

voir le code brut
terraform_fujitsu_k5_provider.tf
hébergé avec ❤ par GitHub

Configurez le fichier fournisseur ci-dessus en remplaçant les éléments 1 à 4, ainsi que tout ce qui se trouve entre guillemets doubles “”, par vos variables d’environnement spécifiques. Fujitsu K5 utilise le nom du contrat à la place du nom de domaine OpenStack par défaut – partout où vous devez entrer un nom de domaine, veuillez utiliser votre nom de contrat K5.

Région

Région –> L’élément 5 dans le fichier de configuration auth_url fait référence à la région contre laquelle vous essayez de vous authentifier. Actuellement, cela peut être l’une des régions suivantes : uk-1, de-1, fi-1 ou es-1 pour la zone EMEIA (consultez en ligne ou contactez-moi si vous avez besoin des régions en ASIE ou dans les Amériques). La région est fournie avec les détails de votre contrat K5.

Mon fichier configuré pour la région uk-1 ressemble à ceci (le vôtre sera et devrait être différent) –

Ce fichier contient du texte Unicode caché ou bidirectionnel qui peut être interprété ou compilé différemment de ce qui est affiché ci-dessous. Pour examiner ce contenu, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode cachés.
En savoir plus sur les caractères Unicode bidirectionnels

Afficher les caractères cachés

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

voir le code brut
K5_Terraform_Provider.tf
hébergé avec ❤ par GitHub

La région par défaut est définie sur uk-1 dans tous les fichiers Terraform d’exemple. Assurez-vous de faire une recherche et remplacement de ‘uk-‘ par ‘de-‘ ou par la région dans laquelle vous devez travailler.

Mise à jour : Configuration de la passerelle externe (définie par zone de disponibilité)

Dans le fichier K5-1A.TF, la passerelle externe (external_gateway) doit également être configurée pour correspondre à l’ID du réseau externe cible de la zone de disponibilité visée. Par exemple, dans la zone de disponibilité uk-1a, l’un des IDs de réseau externe est “df8d3f21-75f2-412a-8fd9-29de9b4a4fa8”, ce qui nous donne le paramètre suivant pour la configuration du routeur :

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

Veuillez également définir cette valeur pour qu’elle corresponde à votre zone de disponibilité cible.

J’ai inclus une paire de clés SSH dans le dossier files pour une utilisation lors de la démo. Remplacez-les par les vôtres si ce n’est pas un déploiement simple de type “crash and burn” – il est préférable de ne pas stocker la clé privée ici non plus, la sécurité avant tout ! 😉

Une fois tout cela terminé, vous pouvez désormais déployer votre premier serveur scripté avec Terraform sur K5 comme suit – assurez-vous d’être dans le même répertoire que les fichiers tf téléchargés que vous venez de configurer.

D’abord, nous vérifierons ce qui serait déployé lors d’un exécution réelle en exécutant la commande ‘terraform plan’ comme suit –

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$

Une fois que vous êtes satisfait du résultat, il est temps de déployer réellement le serveur. Exécutez la commande ‘terraform apply’ comme suit –

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$

Et enfin, pour tout nettoyer une fois les tests terminés, exécutez la commande ‘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