代码之家  ›  专栏  ›  技术社区  ›  Rio

导入FSxN ONTAP资源时销毁/重新创建地形

  •  0
  • Rio  · 技术社区  · 1 年前

    正在寻求有关导入FSxN ONTAP现有资源的帮助。我拥有与AWS现有基础设施完全相同的一切,但是在将资源导入Terraform时,它会不断通知销毁和重新创建资源。

    上面写着“强制替换”的区域已经过多次验证,但我不知道哪里出了问题,或者地形看起来不一样。

    任何帮助都会很棒。

      # module.fsxn05.aws_fsx_ontap_file_system.FsxnFs must be replaced
    -/+ resource "aws_fsx_ontap_file_system" "FsxnFs" {
          ~ arn                               = "arn:aws:fsx:us-west-2:XXXXXXXXXX:file-system/fs-XXXXXXXXXX" -> (known after apply)
          + dns_name                          = (known after apply)
          + endpoint_ip_address_range         = (known after apply)
          ~ endpoints                         = [
              - {
                  - intercluster = [
                      - {
                          - dns_name     = "intercluster.fs-XXXXXXXXXX.fsx.us-west-2.amazonaws.com"
                          - ip_addresses = [
                              - "XX.XX.XX.XX",
                              - "XX.XX.XX.XX",
                            ]
                        },
                    ]
                  - management   = [
                      - {
                          - dns_name     = "management.fs-XXXXXXXXXX.fsx.us-west-2.amazonaws.com"
                          - ip_addresses = [
                              - "XX.XX.XX.XX",
                            ]
                        },
                    ]
                },
            ] -> (known after apply)
          + fsx_admin_password                = (sensitive value)
          ~ id                                = "fs-XXXXXXXXXX" -> (known after apply)
          ~ network_interface_ids             = [
              - "eni-XXXXXXXXXX",
              - "eni-XXXXXXXXXX",
            ] -> (known after apply)
          ~ owner_id                          = "XXXXXXXXXX" -> (known after apply)
          + security_group_ids                = [ # forces replacement
              + "sg-XXXXXXXXXX",
            ]
          ~ vpc_id                            = "vpc-XXXXXXXXXX" -> (known after apply)
          ~ weekly_maintenance_start_time     = "1:06:30" -> "6:07:00"
            # (8 unchanged attributes hidden)
    
          - disk_iops_configuration {
              - iops = 15372 -> null
              - mode = "AUTOMATIC" -> null
            }
        }
    
      # module.fsxn05.aws_fsx_ontap_storage_virtual_machine.FsxnSvm[0] must be replaced
    -/+ resource "aws_fsx_ontap_storage_virtual_machine" "FsxnSvm" {
          ~ arn                        = "arn:aws:fsx:us-west-2:XXXXXXXXXX:storage-virtual-machine/fs-XXXXXXXXXX/svm-XXXXXXXXXX" -> (known after apply)
          ~ endpoints                  = [
              - {
                  - iscsi      = [
                      - {
                          - dns_name     = "iscsi.svm-XXXXXXXXXX.fs-XXXXXXXXXX.fsx.us-west-2.amazonaws.com"
                          - ip_addresses = [
                              - "XX.XX.XX.XX",
                              - "XX.XX.XX.XX",
                            ]
                        },
                    ]
                  - management = [
                      - {
                          - dns_name     = "svm-XXXXXXXXXX.fs-XXXXXXXXXX.fsx.us-west-2.amazonaws.com"
                          - ip_addresses = [
                              - "XX.XX.XX.XX",
                            ]
                        },
                    ]
                  - nfs        = [
                      - {
                          - dns_name     = "svm-XXXXXXXXXX.fs-XXXXXXXXXX.fsx.us-west-2.amazonaws.com"
                          - ip_addresses = [
                              - "XX.XX.XX.XX",
                            ]
                        },
                    ]
                  - smb        = [
                      - {
                          - dns_name     = "<SVM-INSTANCE01.EXAMPLE.COM>"
                          - ip_addresses = [
                              - "XX.XX.XX.XX",
                            ]
                        },
                    ]
                },
            ] -> (known after apply)
          ~ file_system_id             = "fs-XXXXXXXXXX" -> (known after apply)
          ~ id                         = "svm-XXXXXXXXXX" -> (known after apply)
            name                       = "<SVM-INSTANCE01>"
          + root_volume_security_style = "UNIX" # forces replacement
          ~ subtype                    = "DEFAULT" -> (known after apply)
          + svm_admin_password         = (sensitive value)
          ~ uuid                       = "XXXXXXXXXX-2cbb-11ee-a56a-XXXXXXXXXX" -> (known after apply)
        }
    

    请在下面找到我的代码:

    resource "aws_fsx_ontap_file_system" "FsxnFs" {
    
      subnet_ids          = var.private_subnet_ids
      preferred_subnet_id = var.private_subnet_ids[0]
      security_group_ids  = [data.aws_security_group.sg_fsxn.id]
      deployment_type     = var.deployment_type
    
      storage_type        = "SSD"
      storage_capacity    = var.storage_capacity
      throughput_capacity = var.throughput_capacity
      kms_key_id          = var.encryption_key
    
      fsx_admin_password            = data.aws_ssm_parameter.fsx_admin.value
      weekly_maintenance_start_time = "6:07:00"
    
      lifecycle {
        ignore_changes = [
          storage_capacity
        ]
      }
    
      tags = merge(
        local.common_tags, local.project_tags,
        {
          "Name" : "ONTAP-${upper(var.filesystem_name)}-${upper(var.env)}-${var.region}"
        }
      )
    }
    
    resource "aws_fsx_ontap_storage_virtual_machine" "FsxnSvm" {
    
      file_system_id = aws_fsx_ontap_file_system.FsxnFs.id
      count          = length(var.svm_names)
      name           = var.svm_names[count.index]
    
      root_volume_security_style = "UNIX"
      svm_admin_password         = data.aws_ssm_parameter.svm_admin.value
      active_directory_configuration {
        netbios_name = var.svm_names[count.index]
    
        self_managed_active_directory_configuration {
          dns_ips = [
            local.dns_primary,
            local.dns_secondary
          ]
          domain_name                            = upper("${local.dc_name}.example.com")
          organizational_unit_distinguished_name = "OU=AWSServers,OU=Servers,DC=${local.dc_name},DC=example,DC=com"
    
          username = "<SVC_UID>"
          password = data.aws_ssm_parameter.core_awsfsx_svc.value
        }
      }
    
      depends_on = [
        aws_fsx_ontap_file_system.FsxnFs
      ]
    
      tags = merge(
        local.common_tags, local.project_tags,
        {
          "Name" = var.svm_names[count.index]
        }
      )
    }
    
    0 回复  |  直到 1 年前
        1
  •  0
  •   Rio    1 年前

    我发现AWS API中有一个错误,没有导出一些字段,如安全组、文件系统类型等。我通过下载状态文件并仔细添加这些部分来解决这个问题。这可能不是一个适当的解决方案,但可以解决你此刻的目的。