Terraform on クラウドサービス K5

2017-05-17

Terraform on クラウドサービス K5

Machine-translated from English. Read the English original

これまで、Terraformを好ましいオープンソースのハイブリッド/マルチクラウドオーケストレーションツールとして選択したいくつかの顧客を見てきました。これはサードパーティ製アプリケーションであり、FujitsuやK5サポートチームによってサポートされているわけではありませんが、OpenStack用のプロバイダーがあり、K5はOpenStackに基づいているため、Terraformを使用してK5上にリソースを展開することが可能です。

注意: K5固有の機能強化は、それらをTerraformに自分でポートしない限り、Terraformを使用して可能になることは当然ありません。

このブログでは、Terraformを使用してFujitsu Cloud Service K5上にサーバーを展開する方法を示します。今日の目標を達成するために必要なTerraformスクリプトを共有してくれた、ACTのシニア自動化エンジニアであるGavin Williams(@fatmcgav)に心から感謝します。Gavinはまた、K5で使用されているOpenStackのKeystone V3エンドポイントをサポートするようにTerraformのプロバイダーを更新する上で重要な役割を果たしました。

このデモンストレーションでは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

Terraformのインストール

まず行うべきことは、Terraformの最新リリースのコピーをhttps://www.terraform.io/downloads.htmlから入手することです。このデモではTerraform v0.9.5を使用しました – 以前のバージョンにはKeystone V3の機能強化が含まれていない場合があります。Terraformをインストールし(単一のバイナリファイルです)、パスを設定したら、例えば以下のようにします。

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

Terraformの使用を開始する準備が整いました。

デモの設定

例のTerraformスクリプトを保存したい場所にデモディレクトリを作成します。次に、https://github.com/allthingsclowd/K5_Terraform_Deployment_Exampleにあるリポジトリをデモディレクトリに単純にクローンします –

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

Providers.tfの設定

このファイルには、以下に表示されるものとは異なって解釈またはコンパイルされる可能性がある、隠されたまたは双方向のUnicode文字が含まれています。確認するには、隠されたUnicode文字を表示するエディタでファイルを開きます。
双方向のUnicode文字について詳しく学ぶ

隠れた文字を表示

# Openstackプロバイダー
provider "openstack" {
user_name = "1. K5ユーザー名を入力"
password = "2. K5パスワードを入力"
tenant_name = "3. K5対象プロジェクト名を入力"
domain_name = "4. K5契約名を入力"
# 5. 以下の"uk-1"地域を、対象の地域に合わせて変更してください
auth_url = "https://identity.uk-1.cloud.global.fujitsu.com/v3"
insecure = true
}

rawを表示
terraform_fujitsu_k5_provider.tf
❤️ GitHubでホスト

上記のプロバイダーファイルを設定し、1〜4の項目、および二重引用符“”内のすべての項目を、特定環境の環境変数に置き換えてください。Fujitsu K5は、デフォルトのOpenStackドメイン名の代わりに契約名を使用します – ドメイン名を入力する必要があるすべての場所で、K5契約名を使用してください。

地域

地域 -> 設定ファイルのauth_urlにある項目5は、認証しようとしている地域を指します。現在、これはEMEIA(ASIAまたはアメリカ合衆国の地域が必要な場合はオンラインで確認するか、私にpingしてください)のuk-1、de-1、fi-1、またはes-1のいずれかです。地域はK5契約詳細情報に含まれています。

uk-1地域用の私の設定済みファイルは以下のようになります(あなたのものは異なるはずです) –

このファイルには、以下に表示されるものとは異なって解釈またはコンパイルされる可能性がある、隠されたまたは双方向のUnicode文字が含まれています。確認するには、隠されたUnicode文字を表示するエディタでファイルを開きます。
双方向のUnicode文字について詳しく学ぶ

隠れた文字を表示

# Openstackプロバイダー
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
}

rawを表示
K5_Terraform_Provider.tf
❤️ GitHubでホスト

デフォルトの地域は、すべての例のTerraformファイルでuk-1に設定されています。'uk-'を'de-'または作業が必要な他の地域に置き換えるために、検索と置換を実行してください。

更新: 外部ゲートウェイの設定(アベイラビリティゾーンごとに設定)

K5-1A.TFファイルでは、external_gatewayも、対象となるアベイラビリティゾールの対象外部ネットワークIDと一致するように設定する必要があります。例えば、uk-1aアベイラビリティゾーンでは、外部ネットワークIDの一つが“df8d3f21-75f2-412a-8fd9-29de9b4a4fa8”であり、これによりルーター設定は以下のようになります:

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

この値も、対象のアベイラビリティゾーンと一致するように設定してください。

デモで使用するために、filesフォルダーにSSHキーペアを含めました。これが単純なクラッシュアンドバーン展開でない場合は、これらを自分のキーに置き換えてください – 秘密鍵もそこに保存しないのが良いでしょう。セキュリティファーストです! 😉

これらすべてが完了したら、以下のようにしてK5に最初のTerraformスクリプト化されたサーバーを展開できます – 先ほど設定したダウンロードしたtfファイルと同じディレクトリにいることを確認してください。

まず、ライブ実行中に何が開発されるかを確認するために、以下のように'terraform plan'コマンドを実行します –

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$

結果に満足したら、実際にサーバーを展開する時が来ました。以下のように'terraform apply'コマンドを発行します –

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$

そして最後に、テストが完了したら以下のように'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