【问题标题】:Using Terraform to add OpenStack Security Group to instance not managed by Terraform使用 Terraform 将 OpenStack 安全组添加到不受 Terraform 管理的实例
【发布时间】:2017-03-17 04:10:08
【问题描述】:

我正在尝试使用 Terraform 向实例添加安全组和新规则。请注意,此实例不由 Terraform 管理。我遇到的问题是,当我应用它时,它会创建一个新实例。

我的 Terraform 代码如下:

resource "openstack_compute_secgroup_v2" "secgroup_1" {
  name = "my_secgroup"
  region = "${var.region}"
  description = "my security group"

  rule {
    from_port = 22
    to_port = 22
    ip_protocol = "tcp"
    cidr = "x.x.x.x/x"
  }

  rule {
    from_port = 80
    to_port = 80
    ip_protocol = "tcp"
    cidr = "x.x.x.x/x"
  }
}

resource "openstack_compute_instance_v2" "myresource" {
  name = "<Name of MY Instance>"
  flavor_name = "m1.medium"
  region = "${var.region}"
  image_id = "<Image I.D of existing instance>"
  security_groups = ["${openstack_compute_secgroup_v2.secgroup_1.name}"]
}

【问题讨论】:

    标签: openstack terraform


    【解决方案1】:

    您的 Terraform 代码旨在在您的 OpenStack 集群上创建一个新实例。要让 Terraform 管理资源,它必须包含在其 state 文件中。当您使用 Terraform 创建资源时,Terraform 会自动将其放入状态文件中,然后开始管理该资源。

    从 Terraform 0.7 开始,许多资源现在可以像这样将imported 放入状态文件中:

    $ terraform import aws_instance.web i-12345678
    

    如果你有一些这样的 Terraform 代码(来自aws_instance documentation):

    provider "aws" {
        region = "us-west-2"
    }
    
    data "aws_ami" "ubuntu" {
      most_recent = true
      filter {
        name = "name"
        values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"]
      }
      filter {
        name = "virtualization-type"
        values = ["hvm"]
      }
      owners = ["099720109477"] # Canonical
    }
    
    resource "aws_instance" "web" {
        ami = "${data.aws_ami.ubuntu.id}"
        instance_type = "t2.micro"
        tags {
            Name = "HelloWorld"
        }
    }
    

    并且已经有一个实例 ID 为 i-12345678 的预先存在的实例,然后 Terraform 将导入该实例,现在运行上述代码的计划应该不会显示任何更改,而不是创建 web 实例。

    不幸的是,OpenStack 支持似乎不如 AWS 成熟,因此(从 0.7.7 开始)目前不支持直接使用 import 命令导入 OpenStack 实例资源。然而,import 命令只是让操作状态文件变得更容易而不会破坏任何东西,因此您只需编辑状态文件以包含资源。

    【讨论】:

    • 感谢您提供的信息。希望他们也提供对 Open Stack 的导入支持。
    • 对导入 OpenStack 资源的一些支持尚不支持实例
    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2021-08-08
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    相关资源
    最近更新 更多