【问题标题】:How to add a non-root ssh-key on Openstack instance using Terraform?如何使用 Terraform 在 Openstack 实例上添加非根 ssh-key?
【发布时间】:2019-01-25 20:34:56
【问题描述】:

我正在尝试使用 Terraform 创建一个 Openstack 实例,然后,我想使用我的 ssh-key 配置用户“ubuntu”。

到目前为止,我正在做:

terraform-instances.tf

resource "openstack_compute_keypair_v2" "tf-keypair" {
  name       = "${var.openstack_keypair}"
  public_key = "${file("~/.ssh/id_rsa.pub")}"
}

resource "openstack_compute_instance_v2" "k8s-master" {
  name      = "k8s-master"
  region    = "${var.openstack_region}"
  image_id  = "${var.openstack_image_id}"
  flavor_id = "${var.openstack_flavor_id}"
  key_pair  = "${var.openstack_keypair}"
  depends_on = ["openstack_compute_keypair_v2.tf-keypair"]

  network {
    uuid = "00000000-0000-0000-0000-000000000000"
    name = "public"
  }
  network {
    uuid = "11111111-1111-1111-1111-111111111111"
    name = "private"
  }
}

resource "null_resource" "authkeys" {
  depends_on = ["openstack_compute_instance_v2.k8s-master"]
  provisioner "file" {
    source      = "authorized_keys"
    destination = "/home/ubuntu/.ssh/authorized_keys"
    }

  connection {
    host        = "${openstack_compute_instance_v2.k8s-master.network.0.fixed_ip_v4}"
    type        = "ssh"
    user        = "root"
    private_key = "${file("~/.ssh/id_rsa")}"
    timeout     = "45s"
    }
}

所以运行后:

terraform apply 

实例已创建,我的 ssh-key 用于 root 用户,而不是 ubuntu 用户。

如何为 ubuntu 用户部署我的 ssh-key?

【问题讨论】:

  • 有解决办法吗?我需要根据用户的选择添加一个非 root 用户。

标签: openstack terraform ssh-keys terraform-provider-openstack


【解决方案1】:

我建议使用 cloud-init,因为 openstack 中没有任何内容(它实际上使用 cloud-init 本身来预播密钥)。

【讨论】:

    猜你喜欢
    • 2016-12-03
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多